有没有办法自动设置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
完成此操作后,您可以使用setfacl
和getfacl
来设置任何目录或特定文件的选项。目录的 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