사용자를 sudoers에 추가한 후에는 sudo를 실행할 수 있는 권한이 없습니다.
문제가 무엇인지 정말 혼란스럽습니다. 그런데 Plesk가 설치된 CentOs 7.9를 실행하고 있습니다.
wheel
기본 Plesk 가입자를 그룹 에 추가 하고 다음 줄의 주석 처리를 제거했습니다 /etc/sudoers
.
## Allows people in group wheel to run all commands
wheel ALL=(ALL) ALL
sudoers를 저장하고 su
루트에서 사용자까지 다음으로 시작하는 모든 명령을 저장합니다 sudo
.
sudo: command not found
$PATH의 내용은 sudoers
다음과 같습니다.
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
나는 또한 다음을 시도했지만 아무 소용이 없었습니다.
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/opt/plesk/php/7.4/bin:/root/bin
crontab
cron 작업은 해당 특정 사용자 하에서 실행되어야 하고 Plesk 인터페이스에서는 실행할 수 없기 때문에 문제의 사용자에게 sudo 액세스 권한을 부여하여 그들이 액세스할 수 있도록 하려고 합니다 .
현재 사용자는 단지 얻을 수 있습니다 crontab: command not found
. 실제로 거의 모든 명령을 찾을 수 없습니다(이러한 명령은 sudo 사용자만 사용할 수 있기 때문인지 확실하지 않습니다).
이 사용자에 대해 sudo를 실행하려면 정확히 무엇을 해야 하는지 제안할 수 있는 사람이 있나요? 미리 감사드립니다.
답변1
이 작업을 수행할 필요가 없습니다. 목표가 해당 사용자로 cronjob을 실행하는 것이라면, /etc/crontab
파일에 일반 사용자별 crontab에는 없는 추가 필드가 있으며, 여기서 명령을 실행할 사용자를 정의할 수 있습니다.
# m h dom mon dow user command
0 * * * * plesk command_to_be_run
이는 command_to_be_run
매시간 사용자에 의해 실행됩니다 plesk
.
에서 볼 수 있듯이 시스템 사용자로서 plesk
올바른 로그인 셸이 없고 대화식 사용을 위해 설정되지 않아 올바른 변수 등이 /etc/passwd
없기 때문에 접근 방식이 작동하지 않습니다. 결과적으로 사용자는 실행 파일의 경로를 포함하지 않으므로 실행할 수 없습니다. 어떤 경우든 cron 작업을 쉽게 실행할 수 없으므로 비밀번호 없이 실행되도록 설정해야 하지만 위에서 언급한 것처럼 모든 것이 필수는 아닙니다.$HOME/.profile
PATH
PATH
sudo
sudo
마지막으로 PATH
질문에 표시된 것은 실제 사용자의 경로가 아닙니다 plesk
. su plesk
사용자의 시작 파일을 읽을 수 없으므로 su - plesk
From man su
:
-, -l, --login
Start the shell as a login shell with an environment similar to a
real login:
• clears all the environment variables except TERM and variables
specified by --whitelist-environment
• initializes the environment variables HOME, SHELL, USER,
LOGNAME, and PATH
• changes to the target user’s home directory
• sets argv[0] of the shell to '-' in order to make the shell a
login shell