특정 사용자(루트가 아닌 사용자)로 스크립트를 실행하려면 어떻게 해야 합니까? 그게 다야?
sudo su - john /usr/share/script.pl
사용자 John에게?
답변1
-c
에 전달하여 su
명령을 실행할 수 있습니다 . 다음 명령을 실행할 수 있는 경우 sudo
작동합니다 .
sudo su - john -c "/usr/share/script.pl"
-
전달 된 환경은 su
로그인할 때와 동일하므로 스크립트가 환경 변수(예: 현재 경로)에 따라 달라지는 경우 조정해야 할 수도 있습니다.
답변2
다른 답변이 귀하의 특정 질문에 더 잘 답할 수 있습니다. 여기에 몇 가지 유용한 설명이 있습니다.
su
= 사용자 전환
sudo
=사용자를 전환하고 X를 실행합니다(추가 옵션 없음, "사용자"는 "루트"임)
대부분의 사용자에게는 su
사용되지 않으면 허용되지 않습니다 sudo
. 즉, 일반적으로 비밀번호를 다시 입력하라는 메시지가 표시되기 전에 사용자가 두 번 생각하게 만드는 것입니다.
답변3
예를 들어 -c 옵션을 사용하십시오.
sudo su - john -c "/usr/share/script.pl"
또는 위와 같이 사용자를 정의하는 대신 다음 명령을 사용하여 특정 사용자에 대한 cron 작업을 정의할 수 있습니다.
crontab -u john -e
그런 다음 cron을 설정하면 특정 사용자에 대한 cron 작업을 추가한 다음 루트 cron에서 사용자를 정의하는 것이 더 좋습니다.