만약 내가한다면
su - -c 'mkdir bin' user1
그때 나는 얻는다
su: /usr/bin/ksh: No such file or directory
사용자 쉘이로 설정 ksh
되어 /etc/passwd
있고 ksh
설치되지 않았기 때문 입니다.
질문
이 경우 사용자로서 명령을 어떻게 수행합니까?
답변
-
이후 su
를 입력하지 않으면 해당 사용자의 환경이로드되지 않지만 명령은 여전히 해당 사용자로 실행됩니다.
귀하의 실제 문제를 오해 한 것으로 보입니다. 다른 사람들이 말했듯 -s
이 실제로 원하는 옵션입니다.
답변
당신이 사용할 수있는:
su -s /bin/sh -c 'mkdir bin' user1
-s
SU에 옵션은 / etc / passwd에에 무엇이든 사용에 쉘, 오버라이드 (override)를 지정합니다.
나는 떨어졌다 -
프로파일을로드뿐만 아니라, 그것은 아마도 명령에 대한 사용자의 홈 디렉토리로 작업 디렉토리를 변경됩니다, 때문에, 사용자 1의 홈 디렉토리에 현재를 ‘빈’을하지 만들 거라고, 그래서 명령에서 예배 규칙서.
답변
su의 -s /-shell 옵션을 사용하면 사용자 환경의 다른 부분을 유지하면서 사용할 쉘을 선택할 수 있다고 생각합니다. / bin / sh는 posix로 지정되므로 어디서나 사용할 수 있습니다.