我正在运行 RHEL6。我要求在我的 /etc/bashrc 中有“umask 077”,我不允许更改。我们有一个指定用于组协作的文件夹,我们希望同一组中的每个人都能够 rwx。因此,用户必须手动或在本地 .bashrc 文件中设置“umask 002”,或者记得使用 chmod。他们经常忘记并且管理员被要求“修复”权限,因为文件的所有者不可用。
有没有办法强制文件夹“umask 002”?我读过我应该使用 setfacl 但我认为 umask 会覆盖它。
我正在运行 RHEL6。我要求在我的 /etc/bashrc 中有“umask 077”,我不允许更改。我们有一个指定用于组协作的文件夹,我们希望同一组中的每个人都能够 rwx。因此,用户必须手动或在本地 .bashrc 文件中设置“umask 002”,或者记得使用 chmod。他们经常忘记并且管理员被要求“修复”权限,因为文件的所有者不可用。
有没有办法强制文件夹“umask 002”?我读过我应该使用 setfacl 但我认为 umask 会覆盖它。
请参阅如何为特定目录中创建的文件强制组和权限?
我测试的是创建一个目录/var/test。我将组设置为 tgroup01。我确保在 /var/test 下创建的任何内容都将设置为 tgroup01 组。然后,我确保 /var/test 下任何内容的默认组权限为 rwx。
如果我然后创建目录 foo 或触摸文件等等,它们具有正确的权限
setgid 位对您没有帮助 - 它只影响所有权,而不影响所有者可以对文件执行的操作。
如果共享存储区域安装在不同的文件系统上,可能会起作用。您需要让管理员使用明确设置的正确 umask 安装它,以便您可以共享文件。或者,这些文件是由仅限内部的 samba 共享挂载的——有点矫枉过正,但 samba 很容易允许特定的组和权限模型与操作系统提供的相比。
简而言之——我们中的一些人认为“ITS”中的“S”代表服务。如果他们需要 077 umask,那么他们需要想出一种有效的方式来为您共享文件。
(并且对于 setgid 位不起作用)
您可以通过使用特殊权限“ setgid bit ”来实现这一点。
setgid 位对文件和目录都有影响。在第一种情况下,设置了 setgid 位的文件在执行时,不是以启动它的用户组的权限运行,而是以拥有该文件的组的权限运行。
相反,当在目录上使用时,setgid 位会改变标准行为,以便在所述目录中创建的文件组将不是创建它们的用户,而是父目录本身。这通常用于简化文件的共享(文件将可由属于所述组的所有用户修改)。
如果我们想在目录上设置setgid位,请使用以下命令。
使用上述命令,我们将对其的所有者和作为目录所属组成员的用户授予对它的完全权限,以及对所有其他用户的读取和执行权限。
我们可以通过下面提到的其他方式设置它
例子
我们创建了多个名为user1、user2、user3的用户:
还创建了一个名为group的组:
在创建的用户中添加组作为辅助组:
创建了test_dir并添加了setgid 位权限:
使用创建的用户在 test_dir 中创建文件和目录:
这是test_dir目录列表:
希望这个解决方案对你有用。