linux共通コマンド(53):suコマンド

1412 ワード

suコマンド
suコマンドは、現在のユーザーIDを他のユーザーIDに切り替えるために使用され、変更するユーザーアカウントとパスワードを入力する必要があります. 
構文
su(  )(  )    

オプション
-c<コマンド>または--command=<コマンド>:指定したコマンドを実行すると、元のアイデンティティに戻ります.
-fまたは-fast:cshとtschに適用され、shellが起動ファイルを読み込まないようにします. 
-lまたは-login:アイデンティティを変更すると、作業ディレクトリも同時に変更され、HOME、SHELL、USER、lognameも変更されます.また、PATH変数も変更されます.
-m,-pまたは--preserve-environment:アイデンティティを変更する場合は、環境変数を変更しないでください. 
-sまたは--shell=:実行するshellを指定します. 
--help:ヘルプを表示します. 
--version;バージョン情報を表示します.
パラメータ
≪ユーザー|Users|ldap≫:IDを切り替えるターゲット・ユーザーを指定します.
一般的な例
アカウントをrootに変更し、lsコマンドを実行した後、元の使用者に戻ることを終了します.
   su -c ls root 
アカウントをrootに変更し、-fオプションを新しい実行shellに入力します.
   su root -f 
アカウントをtestに変更し、作業ディレクトリをtestのホームディレクトリに変更する:su-test
suコマンドとsuコマンドの最大の本質的な違いを詳しく説明します.
前者はrootアイデンティティを切り替えただけで、Shell環境は依然として一般ユーザーのShellである.
後者はユーザとShell環境とともにrootアイデンティティに切り替えられた.
Shell環境を切り替えた場合のみ、PATH環境変数エラーは発生しません.suがrootユーザーに切り替えた後、pwdすると、作業ディレクトリは依然として普通のユーザーの作業ディレクトリであることが分かった.su-コマンドで切り替えると、作業ディレクトリはrootの作業ディレクトリになります.echo$PATHコマンドでsuとsu-以降の環境変数の違いを見てみましょう.このように、現在のユーザから他のユーザに切り替えるにはsuコマンドを使用します.
$pwd/home/test(現在のユーザーディレクトリ)$su******(パスワード入力)#pwd(パスの再表示)/home/test(または現在のユーザーディレクトリ)ただしsu-に変更すると、$pwd/home/test(現在のユーザーディレクトリ)$su-******(パスワード入力)#pwd(パスの再表示)/root(スーパーユーザーディレクトリへの切り替え)の結果となります.