• 締切済み

シェルの「su - 」について

シェルの中に「su - root -c」と「su root -c」と書かれた部分があります。 「su - root -c」にすると、bashまでrootになってしまって危険が伴うと思うのですが、そのようにする必要があるでしょうか? また2つをどのように使い分けたほうが良いでしょうか?

みんなの回答

  • notnot
  • ベストアンサー率47% (4901/10362)
回答No.2

>「su - root -c」にすると、bashまでrootになってしまって危険が伴うと思うのですが もしかして、「su root -c foo」だとシェルを起動しないと思っているのでしょうか? su root -c fooでも su - root -c foo でもrootのログインシェルに指定されたシェルを起動してそのシェルがfooコマンドを実行します。 違いは、そのシェルが起動時にどの設定ファイルを読み込むかです。 シェルがbashの場合の違いは、man bashの「起動」の部分の ・--login オプション付きの非対話的シェルとして起動されると、 ・非対話的に起動されると、 の部分を読み比べてください。

hiroasi
質問者

お礼

回答有難う御座いました。 うまく行きました!

  • OKwebb
  • ベストアンサー率44% (92/208)
回答No.1

環境変数を引き継ぎたい場合に「su - root -c」を使うかな。 Linuxの場合だったら su はほとんど使わず sudo を使うけど。

hiroasi
質問者

お礼

回答有難う御座いました!

関連するQ&A