私はUnixコマンドに初めて触れましたが、必要です。私はユーザーアカウントとしてWin ADを使用し、ファイルを保存するためにMacを使用する混合Win / Mac環境を持っています。
Macにはユーザー用のホームフォルダを自動的に作成し、私の場合は「createhomedir -s」に適切な権限を設定するコマンドがあります。このコマンドの出力は次のとおりです。
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)
それから私がしなければならないのはOwnCloud.orgを使ってユーザーファイルへのアクセスを提供するので、新しく作成されたホームフォルダに対する追加の権限を設定し、自分自身に読み取り/書き込みアクセス権と_www(Apache Webホスト)を提供しますすることです。 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ユーザーアカウント!)、サーバーの速度が実際に遅くなる可能性があります。私が望むのは、新しく作成されたユーザーに対して最初のコマンドから始まり、両方のコマンドを実行して時間とオーバーヘッドを大幅に減らすことです。
私はgrep、awkなどについて読みましたが、これを実装する方法がわかりません。
したがって、デフォルトでは実行を開始し、そのコマンドのcreatehomedir -s
出力から各ユーザー名を抽出し、そのユーザー名を使用して「data」フォルダ(/data/%USERNAME%)の代わりに2つのchmodを実行したいと思います。
ベストアンサー1
簡単です。
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
コマンドが適切であると思われる場合は、「echo」を削除してください。