未找到 Plesk 用户的 Sudo 命令

未找到 Plesk 用户的 Sudo 命令

将用户添加到 sudoers 后,它无权运行 sudo。

我真的很困惑问题是什么,但我正在运行安装了 Plesk 的 CentOs 7.9。

我已将主要 Plesk 订阅用户添加到wheel组中,并取消注释以下行/etc/sudoers

## Allows people in group wheel to run all commands
wheel   ALL=(ALL)       ALL

我保存 sudoers,并su从 root 保存到用户,任何以以下开头的命令sudo都会返回:

sudo: command not found

中的$PATHsudoers如下:

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

我正在尝试让有问题的用户获得 sudo 访问权限,以便他们可以访问,crontab因为 cron 作业需要在该特定用户下运行(并且我无法让它在 Plesk 界面中运行)。

目前,用户只是得到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没有正确的登录 shell,正如您在 中看到的那样/etc/passwd,并且没有设置为交互式使用,因此没有$HOME/.profile正确的PATH变量等。结果,用户PATH不包含可执行文件的路径sudo,因此无法运行它。在任何情况下,您都无法sudo轻松运行 cron 内容,您需要将其设置为无密码运行,但如上所述,不需要整个操作。

最后,PATH问题中显示的不是实际用户的路径plesk,因为su plesk不会读取用户的启动文件,您需要su - plesk.从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

相关内容