Debian – 如何防止所有文件的全局读取权限?

在我的debian里所有的文件,甚至系统的文件都有权限rw-r-r–,这意味着所有的用户都可以查看任何文件,甚至是一些系统configuration或数据库文件等等。

如何防止用户读取所有系统文件? 有没有办法设置全局权限,以便用户不能读取所有的文件?

我不认为拒绝所有用户访问所有系统文件是一个好主意。 其中一些文件是在系统中工作所必需的。 但有几种方法来限制特定的用户。 例如,如果您想拒绝用户joe访问/etc任何内容,则可以使用ACLs (使用setfacl / getfacl命令操作),如下所示:

setfacl -Rm u:joe:--- /etc

其他的想法是使用selinux策略,或保持用户在chroot。 我认为chmod 700在系统目录是一个坏主意,因为它将拒绝访问各种系统用户,如nobodyftpmail ,这是由一些系统服务使用。

在我的debian里所有的文件,甚至系统的文件都有权限rw-r-r–,这意味着所有的用户都可以查看任何文件,甚至是一些系统configuration或数据库文件等等。

除非你摆弄这些权限,否则它们绝对没问题,因为它们是开箱即用的。 请不要改变它们,特别是不要在那个圆周上。

系统(configuration)文件的意思是保存供大家阅读。 在某些情况下,它们必须是可读的( /etc/bash.bashrc/etc/default ),而在其他情况下它们已经被保护( /etc/shadow )。

位于/var/lib Debian中的数据库文件也受到保护。

 drwx------ 10 mysql mysql 4.0K Feb 26 12:49 /var/lib/mysql 

您可以假设,对于Debian存储库中的大多数软件来说,权限是安全的。 当然也有例外。 网站托pipe是其中之一,您通常需要对文档根目录和PHP-FPM套接字文件进行更大的权限调整。

如果您不完全知道“默认”文件夹上的权限更改会有什么影响,您应该决定。

至less在我看来,唯一默认权限过于自由的地方是在/home目录中。

Linux权限的一个有趣的方面是,默认权限通常是777(-rwxrwxrwx),然后使用umask自动删除权限,以便在创build新目录或文件时,新创build的目录或文件不是777,而是有点像644(-rw-r-r–)或666(-rw-rw-rw-)。 如果您希望删除所有文件/目录的默认读取权限,则可以调整umask。 但是,更改umask可能不是解决您所面临的任务的方法。

我认为解决scheme将是使用chmod和chown或setfacl和getfacl来控制访问。 例如,让我们说只有root应该可以访问/ var / private。 您可以使用以下命令,以便只有root可以读取,写入和访问目录中的目录和文件。

将root设置为/ var / private的所有者和组所有者:

 chown -R root:root /var/private 

您还可以在目录上设置权限,以便只有root可以访问该目录(-rwx ——):

 chmod 0700 /var/private 

然后,您可以recursion设置目录中所有文件的权限,以便只有root才能读取,写入和执行目录中的文件(-rwx —–):

 chmod 0700 -R /var/private/* 

注意:我不知道你是如何使用你的数据库。 如果您的数据库文件可以通过Web浏览器访问(例如通过PHP或ASP.Net),则此权限更改可能会阻止PHP或ASP.Net与数据库logging进行交互。