suコマンドで特権ユーザーになる
【連載コラム:Linuxを学ぼう(10)】
サーバーを扱う上で必須と言える技術が「Linux」。今回はsuコマンドの使い方について解説します。
サーバーを管理する上で必須の技術「Linux」の学習の仕方を解説するこのコラムの今回は、前回のコラム記事の中でも少し紹介した「suコマンド」の使い方について解説します。
suコマンドの実行にはrootのパスワードが必要
suコマンドを実行すると、ユーザーrootのパスワードの入力が求められます。ディストリビューションによってはsuコマンドは使わせず、すべてsudoコマンドで行うことを想定して、インストール時にrootのパスワードを設定しないものもあります。その場合、suコマンドの実行は行えません。
以下、実行例です。
[linuc@localhost ~]$ su
パスワード: ※ユーザーrootのパスワードを入力
[root@localhost linuc]#
プロンプトが切り替わり、ユーザーrootになったことが分かります。
-オプションの有無による違い
suコマンドは-オプションが用意されています(文字は何も付きません)。このオプションはユーザーが切り替わった時、そのユーザーでログインし直したのと同じ動作になります。
以下、実行例です。
[linuc@localhost ~]$ su -
パスワード:
[root@localhost ~]#
前の実行例と比較すると、プロンプトに表示されているカレントディレクトリが異なっているのが分かります。
-オプション無し:それまでの環境をそのまま引き継ぎます。
-オプション有り:ログインし直したのと同様にカレントディレクトリが再設定されます。
その他、環境変数なども再設定されるので、状況に応じて使い分けてください。多くの場合、完全に切り替えて作業をするので、-オプションを付けて実行することになるでしょう。
その他の一般ユーザーになる
suコマンドはユーザーrootに切り替えるだけで無く、その他のユーザーに切り替えることもできます。引数にユーザー名を指定します。パスワードはユーザーrootのものではなく、切り替えるユーザーのパスワードを入力します。
以下、実行例です。
[linuc@localhost ~]$ su - lpijapan
パスワード: ※ユーザーrootのパスワードを入力
su: 認証失敗
[linuc@localhost ~]$ su - lpijapan
パスワード: ※ユーザーlpijapanのパスワードを入力
[lpijapan@localhost ~]$
1回目はユーザーrootのパスワードを入力したので失敗しました。2回目は切り替えるユーザーのパスワードを入力したので正しく切り替わりました。
ユーザーrootは誰にでもなれる
ユーザーrootの状態からsuコマンドを実行すると、パスワード無しでどのユーザーにも切り替えられる特権があります。
以下、実行例です。
[root@localhost ~]# su - lpijapan
[lpijapan@localhost ~]$
パスワード認証が求められず、ユーザーが切り替わっています。rootのパスワードが分かっているのであれば、こちらのパターンで切り替えることになるでしょう。
まとめて作業を行う際にはsuコマンド
suコマンドの基本的な動作を解説しました。
最初に述べた通り、ディストリビューションによってはsuコマンドは使えない(使わない)ようにしてありますが、抜け道はあってsudoコマンドを使ってもユーザーの切り替えは行えます。
インストール直後の初期設定時など、まとめて作業を行いたい場合、いちいちsudoコマンドで実行していられない、という場合、ユーザーrootに切り替えて一気に作業することもあります。要は割り切りと使い分けなので、セキュリティ等を考慮した上で、適切に利用するようにしましょう。
- 筆者紹介
宮原 徹 氏
Linux標準教科書、Linuxサーバー構築標準教科書などの監修者。LinuCレベル1/レベル2 Version10.0の改訂作業にも協力。また、幅広いOSSに関する情報提供の場として「オープンソースカンファレンス(OSC)」の企画運営も。
バックナンバー
第21回:外部からWebサーバーにアクセスする
第20回:Webサーバーを動かす
第19回:Webサーバーをインストールする
第17回:ネットワークの状態確認を理解する
第15回:ファイルのアクセス権を理解する
第14回:パッケージをアップデートする dnf編
第13回:PAMを理解する
第12回:グループとは何かを理解する
第11回:sudoコマンドについて理解する
第10回:suコマンドで特権ユーザーになる
第9回:ユーザー権限を理解する
第8回:SSHによるリモートログイン
第6回:Linuxイストールの実際
第5回:Linuxインストールの準備
第3回:学習環境を用意する
第2回:Linuxをどう学ぶのか
第1回:Linuxを学ぼう