このセクションでは自宅サーバーとしてLinuxを操作するうえでよく使うコマンドについて初心者/ビギナー向けに解説します。
お便利サーバー.com+相互リンクサイト内をキーワードで検索
抜粋Linuxコマンドリファレンス

ディレクトリとファイルの操作+

ディスクとパーティションの操作+

テキストの操作+

ユーザーとアカウント管理

アカウントの追加と削除
パスワードの設定と変更
ログインアカウントの変更

ネットワークの管理+

システム・プロセス管理+

その他のコマンド+


su〜ログイン中のアカウントを変更する

WBEL CentOS のシステムに ログイン 中に、 ログアウト を行わずにそのまま異なる ユーザーアカウント でログインしなおすための コマンド です。

例えば "tanaka" というユーザーアカウントでログインして作業しているときでも、このコマンドを使用すれば、一度ログアウトしなくても "suzuki" というユーザーアカウントでログインできるようになります。

ただ、サーバーの管理ではこのような「一般ユーザーアカウントから一般ユーザーアカウントへの変更」は、あまり行う機会はありません。

このコマンドは 「一般ユーザーアカウントでログインしている サーバー 管理者が、システム操作のために"root"アカウントでログインしなおすとき。」 に最もよく使用されます。

su コマンドは、いくつかオプションがありますが、基本的なものだけ覚えておけば充分です。

一般ユーザーアカウントから"root"アカウントへの変更

su コマンドの一般書式は、

su [ユーザーアカウント名] Enter

ですが、 ユーザーアカウント 名を省略すると変更先は "root" アカウント とみなされますので、単純に、

su Enter

または、

su - Enter

と実行します。

su の後に "-(ハイフン)" をつけた場合と付けない場合の違いは、 su コマンド実行前のユーザーアカウントの操作環境(使用する シェル の種類や 環境変数 ホームディレクトリ など)をそのまま "root" に引き継ぐか、それとも "root" に設定されている操作環境を用いるか、という違いがあります。

[tanaka@web1 ~]$ suEnter
Password: "root"のパスワードを入力します。Enter
[root@web1 tanaka]# ホームディレクトリが"tanaka"のままです。

[tanaka@web1 ~]$ su -Enter
Password: "root"のパスワードを入力します。Enter
[root@web1 ~]# ホームディレクトリが"root"に変更されました。

注意点としては、 su の場合と su - の場合では "PATH" 環境変数が異なることが挙げられます。

[tanaka@web1 ~]$ printenv PATHEnter printenvコマンドについて
/usr/kerberos/bin:/bin:/usr/bin:/usr/local/bin:/usr/bin/X11:/usr/X11R6/bin:/home
/tanaka/bin    ←↑環境変数"PATH"。
[tanaka@web1 ~]$

例えば "root" ユーザーには デフォルト "/usr/sbin/" "PATH" 環境変数として与えられますが、一般ユーザーにデフォルトで与えられる"PATH"には "/usr/sbin/" が含まれていません。

従って su "root" に変更した場合は "/usr/sbin/" 以下にある コマンド を実行したい場合は必ず パス 名付きで実行しなければならなくなります パスが通っている、とは?

そういう点を考えれば、できるだけ su - を利用したほうが良いと思われます。

一般ユーザーアカウントから一般ユーザーアカウントへの変更

su [アカウント名] Enter

または

su - [アカウント名] Enter とタイプします。

[tanaka@web1 ~]$ su suzukiEnter
Password: "suzuki"のパスワードを入力します。Enter
[suzuki@web1 tanaka]$ ホームディレクトリが"tanaka"のままです。

[tanaka@web1 ~]$ su - suzukiEnter
Password: "suzuki"のパスワードを入力します。Enter
[suzuki@web1 ~]$ ホームディレクトリが"suzuki"に変更されました。

"root"ユーザーアカウントから一般ユーザーアカウントへの変更

su [アカウント名] Enter

または

su - [アカウント名] Enter とタイプします。

あたりまえのことですが、すでに "root" アカウントでログインしていますので、ユーザーアカウント名は省略できません。

また、 "root" アカウントからの su を実行する場合には、パスワードの入力は不要となります。

[root@web1 ~]# su tanakaEnter
[tanaka@web1 root]$ ホームディレクトリが"root"のままです。

[root@web1 ~]# su - tanakaEnter
[tanaka@web1 ~]$ ホームディレクトリが"tanaka"に変更されました。

ユーザーアカウントを元に戻す

プロンプト から exit Enter とタイプします。または、 Ctrl + d とタイプします。

すると現在のユーザーアカウントがログアウトされ、 su コマンドを最後に実行したユーザーアカウントに戻ります。

従って、 su コマンドで何度もユーザーアカウントを変更していた場合には、その回数分だけ exit を行わなければ最終的なログアウトはできません。

また、 su コマンドが "-" 付きで実行されていた場合には、 exit を行うとコマンドシェルの画面がクリアされてから元のユーザーアカウントに戻りますが、 "-" なしで実行されていた場合には画面表示に継続されて元のユーザーアカウントに戻ります。

-c〜ユーザーアカウントを指定してコマンドを実行する

su コマンド には、 ユーザーアカウント を変更するだけではなく、他のユーザーアカウントの権限を使ってコマンドを実行する機能があります。一般書式は、

su -c '[コマンド]' [実行させるユーザーアカウント名] Enter

となります。

これは特殊なケースに用いられるオプションで、例えば root アカウント で起動することが セキュリティ 上好ましくない デーモン を、 ログイン 権限を持たない別の システムアカウント 権限で起動する場合などに用いられます。

また、管理上rootアカウントで実行すべき シェル スクリプト 中で、root以外のアカウントから実行しなければならないコマンドを利用したい場合などにも用いられます。

このサイトは リンクフリー です。趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。今のところ更新予定はありませんのでご了承ください。
”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。