自动设置 sudo chmod 777

自动设置 sudo chmod 777

有没有办法自动设置sudo chmod 777目录中的所有文件、文件夹和子文件夹。sudo chmod 777当在父目录中创建文件夹或文件时,应该自动设置。

有没有办法做到这一点?

答案1

在 bash 中执行umask 000,然后您创建的每个目录都将具有权限 777,您创建的每个文件都将具有权限 666。默认情况下,您无法创建可执行文件,您需要使用 chmod 明确地使它们可执行。这是一项安全功能。

请注意,umask 是所需文件权限的“按位异或”,并且要获得最宽松的模式 777,您需要使用 umask 000。

在最近的 Ubuntu 系统中,您可以在文件中设置系统范围的 umask /etc/login.defs。较旧的系统使用/etc/profile

请记住,创建操作系统的人对安全性有所了解,并且出于某种原因选择了 umask 022。如果您遵循此建议,您的计算机将非常不安全。

答案2

我想到的一个方法就是setfacl命令。 这是 Ubuntu 指南如何为挂载点启用 ACL(访问控制列表)。总之,安装相关包

sudo apt-get install acl

然后,将选项“acl”添加到/etc/fstab 中的挂载点

UUID=07aebd28-24e3-cf19-e37d-1af9a23a45d4 /home ext4 defaults,acl 0 2

最后,重新安装驱动器以使更改生效

sudo mount -o remount /home

完成此操作后,您可以使用setfaclgetfacl来设置任何目录或特定文件的选项。目录的 ACL 选项还包括使用以下命令设置新文件和子文件夹的默认权限的功能:

setfacl -d -m u::rwx /folder/to/modify  # Default permissions for owning user
setfacl -d -m g::rwx /folder/to/modify  # Default permissions for owning group
setfacl -d -m o::rwx /folder/to/modify  # Default permissions for others

以供参考,这是手册页对于 setfacl。此外,虽然这些权限默认应用于新创建的子文件和文件夹,但如果需要,setfacl 仍可用于事后更改权限。最后,启用 ACL 后,您可以通过在权限后ls -l查找+符号来查看命令输出中哪些文件/文件夹具有 ACL 回复。例如,

-rw-r--r--+  # Has ACL applied
-rw-r--r--   # No ACL applied

相关内容