특정 사용자로 명령을 실행해야 하는 bash 스크립트를 만들고 있습니다. 결과적으로 다음 명령을 사용합니다.
runuser
이 스크립트를 테스트했는데 Ubuntu Server 14.10에서 완벽하게 작동합니다. 그러나 14.04 및 12에서 테스트할 때 다음 오류가 발생했습니다.
runuser: command not found
이는 runuser 명령이 사용될 때마다 발생합니다.
새 사용자를 생성하려면 다음 명령을 사용합니다.
adduser --no-create-home --home "/home/$homedir" --disabled-password --gecos "$realname" "$uname" ; usermod -p "$passwd" "$uname"
새 사용자를 생성할 때 구체적으로 지정해야 하는 사항이 있나요? 특정 종속성이 누락되었나요?
질문 편집:
echo $PATH 출력
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
ls -l /sbin/runuser의 출력
ls: cannot access /sbin/runuser: No such file or directory
내가 runuser와 su를 사용하려는 이유는 다음과 같습니다.
runuser를 사용하면 다음 명령을 실행할 수 있습니다.
runuser user -c 'cd'
runuser user -c 'wget http://file.com'
그리고 su를 사용하여 다음과 같이 명령을 연결해야 합니다.
su user -c 'cd; wget http://file.com'
답변1
runuser
가장 최근 명령이며 다음에 나타납니다.유틸리티Linux 2.23. 우분투 14.04 출시유틸리티Linux 2.20, 아직 이 명령이 없습니다.
runuser
그다지 유용하지 않습니다. 그냥 su
대신 사용하세요. 이 명령은 runuser user -c 'cd'
실제로 아무 것도 수행하지 않습니다. 범위는 cd
다음 호출까지 확장되지 않습니다 runuser
. 어쨌든 이 명령을 사용해야 합니다 runuser user -c 'cd && wget http://file.com'
. 대신 사용하십시오 su user -c 'cd && wget http://file.com'
.