내 bash 스크립트에는 다음과 같은 부분이 있습니다.
su root -c chown -R smithb:other /export/home/smithb/workspace/rootownsit/
exit
이 디렉토리 rootownsit
와 두 개의 하위 디렉토리는 에서 생성하고 소유합니다 root
. 위에 있는 내용이 효과가 있을 것이라고 생각했지만 그렇지 않았습니다. 내 사용자로 bash 스크립트를 실행할 때 루트 비밀번호를 묻는 메시지가 표시되고 chown
루트 비밀번호를 입력하면 사용 메시지가 표시됩니다. rootownsit 디렉토리와 그 하위 디렉토리의 소유권을 변경해야 합니다.
답변1
이는 단순한 구문 문제입니다. su
대상 사용자의 로그인 셸에서 구문 분석되는 단일(선택적) 명령 인수를 사용합니다. 여기서 루트로 실행하는 명령의 매개변수는 -c
입니다 chown
. 단일 인수가 되도록 명령을 스크립트 내에서 따옴표로 묶습니다.
su -c 'chown -R smithb:other /export/home/smithb/workspace/rootownsit/' root
내장 명령은 exit
스크립트를 종료합니다. 이를 원하지 않으면 호출하지 마세요 exit
.