[[OSX ServerのACL]]

指定したディレクトリに対してユーザ権限を与えるシェルスクリプトを作成しました。

 #!/bin/sh
 
 # user or group
 TARGET=権限を持つ事になるユーザまたはグループ名
 TARGET_DIR=影響を与えたいディレクトリ名
 
 find ${TARGET_DIR} | while read FILENAME
 do
   if [ -d "${FILENAME}" ]
   then
     chmod +a "${TARGET} allow list,add_file,search,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" "${FILENAME}"
   elif [ -f "${FILENAME}" ]
   then
     chmod +a "${TARGET} allow write,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" "${FILENAME}"
   fi
 done


ACLの設定を解除する場合以下のスクリプトが役に立ちます。

 #!/bin/sh
 
 # user or group
 TARGET_DIR=.
 
 find ${TARGET_DIR} | while read FILENAME
 do
   chmod -N "${FILENAME}"
 done


さらに応用例です。
ひとつだけのファイルかディレクトリに影響を与えたい場合以下のようにします。

 #!/bin/sh
 
 # user or group
 TARGET=権限を与えるユーザまたはグループ名
 FILENAME=対象ファイル/ディレクトリ名
 
   if [ -d "${FILENAME}" ]
   then
     chmod +a "${TARGET} allow list,add_file,search,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" "${FILENAME}"
   elif [ -f "${FILENAME}" ]
   then
     chmod +a "${TARGET} allow write,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" "${FILENAME}"
   fi


逆に複数のディレクトリやファイルに影響を与えたい場合以下のようにすると便利です。

 #!/bin/sh
 
 # user or group
 TARGET=権限を与えるユーザまたはグループ名
 
 for TARGET_DIR in 権限を追加したいディレクトリやファイルをスペースで区切って列挙
 
 do
 
 find ${TARGET_DIR} | while read FILENAME
 do
   if [ -d "${FILENAME}" ]
   then
     chmod +a "${TARGET} allow list,add_file,search,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" "${FILENAME}"
   elif [ -f "${FILENAME}" ]
   then
     chmod +a "${TARGET} allow write,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" "${FILENAME}"
   fi
 done
 
 
 done



トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS