UNIXコマンドは初めてですが、必要があります。 Win/Macが混在する環境で、ユーザーアカウントにWin ADを使用し、ファイルストレージとしてMacを使用しています。
私の状況では、ユーザーのホームフォルダーを自動的に作成し、適切なアクセス許可 'createhomedir-s'を設定するコマンドがMacにあります。このコマンドの出力は次のとおりです。
creating home directories for (cloud.mc.net.mackillop)
created (/Network/Servers/cloud.mc.net.mackillop/data/18goodki/files)
created (/Network/Servers/cloud.mc.net.mackillop/data/18langre/files)
created (/Network/Servers/cloud.mc.net.mackillop/data/16gibsga/files)
created (/Network/Servers/cloud.mc.net.mackillop/data/17gibssa/files)
created (/Network/Servers/cloud.mc.net.mackillop/data/99bowmam/files)
created (/Network/Servers/cloud.mc.net.mackillop/data/99newtal/files)
created (/Network/Servers/cloud.mc.net.mackillop/data/99daypa/files)
次に、これらの新しく作成されたホームフォルダーに追加のアクセス許可を設定して、読み取り/書き込みアクセスと_www(Apache Webホスト)を提供します。OwnCloud.orgを使用してユーザーファイルにWebベースのクラウドアクセスを提供します。 。
これを実現するために実行する2つのコマンドは次のとおりです。
Sudo chmod -R +ai "_www allow list,add_file,search,delete,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" data
Sudo chmod -R +ai "ittech allow list,add_file,search,delete,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" data
すべてのユーザーとサブフォルダーの「data」フォルダー全体に対してこれらの2つのコマンドを実行すると、時間がかかり(973ユーザーアカウント!)、サーバーの速度が大幅に低下します。私がやりたいのは、最初のコマンドから新しく作成されたユーザーに対してこれら2つのコマンドを実行するだけで、時間とオーバーヘッドを大幅に削減することです。
私はgrep、awkなどを読んでいますが、これを実現する方法がよくわかりません。
したがって、基本的にはcreatehomedir -s
を実行し、このコマンドの出力から各ユーザー名を抽出し、これらのユーザー名を使用して、「data」フォルダーの代わりに2つのchmodを実行します(代わりに/ data /%USERNAME%) )。
簡単です...次のようにラップするだけです(注意:作成ビットが成功し、createhomedirの出力がSTDERRではなくSTDOUTにあると想定しています):
for i in $(createhomedir -s | grep -o 'data/[^\/]*' )
do
echo Sudo chmod -R +ai "_www allow list,add_file,search,delete,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" $i
echo Sudo chmod -R +ai "ittech allow list,add_file,search,delete,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" $i
done
コマンドの正気に満足している場合は、「エコー」を取り除きます。