題:
如何在Mac上使用chmod來使新文件繼承父目錄權限?
Jeremy Hicks
2011-11-16 20:39:19 UTC
view on stackexchange narkive permalink

我在Mac上。我要這樣做,以便在特定文件夾中創建的任何新文件/文件夾都具有與父目錄相同的權限(不是組,已經處理過)。在Linux上,我通常會使用setfacl,但看起來在Mac上的chmod也許可以滿足我的需求。我已經閱讀了chmod的手冊頁,但仍然無法弄清楚如何正確格式化命令以獲取所需的內容。

我希望新文件/文件夾可以組可讀和可寫。
五 答案:
Gordon Davisson
2011-11-16 22:32:52 UTC
view on stackexchange narkive permalink

首先,有一點背景知識來說明發生了什麼:OS X中的文件可以應用兩種截然不同的權限設置:POSIX和ACL。

總是文件(嗯,幾乎總是)應用了POSIX權限,該權限由所有者,組和其他人組成(每個人的讀寫,執行都結合在一起)。無法控制POSIX權限的繼承:新項目始終由創建它們的任何用戶擁有,組分配是從它們所在的文件夾繼承的,而訪問權限則由umask決定(幾乎總是這樣:擁有者擁有完全訪問權限,而組和其他則具有隻讀權限+對文件夾執行)。因此,POSIX權限對您要執行的操作無效。

文件還可以應用訪問控制列表(ACL)。這是訪問控制項(ACE)的列表,每個訪問控制項都適用於用戶或組,詳細說明訪問類型,允許或拒絕訪問以及是否還應將ACE複製到在文件夾內創建的項目。最後一點是對您有用的部分;您需要在指定所需組,所需訪問類型以及完全繼承的文件夾上創建一個ACE。

在OS X上的chmod可以使用+ a,-a等操作ACE。權限選項。如果我了解您的要求,則可以使用此名稱(替換組名和文件夾路徑)來創建ACE:

  chmod + a“ group:examplegroup允許列表,add_file,搜索,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit“ / path / to / folder  

請注意,繼承不是“實時的”,即,它不適用於分配ACE之前創建的項目,也不適用於在其他位置創建的項目,然後移入了文件夾。您可以使用-R( chmod -R + a ... )將其應用於現有內容。我不知道有一種方法(除Apple的服務器管理工具外)強制繼承到移入文件夾的項目。

感謝您的出色解釋。我只是嘗試了一下,它仍然只是創建了一個具有用戶讀/寫權限的新文件,其他人都具有讀取權限。父文件夾(室外)設置為775權限,我的用戶(jhicks)為所有者,_www為組。我已將自己添加到_www組。 drwxrwxr-x + 13個jhicks 442B Nov 16 09:47在戶外我按如下方式運行您的命令:chmod + a“ group:_www允許列表,add_file,search,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,fileinheritit,directory_在戶外
ls -l僅顯示POSIX權限(儘管權限後的“ +”表示存在ACL)。使用`ls -le`也顯示ACL。
如果組名中有空格,則可以使用:作為分隔符。例如,“ group:我的帶有空格的組:允許”
遵循“ chmod + a ...”命令,然後在文件夾中創建了一個_abc.txt_。切換到另一個用戶並使用TextEdit進行編輯,該文件表示為_Locked_,並且不可編輯。
我一直在玩這個遊戲,我想你用+ ai強制繼承
JW8
2011-11-16 23:22:58 UTC
view on stackexchange narkive permalink

嘗試在@gordon的命令中添加 -R ,例如:

  chmod -R + a“ group:_www允許列表,添加文件,搜索,添加子目錄, delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit“在戶外 

-R 選項將(如此處):

遞歸:更改植根於文件的文件層次結構的模式,而不僅僅是文件本身。

更改文件層次結構似乎是您正在尋找的內容(用於新文件,目錄等)。

您還可以查看此 Apple.SE帖子,其中涉及的情況與您的情況有些相似(與共享目錄有關的除外),這需要在前面加上 sudo

noses
2012-10-17 20:51:55 UTC
view on stackexchange narkive permalink

這個(-R)不是大多數人想要做的;大多數情況下,他們希望更改最頂層目錄上的ACL,並執行一些魔術操作,以強制所有包含的對像根據它們在該子樹的根目錄上指定的ACL來繼承標誌。這更加優雅,因為對像上的ACL會根據策略對這些繼承的ACE進行排序。

是的,我不得不編寫一個python腳本來執行此操作,我也沒有找到合適的方法。

您是否想要分享(例如,在[要點](https://gist.github.com/)上)分享?
Max
2016-10-04 21:08:07 UTC
view on stackexchange narkive permalink

在Mac上,嘗試使用 PathFinder,可以輕鬆設置ACL和POSIX。如果要在Mac Server上託管WordPress,則還需要在wp-config.php中設置 define('FS_METHOD','direct'); ,以便安裝插件和升級。不會要求您提供FTP詳細信息。

因此,基本上,您保留默認的POSIX權限,並將用戶_www(而非組)添加到ACL,然後在“ ACL”窗口中單擊“傳播權限”。

zaonline
2017-07-14 16:24:53 UTC
view on stackexchange narkive permalink

chmod + ai,我=繼承ACL規則



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...