Filesystems

使用者屬於目錄組時無權創建子目錄

  • April 24, 2017

給定一個目錄 DirA(目錄所有者是root,組是sys)。

給定一個使用者 userA,使用者屬於組 sys,他應該能夠在 DirA 中創建一個子目錄嗎?

在 Solaris SunOS 5.9 上,我有一個目錄/opt

bash-2.05$ ls -la /
total 1205
drwxr-xr-x  34 root     root        1024 Mar 17 04:21 .
drwxr-xr-x  34 root     root        1024 Mar 17 04:21 ..
.. Removed all..
lrwxrwxrwx   1 root     other         16 Apr 14  2008 opt -> /export/home/opt

這個符號連結將我帶到:

bash-2.05$ ls -la /export/home
total 524638
drwxr-xr-x  31 root     root        1024 Jan 25  2015 .
drwxr-xr-x   3 root     sys          512 Jul  2  2007 ..
...REMOVED...
drwxr-xr-x  12 root     sys          512 Apr 24 10:29 opt

我使用使用者生成器登錄:

bash-2.05$ /usr/ucb/whoami
builder

他屬於以下團體:

bash-2.05$ groups builder
other root sys 
bash-2.05$

那麼為什麼mkdir會失敗/opt/呢?

bash-2.05$ cd /opt/
bash-2.05$ pwd
/opt
bash-2.05$ mkdir mynewdir
mkdir: Failed to make directory "mynewdir"; Permission denied
bash-2.05$ cd /export/home/opt/
bash-2.05$ mkdir mynewdir
mkdir: Failed to make directory "mynewdir"; Permission denied
bash-2.05$
drwxr-xr-x  12 root     sys          512 Apr 24 10:29 opt

表示該目錄只能對root. 為了sys使組成員能夠對目錄進行更改(包括創建子目錄),它需要

drwxrwxr-x  12 root     sys          512 Apr 24 10:29 opt

如果要啟用此功能:

chmod g+w opt

會做出適當的改變。

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