cat /etc/passwd 可以查看所有用户的列表w 可以查看当前活跃的用户列表cat /etc/group 查看用户组
cat /etc/passwd
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologinnobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologinwww-data:x:33:33:www-data:/var/www:/usr/sbin/nologinwww:x:1001:1001::/home/www:/sbin/nologin
cat /etc/group
daemon:x:1:nogroup:x:65534:www-data:x:33:www:x:1001:=======================================================
/usr/bin/sudo -u www: www is not in the sudoers file. This incident will be reported./usr/bin/sudo -u nobody: sudo: no tty present and no askpass program specified/usr/bin/sudo -u root: sudo: no tty present and no askpass program specified/usr/bin/sudo -u sudo: unknown user: wget sudo: unable to initialize policy plugin/usr/bin/sudo sudo: no tty present and no askpass program specified以上错误,是由于 shell 在执行 sudo 时指定的用户需要权限和密码 在服务器上运行以下php脚本,可以看到当前 PHP 用户的名称,一般是 www
$uname ");?>用 visudo 编辑 sudo 的权限,给指定的用户无需密码 sudo visudo
# 对组 %wheel 所有脚本均无需密码执行sudo%wheel ALL=(ALL) NOPASSWD: ALL# 对用户 www 只有 /user/path/shell.sh 无需密码执行 sudowww ALL=(ALL) NOPASSWD: /user/path/shell.sh
之后使用 www 用户执行 sudo 则不会报错。 /usr/bin/sudo -u www