chmod g+w+s 在目录上而不更改 umask (Linux)?

chmod g+w+s 在目录上而不更改 umask (Linux)?

我想创建在目录中创建的新文件,可供同一 Posix 组中的其他人写入,而无需使用 ACL。不确定这是否可能。

我过去完成此操作的方法是将每个用户更改umask0002,然后更改chmod g+w+s为包含共享文件的目录(为简洁起见,对输出进行了编辑):

$ mkdir shared ## create a shared location
$ ls -lart
drwxr-xr-x  2 user234 sysadmin 4096 Mar  1 10:02 shared

$ groups ## must be member of group to share with
sysadmin webdevel sysconfig

$ chmod g+w+s shared ## set new files for group write/:sysconfig ownership
$ chown :sysconfig shared
$ ls -lart
drwxrwsr-x  2 user234 sysconfig 4096 Mar  1 10:02 shared

$ touch shared/file1 ## need umask for group write?
$ ls -lart shared/file1 
-rw-r--r-- 1 user234 sysconfig 0 Mar  1 10:03 shared/file1

$ umask
0022          ## no group write bits

$ umask 0002  ## set umask to add group write by default

$ touch shared/file2 ## ok fine                                                                                                
$ ls -lart shared/file2
-rw-rw-r-- 1 user234 sysconfig 0 Mar  1 10:03 shared/file2

$ touch ~/tps_reports  ## files created in home are GW now as well
$ ls -lart ~/tps_reports
-rw-rw-r-- 1 user234 sysadmin 0 Mar  1 10:08 /home/user234/tps_reports

更改的问题umask是当用户在其他地方创建文件时(例如在通常不需要组读/写的主目录中),这些文件默认也具有组写,因为umask会影响本地文件系统中的文件。 ACL 是解决此问题的唯一方法吗?

相关内容