我想创建在目录中创建的新文件,可供同一 Posix 组中的其他人写入,而无需使用 ACL。不确定这是否可能。
我过去完成此操作的方法是将每个用户更改umask
为0002
,然后更改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 是解决此问题的唯一方法吗?