我遇到了一些用户滥用 chmod 的问题,比如
chmod 777 ~ -Rf
我想禁用 chmod,以便只有拥有完整 sudo 权限(即 IT)的用户才有权限。我可能忽略了这方面的任何缺点吗?
apache 或 linux 的任何其他常见部分是否需要访问我忽略的 chmod?
此外,最好的方法是:
chmod 700 /bin/chmod
谢谢!
编辑:
澄清一下,我知道有办法解决这个问题,我也知道教育我的用户是正确的做法。但人们并不总是按照我说的做。计算机会……如果我强迫我的用户在使用 chmod 之前询问我,我可以教育他们为什么他们的权限被剥夺,指导他们正确的操作方法,并有选择地授予他们 chmod 所需的 sudo 权限。
同时,我犹豫着是否要弄乱 Linux shell 的一个基本命令。我想问的是,有人知道我可能忽略了哪些副作用吗?例如,当您创建文件时,它是否会调用 chmod 来设置初始权限,还是这无关紧要?文件复制是否需要 chmod?是否存在依赖于 chmod 的标准服务,如果只有 root 才能访问 chmod,这些服务可能会中断?
答案1
您是否允许用户使用证书通过 SSH 连接?或者编写脚本(shell、CGI 等?)
如果无法访问 chmod,他们将无法设置使 ssh 证书工作所需的权限(有些人可能会认为这是一个优势,但如果是这种情况,您应该编辑 pam.conf 以完全禁止它),他们必须调用解释器并以脚本作为参数(例如perl script.pl
),而不是直接调用脚本,并且由于权限设置不正确,网络服务器将拒绝运行他们的 CGI。
根据用户的默认组以及默认 umask 的设置方式,创建的文件也可能不会被 Web 服务器读取,因此根本无法提供服务(无论是 CGI 还是其他方式)。此外,缺少 chmod 意味着您无法纠正通过 scp 移动的文件的问题权限,默认情况下这是权限保留。
... 给予用户 sudo 权限来 chmod 可能会带来更大的麻烦 —— 因为这样他们就可以以 root 身份运行命令,而不是以他们自己的身份运行,所以他们可能会影响任何用户。您最好创建一个“chmodders”组,将 chmod 的权限设置为 0750,然后将可以使用该权限的人员添加到该组中。
答案2
在我看来,这听起来像是在寻找人类问题的技术解决方案。
答案3
/bin/chmod
如果您仍想这样做,您可以通过将二进制文件从 移动到其他路径(如)来实现/root/chmod
。
为了让用户认为该工具仍然可用,您可以在 下的原始路径中创建一个不执行任何操作的脚本/bin
。
这样,chmod
除非您指定完整路径,否则您可以禁用该工具/root/chmod
。
答案4
缺点是,以非 root 用户身份运行的任何脚本都无法使用 chmod,这可能会破坏某些功能。
目前尚不清楚您的真正要求是什么,但可以看看这问题和解决方案。