• ベストアンサー

suとsu -の場合に実行されるスクリプトの違い

suとsu -の場合でPATH変数の値が変わってきます。 これはどのスクリプトが実行されているからなのでしょうか? スクリプトの内容からは、/etc/profileや、~/.bash_profileではないように思われます。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4854/10269)
回答No.1

suだとsuする前の環境変数を引き継ぎます。 su - だとsuする先のユーザーのログイン処理を行います。ログイン処理の時に読むファイルについては man bashに書いてあります。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • スクリプトを起動時に実行させるには

    バックアップ用の簡単なシェルスクリプトを書きました。 これを、システムの起動時と終了時に自動的に実行させたいのですが、 どこに置いたらいいのでしょうか。 とりあえず思い付いたのはbash_profileとbash_logoutに書くという方法ですが,できればログイン前,システム起動スクリプトが終わったあとあたりに実行させたいと思っています。 非常に初歩的な質問で申し訳ありませんが,どう調べていいかわからず困っておりますので,ごく大まかにお教え頂くかリンクなどを紹介していただければと思います。

  • sudo での実行の profile

    sudo <command> sudo su -c<command> を使用したとき、/etc/profile .profile などに書いてある環境設定がされておらず、コマンドが実行できずに困っています。 sudo するときに、対象ユーザ(sudo する先のユーザ)の環境設定用のスクリプトをあらかじめ実行するためには、どうすればよいものでしょうか? よろしくお願いします。

  • スクリプト難しいです…

    SE初心者です。 telnet(bash)でスクリプトを作成しています。 root実行権限のあるシェルを 別ユーザーで実行させるために(rootのパスは暗号化させて)親シェルを作成したいです。 su - でパスワードを聞かれた時に対話式で暗号化したパスワードを組み込むシェルを作成したいのですが行き詰まってます。。。 色々調べたのですが知識が無いので理解するのもやっとです… ちなみに、sudoは使えません。 expectも使えませんでした… 親シェルの中身としては、 1.su - 2.パスワード(暗号化) 3.rootで実行したいシェル のみの、シンプルなものを期待しています… 有識者の方、ご教授お願いします。

  • pathを追加するスクリプト

    初歩的な質問内容ですが、よろしくお願いします。 ある作業マシンにログインするたびに、 export PATH="/hoge:$PATH" と打つのが面倒なので、スクリプトを作ることにしました。 スクリプトを作るのは初めてなので、ちょっとネットで調べて、 path.shというファイルに #!/bin/sh export PATH="/hoge:$PATH" echo $PATH と記述して、 $ sh path.sh と実行しました。 すると、スクリプト内のechoによって表示された$PATHを見ると hogeの部分がちゃんと追加されているように見えるのですが、 もう一度改めて(スクリプトでなく)$ echo $PATH と打ってみるとhogeは$PATHに追加されていず、 実際にもpathが通ってくれてないです‥。 理由、解決策など、教えて頂けるとうれしいです。 よろしくお願いします。 --- また、普通はこういう場合、.bash_profileなどを編集すると思うのですが、今回それはしたくないです。理由は、 自分がこのマシンの使うのが一時的ということもあって、 自分のユーザとしてでなく、rootとして入っている為です。 自分以外の人もrootでログインすることが多いので、 スクリプトを実行するような形でpathを変更したいです。

  • PowerShellのスクリプト実行について

    PowerShellのスクリプト実行について PowerShellの勉強をしていますが、スクリプトを実行できません。。。 なんか、スクリプトの環境変数を設定するようですが、どこにも 設定方法がないです。。。。 もちろん、Set-ExecutionPolicy Unrestrictedは実行してあります。 以下日付と時間を表示するだけのスクリプトです。 ---------test.ps1--------- get-date get-time ---------------------------- スクリプトファイルの置き場所 ⇒ C:\script-test\test.ps1 ちなみに、スクリプトファイルを置いたディレクトリに移動して 実行しても、以下のようなメッセージが出て実行できませんでした。。 用語 'C:\script-test' は、コマンドレット、関数、スクリプト ファイル、または操作 可能なプログラムの名前として認識されません。名前が正しく記述されていることを確 認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してく ださい。 発生場所 行:1 文字:15 + C:\script-test <<<< .\test.ps1 + CategoryInfo : ObjectNotFound: (C:\script-test:String) []、Comma ndNotFoundException + FullyQualifiedErrorId : CommandNotFoundException どなたかご教授下さい。

  • CRON でPHPスクリプトをGET変数付きで実行したい

    CRONで下記のようにPHPスクリプトをGET値(hoge=1)を付加して実行したいのですがうまくできません。 */1 * * * * php path/myscript.php?hoge=1 CRONでPHPスクリプトを実行する場合、GET変数は使えないのでしょうか? ご教授お願いいたします。

    • ベストアンサー
    • PHP
  • puttyというsshクライアントでログインと同時にシェルスクリプトを実行したい

    はじめまして。 WINDOWS XP SP2でputtyを使い sshでRH ES3サーバーに接続しています。 ログイン後あるシェルスクリプトを自動で実行させたいのですが、.bash_profile以外に方法はありますか? .bash_profileだとそのユーザー全員が対象になってしまうため他の方法を探しています。

  • [シェルスクリプト内で bashコマンド後のコマンドが実行されない]

    [シェルスクリプト内で bashコマンド後のコマンドが実行されない] 以下の様にシェルスクリプトを記述するとコマンド2が実行されません。 #! /bin/sh コマンド1 bash コマンド2 bash環境でコマンド2を実行させるにはどうしたら良いのでしょうか?

  • Linuxでシェルスクリプトがフルパスだと実行できない

    Linuxでシェルスクリプトがフルパスだと実行できない こんにちは 現在linuxでシェルスクリプトを記載していて、やっと出来た!と思ったら、なぜかフルパスで実行すると失敗します。 中身は例えば #!bin/sh echo "hello" とし、ファイル名をtest.shとします。 実行時にカレントからだと上手くいきます。 ./test.sh ただし、フルパスで実行するとうまくいきません。 ./home/user/test.sh エラーは以下 bash: ./home/dv3/tet.sh:No such file or directory 所有者はrootでグループもrootにしてあります。 シェルの権限は755にして、rootで実行しています。 なぜカレントだと上手くいき、フルパスだと上手くいかないのでしょうか? パスが必要なコマンドも入っていないのに。。。 どなたかご教授いただけると幸いです。 宜しくお願い致します。

  • suでバーナーを出なくする方法

    su - ユーザ名 -c コマンド名 をbshスクリプトから実行したら、必要の無い 「Sun Microsystems Inc. SunOS 5.8 Generic Patch October 2001」 のバーナーがでてしまいます。 /etc/motdで定義されているのは知っているのですが、ログイン時だけでsu時は出さなくする方法を教えて下さい。 ちなみにsuするユーザはcshがデフォルトです。