9 만약 내가한다면 su - -c 'mkdir bin' user1 그때 나는 얻는다 su: /usr/bin/ksh: No such file or directory 사용자 쉘이로 설정 ksh되어 /etc/passwd있고 ksh설치되지 않았기 때문 입니다. 질문 이 경우 사용자로서 명령을 어떻게 수행합니까? linux ubuntu centos bash — 산드라 소스 왜 사용자의 쉘이 존재하지 않는 것으로 설정되어 있습니까? — MDMarra 1 1 /etc/passwdNIS에서 왔습니다. — Sandra 1 잘 설명합니다. — MDMarra
18 -이후 su를 입력하지 않으면 해당 사용자의 환경이로드되지 않지만 명령은 여전히 해당 사용자로 실행됩니다. 귀하의 실제 문제를 오해 한 것으로 보입니다. 다른 사람들이 말했듯 -s이 실제로 원하는 옵션입니다. — MDMarra 소스 여전히 / etc / passwd에있는 쉘을 사용하려고 시도하는데 더 큰 문제인 것 같습니다. — freiheit 쉘은 $ SHELL 환경 변수에 고유 한 ID를 넣지 만 / etc / passwd는 su가 실행할 쉘을 찾는 위치입니다. ` — -`
8 당신이 사용할 수있는: su -s /bin/sh -c 'mkdir bin' user1 -sSU에 옵션은 / etc / passwd에에 무엇이든 사용에 쉘, 오버라이드 (override)를 지정합니다. 나는 떨어졌다 -프로파일을로드뿐만 아니라, 그것은 아마도 명령에 대한 사용자의 홈 디렉토리로 작업 디렉토리를 변경됩니다, 때문에, 사용자 1의 홈 디렉토리에 현재를 '빈'을하지 만들 거라고, 그래서 명령에서 예배 규칙서. — 화염 소스
5 su의 -s /-shell 옵션을 사용하면 사용자 환경의 다른 부분을 유지하면서 사용할 쉘을 선택할 수 있다고 생각합니다. / bin / sh는 posix로 지정되므로 어디서나 사용할 수 있습니다. — 로마 에이 테이커 소스