我希望设置一个通用用户,该用户能够su/sudo
访问特定组中的任何用户。或者是对于具有特定命名方案的任何用户。
这在Linux上可能吗?
我还应该提到我不希望用户能够获得完全root权限
答案1
可以使用sudo
.用于%<group-name>
列表RunAs
。例如,使用以下规则:
sysad ALL = (%wheel) ALL
以及以下组配置:
$ getent group wheel
wheel:x:10:root,muru
我们得到以下有趣的效果:
$ sudo -u sysad bash -c 'echo $USER'
Sorry, user sysad is not allowed to execute '/usr/bin/bash' as sysad on muru-arch.
$ sudo -u root bash -c 'echo $USER'
root
答案2
可以通过编辑您的 sudors 文件来实现。
lnydex99uhc:~ user$ ls /etc/sudoers
/etc/sudoers
首先,运行以下命令打印出当前的 sudo 配置。
sudo -ll | column -t
示例条目
要允许用户在命令前面
使用 sudo 时获得完全 root 权限,请添加以下行:
USER_NAME ALL=(ALL) ALL
允许用户以任何用户身份运行所有命令,但只能以主机名 HOST_NAME 的计算机运行:
USER_NAME HOST_NAME=(ALL) ALL
允许组wheel sudo 的成员访问:
%wheel ALL=(ALL) ALL
要禁止要求用户 USER_NAME 输入密码:
Defaults:USER_NAME !authenticate
仅为主机 HOST_NAME 上的用户 USER_NAME 启用显式定义的命令:
最后,请务必小心,除非您别无选择,只能这样做。新添加的用户将有足够的权限来接管机器。
在开始编辑文件之前,还要阅读最后一件事。
**
This file MUST be edited with the 'visudo' command as root.
# Failure to use 'visudo' may result in syntax or file permission errors
# that prevent sudo from running.
#
# See the sudoers man page for the details on how to write a sudoers file.
**