linux root 用户想用其他用户来执行一条命令的操作
可登录的用户
可以使用su切换到该用户,加上 - ,表示会切换到该用户的环境变量下执行,不加则还是原用户的环境下执行
su - username不可登录用户会报错:
This account is currently not available.可以使用这样的参数:
-s 设置登录shell -c 执行命令 www 用户名
su www -s /bin/bash -c 'echo `whoami`:$UID'不可登录的目标用户可以这个命令来执行
sudo -u username command有时候需要指定环境变量,指定环境变量的值:设置环境变更
sudo -u www-data ART_ENV=testing php -r "var_dump(getenv('ART_ENV'));"或者,运行命令时保留用户环境 -E
sudo -E -u www-data php -r "var_dump(getenv('ART_ENV'));"这个命令也是需要目标用户可登录,不然会提示“This account is currently not available.”
runuser -l username -c 'commend'runuser 与 su 命令相比,runuser 不会要求输入目标用户的密码(前提是你以 root 身份运行该命令)。
版权属于:Joyber
本文链接:https://blog.qqvbc.com/default/152.html
转载时须注明出处及本声明