滥用 go-r *

滥用 go-r *

我正在测试服务器上工作。以 root 身份登录并发出

cd /
chmod go-r *

我当然撤销了我创建的用户的写权限。

我是否撤销了为 mysql、httpd、ftp 等进程创建的所有组的权限(r/w/x),或者它们是否 chown 了它?

我该如何检查?

[更新]我已经重新启动了mysql和apache。 mysqld 没有以 root 身份运行。正在写入日志。检查还有什么是个好主意?

答案1

首先,chmod go-r不会删除写入权限,而是删除读取权限。的内容/主要是目录;对目录的读取权限意味着您可以列出它。例如,ls /bin现在将给予拒绝权限(目录所有者和root除外,当然在这种情况下所有者是root)。

如果这是一个拼写错误,而您的意思是chmod go-w,那么您确实删除了写权限。可能是唯一具有写权限的目录G组或/tmp;你需要解决这个问题。

值得庆幸的是,您没有-R在 中包含(递归)chmod,因此这很容易修复:只需ls -l /在测试服务器上与ls -l /类似服务器上进行比较即可。用于chmod将权限设置回应有的状态。

请注意,chmod 将遵循符号链接,因此如果根目录中有符号链接,则需要单独确认它们。

最后,您似乎并不了解 Unix 权限模型。每个文件和目录都有用户(所有者)和团体。所有者可以对文件/目录具有读、写和/或执行权限。这就是chmod u=...设定。该组的所有成员都可以拥有相同的权限集 ( chmod g=...)。最后,其他人(其他人)得到相同的集合(chmod o=...)。

例子:

$ ls -l /etc/exim4/passwd.client 
-rw-r----- 1 root Debian-exim 204 Oct 15  2006 /etc/exim4/passwd.client
|^^^^^^^^^|  |||| ^^^^^^^^^^^
|  perms  |  ||||    group
t         |  owner
         acl

t文件类型:空白表示纯文件、d目录、l符号链接、c字符设备、p命名管道、b块设备,可能还有一些我忘记了。

acl如果+此文件上有 ACL,您可以使用getfacl它来查看它。

1没有标注的是链接数;如果您对文件建立了硬链接,两个名称都会显示 2。添加另一个名称,它们会显示 3,依此类推。

权限字段为三个字符,代表所有者(用户);三个为团体;三个为其他。所有者(用户)可以r埃德和w写入文件,但不执行(因为那里有 a-而不是 a x)。该组的成员Debian-exim可以读取该文件,但没有其他权限。既不是 Debian-exim 的所有者也不是成员的人没有此文件的权限。

答案2

chmod go-r *根本不影响特殊群体。它只会影响主要群体和“其他人”的权利。中所有内容的主要组/应该是root.所以这根本不会改变任何事情,因为 root 无论如何都可以做任何他想做的事。

其他帐户通常不会读取目录的内容,因为/它们知道其路径。仍然可以访问这些路径(由于x权限)。

您创建的组是否仍具有这些目录中的显式读取权限取决于是否使用 ACL。如果存在 ACL,则ls -l输出将从

drwxr-xr-x

drwxr-xr-x+

ACL 内容可以通过 来查看getfacl

主要问题是:为什么要阻止组读取 中的目录/

相关内容