Linux

讓使用者創建775個權限文件夾

  • September 4, 2018

我輸入了命令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(for sh, and bash) 或/etc/bashrc(for bash only):

if [ "$USER" = "souser" ] ; then
   umask 0002
else
   umask 0022
fi

您可以通過一個簡單的umask命令來檢查它是否成功,該命令將輸出目前有效的 umask。

請注意,實際設置權限仍然取決於應用程序。如果您使用其他程序或命令,在其程式碼硬連線中永遠不會在它創建的文件夾上設置組寫入權限,您要麼必須更改該程序的程式碼,要麼事後手動設置權限。這正是 UNIX/Linux 應該工作的方式。

引用自:https://unix.stackexchange.com/questions/466569