私のbashスクリプトには次の部分があります。
su root -c chown -R smithb:other /export/home/smithb/workspace/rootownsit/
exit
このディレクトリrootownsit
と2つのサブディレクトリはで作成され所有されますroot
。上記の内容がうまくいくと思いましたが、そうではありませんでした。私のユーザーとしてbashスクリプトを実行すると、rootパスワードの入力を求められ、rootchown
パスワードを入力すると使用メッセージが表示されます。 rootownsitディレクトリとそのサブディレクトリの所有権を変更する必要があります。
答え1
これは単純な構文問題です。su
ターゲットユーザーのログインシェルで解析される単一の(オプションの)コマンド引数を使用します。ここでrootとして実行されるコマンドのパラメータは-c
ですchown
。単一の引数になるように、コマンドをスクリプト内で引用符で囲みます。
su -c 'chown -R smithb:other /export/home/smithb/workspace/rootownsit/' root
組み込みコマンドはexit
スクリプトを終了します。これをしたくない場合は呼び出さないでくださいexit
。