chmod
我理解使用第一个数字作为用户、第二个数字作为组、第三个作为其他用户在 Linux 上管理权限的概念,如了解 UNIX 权限和文件类型中的此答案所述。
假设我有一个有 5 个用户的 Linux 系统:admin
、usera
、userb
和。默认情况下,用户,和对里面的所有文件都有执行权限,所以这些用户可以使用系统的命令行来执行里面的文件,因为这些文件有 75 5权限。到目前为止,它完全没问题。但是,我想禁止用户执行文件夹上的文件,我知道我可以通过将此文件夹内所有文件的权限更改为 750 之类的权限来实现这一点,但如果我这样做,我会搞砸用户的权限,因为他们也将被禁止执行文件。userc
guest
usera
userb
userc
/usr/bin
guest
/usr/bin
chmod
usera
userb
userc
在我的计算机上,所有文件都/usr/bin
属于该组root
,所以我知道我可以创建一个newgroup
,将所有这些文件的组更改为它并添加usera
,userb
然后添加userc
到newgroup
. 但是这样做听起来对系统的默认设置进行了太多修改。有谁知道解决这个问题的更聪明的方法?
PATH
在没有需要更改太多文件权限的过于复杂的解决方案的情况下,如何禁止单个用户使用命令行(或在 上执行任何文件)?
使用 ACL 删除权限。在这种情况下,您不需要修改所有可执行文件的权限;只需删除执行权限
/usr/bin/
即可禁止遍历该目录并因此访问其中的任何文件。这将
u
ser的权限设置guest
为仅r
读取目录/usr/bin
,因此他们可以ls
该目录但不能访问其中的任何内容。您也可以只删除所有权限:
你想做什么?禁止某些用户使用系统的标准命令只是极端的不文明行为......可能使系统处于危险之中的命令介于两者之间,并且已经过仔细审查以确保安全。文件的权限应该阻止大多数恶作剧的尝试。
rbash
;但小心,rsh
是另一种动物!)。他们相当有效地笼罩了用户(但要小心,有可能突破!)/bin/true
(查看你的系统手册以获取这一行中的任何建议,可能有一个特殊的程序为此;如果/bin/true
是 shell 脚本,请不要为此使用它)。这样,如果有人设法登录到该帐户,他们的会话将立即结束。chroot
(同样,有一些方法可以突破),或者使用 Linux 的 BSD 监狱容器来限制他们,并准确地公开你希望他们看到的内容。大多数控制,但设置和保持最新状态很混乱。