[[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