Linux 目录创建错误

Linux 目录创建错误

我想创建一个具有完全权限的目录(这也适用于其“子文件夹”)。我使用以下命令:

 sudo chmod 777 -R /opt/www

它仅将权限设置为现有文件夹和子文件夹。我想让它也适用于新文件/文件夹,这样我就不需要为新文件和文件夹一次又一次地输入相同的命令。请让我知道完整的语法。

答案1

检查 umask 设置。您可以使用命令“umask”设置一次,但如果您想永久保留它,您必须将其包含在 .bashrc、.profile 等您使用的任何文件中。

还有一个针对 pam 登录技术的设置。(/etc/pam.d)

例如在 /etc/pam.d/common-session 中:

optional                        pam_umask.so umask=002

但现在真的需要详细了解;我需要更多地了解您的系统。

要获取“本地”umask,还有一个挂载选项 umask,它只会更改此设备的 umask。但是,这仅适用于某些文件系统,例如 FAT。

关于 umask 和访问权限:正如 vtest 指出的那样,777 不是访问权限的好选择,通常也不需要。使用 umask 002,组获得写入权限。这样做的原因是,现在您可以为目录提供您选择的组所有权,并将其权限设置为 2775(即 rwxrsxr-x)。group-s(或 2000)意味着,每个创建的文件或目录将再次属于该组,因此该组中的所有人都可以写入。

答案2

文件访问控制列表 (FACL) 是您的朋友:man getfacl

答案3

你不能。Linux 中的 POSIX 文件权限不可继承。它们由创建进程和 umask 赋予。

如果您真的非常迫切地需要它,请编写一个守护进程来监视目录并相应地设置文件权限。当然,这意味着守护进程以足够的访问权限运行,例如以 root 身份运行。

否则你可以

setfacl -d -m u::rwX,g::rwX,o::- /path/to/parent

但你的权限将不再是 POSIX。

答案4

创建一个名为 webadmin 或类似名称的组,然后添加需要访问该组的所有用户。将 /opt/www 目录的目录权限设置为粘性组 R/W,并将该组设置为 webadmin。这会将所有新文件创建为组 webadmin,并将它们设置为该组的读写权限。因为所有需要的帐户都是 webadmin 的成员,所以他们将有权访问这些文件。

相关内容