別のユーザーとしてディレクトリとサブディレクトリを作成する[閉じる]

別のユーザーとしてディレクトリとサブディレクトリを作成する[閉じる]

別のユーザーとしてシェルスクリプト内にディレクトリとサブディレクトリを作成しようとしています。

問題は、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

関連情報