別のユーザーとしてシェルスクリプト内にディレクトリとサブディレクトリを作成しようとしています。
問題は、root
所有権を持ち、ディレクトリが生成されるようにスクリプトを実行していることです。ディレクトリとサブディレクトリ名を含むテキストファイルがあり、root
これを行うには次のコマンドを使用しています。
cat dirname.txt | xargs -L 1 mkdir
次のようになります。
cet/mnt
cet/mnt/jkl
cet/mnj/lok
試しましたが、sudo
親ディレクトリのみを必要とするユーザーの所有権を取得します。
答え1
なぜこれをしないのですか?
user="foo"
group="bar"
perm=741
for dir in $(cat dirname.txt); do
mkdir ${dir}
chown ${user}:${group} ${dir}
chmod -R ${perm} ${dir}
done
将来の変更を簡単にするには、変数を活用するのが最善です。 1行ではなくディレクトリのリストを繰り返すこともメンテナンスが簡単です。
答え2
次のようにしてみてください。
cat dirName.txt | xargs -L 1 sudo -u ubuntu mkdir -p