我输入了命令chfn -o umask=002 souser
,并期望souser
用户随后会创建具有775
权限的文件夹,但他没有。如何让某个用户创建的每个新文件夹都具有该组的写入权限?这是我的测试:
s@lokal:~$ sudo adduser souser
Adding user `souser' ...
Adding new group `souser' (1002) ...
Adding new user `souser' (1002) with group `souser' ...
The home directory `/home/souser' already exists. Not copying from `/etc/skel'.
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for souser
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y
s@lokal:~$ sudo usermod -aG sudo souser
s@lokal:~$ su souser
Password:
souser@lokal:/home/s$ cd
souser@lokal:~$ mkdir test
souser@lokal:~$ ls -ld test/
drwxr-xr-x 2 souser souser 4096 Sep 3 14:23 test/
souser@lokal:~$ chfn -o umask=002
chfn: Permission denied.
souser@lokal:~$ sudo chfn -o umask=002 souser
souser@lokal:~$ mkdir test2
souser@lokal:~$ ls -ld test2
drwxr-xr-x 2 souser souser 4096 Sep 3 14:24 test2
souser@lokal:~$ sudo cat /etc/passwd |grep souser
souser:x:1002:1002:,,,,umask=002:/home/souser:/bin/bash
souser@lokal:~$
更新#1
重新登录后是一样的:
souser@lokal:~$ mkdir test3
souser@lokal:~$ ls -ld test3
drwxr-xr-x 2 souser souser 4096 Sep 3 14:42 test3
souser@lokal:~$
更新#2
这也没有帮助:
s@lokal:~/Dropbox$ su - souser
Password:
souser@lokal:~$ mkdir test4
souser@lokal:~$ ls -ld test4
drwxr-xr-x 2 souser souser 4096 Sep 3 14:51 test4
souser@lokal:~$
注意:发行版是 Debian 9。
Linux 和 Unix 发行版之间设置 umask 的可能性有很大不同。
您尝试执行此操作的方式(在 中的“gecos”字段中
/etc/passwd
)取决于pam_umask
安装和配置。AFAIK 这至少是 Debian 的默认情况,并且可能是基于 Debian 的发行版,如 Ubuntu、Mint 等......如果没有
pam_umask
,您可以umask 002
在用户主目录中的 shell 配置文件或 rc 文件中添加一行(例如:.bashrc
或.profile
)。或者系统范围的配置文件中的类似内容,例如/etc/profile
(forsh
, andbash
) 或/etc/bashrc
(for bash only):您可以通过一个简单的
umask
命令来检查它是否成功,该命令将输出当前有效的 umask。请注意,实际设置权限仍然取决于应用程序。如果您使用一些其他程序或命令,在其代码中硬连线永远不会在它创建的文件夹上设置组写入权限,您将不得不更改该程序的代码或之后手动设置权限。这正是 UNIX/Linux 应该工作的方式。