如何限制我的用户仅执行选择性命令。我在 tomc 组中有一个用户 tomc。我需要这个用户成为 sudo 用户,然后限制 bash。我已经尝试在/etc/sudoers
文件中遵循以下代码,但它不起作用,因为用户能够执行其他命令,例如mkdir
,rm
%tomc ALL=/bin/bash,/usr/bin/vim /*
Run Code Online (Sandbox Code Playgroud)
mta*_*tak 20
您可能会以错误的方式进行此操作。与其给用户一个“受限”的 bash shell,你应该只让他们访问他们需要以 root 身份运行的命令。例如,在您的 sudoers 文件中:
tomc ALL=(root) /usr/bin/vim /etc/myapp.conf
tomc ALL=(root) /usr/bin/less /var/log/myapp/*.log
Run Code Online (Sandbox Code Playgroud)
允许用户以 root 身份运行 vim 时要小心。Vim 有很多内置功能,比如转义到 shell 和在 vim 中运行命令的能力。根据您的发行版,您可能有sudoedit
可用的。这与普通 Vim 的工作方式相同,除了它被设计为处理 shell 转义等。
小智 5
在运行 DSM 6 的 Synology Diskstation 上,只有管理员用户可以一致地进行 ssh(非管理员用户在 /etc/passwd 中的 shell 为 /sbin/nologin - 您可以将其设置为 /bin/sh 以暂时允许 ssh,但在重新启动时/etc/passwd 文件被重置)。因此,帐户需要某种 sudo 限制,否则该帐户仅用于执行 /sbin/poweroff。/etc/sudoers 中的以下几行对我有用:
# Allow guestx user to remote poweroff
guestx ALL=(ALL) !ALL
guestx ALL=NOPASSWD: /sbin/poweroff
Run Code Online (Sandbox Code Playgroud)
翻译:禁止所有命令,然后仅允许所需的命令(在这种情况下不要求密码)。
使用此配置 sudo 会要求输入密码,然后对于白名单以外的命令将失败:
guestx@ds:~$ sudo su -
Password:
Sorry, user guestx is not allowed to execute '/bin/su -' as root on ds.
guestx@ds:~$
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
58282 次 |
最近记录: |