场景:我的 shell 运行为user_A
.我想检查是否user_B
有权限运行该命令sample_cmd
。user_C
我正在使用sudo -n -l -u user_C -U user_B sample_cmd
来实现这一点。所有用户都没有 root 权限。
这总是有效吗?还是我错过了可能失败的情况?
答案1
其中之一,手册页说-U
:
安全策略可能会限制列出其他用户的权限。 sudoers 策略仅允许 root 或当前主机上具有 ALL 权限的用户使用此选项。
user_A
因此,如果没有足够的权限,它似乎会失败。
例如我得到
$ sudo -l -u foo -U root ls
Sorry, user ilkkachu is not allowed to execute '/bin/ls' as root on thishost.
该错误消息也有点令人困惑,因为它指的是不允许我运行该命令,而不是指是否foo
允许用户运行该命令。