最初のコマンドの出力に基づいて2つのコマンドを実行します。

最初のコマンドの出力に基づいて2つのコマンドを実行します。

私は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」を削除してください。

おすすめ記事