sudo -l 对于不同的 root

sudo -l for a different as root

大家好,我正在尝试列出用户作为 root 用户有权访问的所有 sudo 命令,显然我们可以在 sudoers 文件中看到,但是如果有很多 user/command 别名,则变得困难

我正在尝试以 root 身份为其他用户执行 sudo -l

我试过使用 -u 选项

sudo -u testuser -l 

抛出命令用法消息

sudo -u testuser sudo -l

提示输入测试用户的密码(我不想要密码提示,因为我是 root 用户)

su - testuser -c 'sudo -l' 

给我以下错误

sudo: no tty present and no askpass program specified

请告诉我该怎么做

根据man sudo

 -U user, --other-user=user
             Used in conjunction with the -l option to list the privileges
             for user instead of for the invoking user.  The security pol-
             icy may restrict listing other users' privileges.  The
             sudoers policy only allows root or a user with the ALL privi-
             lege on the current host to use this option.

您正在使用 -u,这是完全不同的东西:

 -u user, --user=user
             Run the command as a user other than the default target user
             (usually root ). The user may be either a user name or a
             numeric user ID (UID) prefixed with the '#' character etc...