sudo chown - 防止../

5 security redhat sudo

需要允许用户使用 sudo chown 特定目录下的文件。这是诀窍:

user1 ALL= NOPASSWD: /bin/chown -[RPfchv] user2\:user2 /opt/some/path/[a-zA-Z0-9]*
Run Code Online (Sandbox Code Playgroud)

但是,并不能阻止用户偷偷摸摸地做以下事情:

[user1@rhel ~] sudo /bin/chown -v user2:user2 /opt/some/path/../../../etc/shadow

有什么办法可以防止这种情况吗?
机器正在运行 Linux (Red Hat)

War*_*ner 3

sudo 引入了固有的安全风险,通常不建议将其提供给信任度不高的用户。

为什么不简单地限制为父目录的递归 chown?

sudoers 主要使用通配符。根据联机帮助页,它与通配符上的 / 不匹配。联机帮助页中有更多详细信息。

至于更高级的解决方案,脚本应该可以解决问题。

[root@server wmoore]# egrep '^wmoore' /etc/sudoers
wmoore ALL= NOPASSWD: /bin/chown -[RPfchv] wmoore\:wmoore /home/wmoore/[a-zA-Z0-9]*

[wmoore@server ~]$ sudo -l
User wmoore may run the following commands on this host:
    (root) NOPASSWD: /bin/chown -[RPfchv] wmoore:wmoore /home/wmoore/[a-zA-Z0-9]*

[wmoore@server ~]$ sudo chown -R wmoore:wmoore /home/wmoore/../../tmp/test
Sorry, user wmoore is not allowed to execute '/bin/chown -R wmoore:wmoore /home/wmoore/../../tmp/test' as root on server.
Run Code Online (Sandbox Code Playgroud)

啊对。须藤包:

Name        : sudo                         Relocations: (not relocatable)
Version     : 1.6.9p17                          Vendor: CentOS
Release     : 3.el5_3.1                     Build Date: Tue 24 Mar 2009 07:55:42 PM EDT
Run Code Online (Sandbox Code Playgroud)

CentOS5。