5.10. sudoによる管理者権限の付与 -sudoコマンド-


5.10. sudoによる管理者権限の付与 -sudoコマンド-

【コマンド説明】
suコマンドによって一度root権限を取得してしまうと、そのユーザはrootユーザが実行できることは何でもできてしまいます。もし、特定の管理者コマンドのみの実行を許可したい場合には、sudoコマンドを利用します。sudoコマンドを使えば、任意の管理者コマンドを任意のユーザに許可することができます。例えば、「exampleユーザにはshutdownコマンドの実行を許可する」などです。一般ユーザにrootパスワードを知らせる必要がない点も、sudoコマンドのメリットです。

【動画説明】
sudoコマンドの利用設定をするには、rootユーザでvisudoコマンドを実行します。すると、デフォルトのエディタで/etc/sudoersファイルが開かれます。/etc/sudoersの書式は次のとおりです。

ユーザ名  ホスト名=(実行ユーザ)  NOPASSWD: コマンド
例:user1    ALL=(ALL)       ALL → user1 に全てのroot 権限を与える

項目 説明
ユーザ名 コマンドの実行を許可するユーザ名か、グループ名、もしくはALL
ホスト名 実行を許可するホスト名か、IPアドレス、もしくはALL
実行ユーザ コマンド実行時のユーザ(省略時はroot)、もしくはALL
コマンド 実行を許可するコマンドのパス
NOPASSWD: 指定すると、コマンド実行時にパスワードを問われない

例えば、user1ユーザに対し、全てのroot権限が必要なコマンドが実行できるように設定するには、次のような記述を追加します。

# visudo


〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

## Allow root to run any commands anywhere

user1  ALL=(ALL)  ALL

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

設定終了後、実際にsudoを利用するには、sudoの引数として、実行したいコマンドを指定します。例えば、user1ユーザに全てのroot権限が必要なコマンドが実行できるようにするには、次のコマンドを実行します。

$ sudo su -

この際の注意点として、2点が挙げられます。まず、パスワードを尋ねられますが、入力するパスワードはrootユーザのパスワードではなく、sudoコマンドを実行しているユーザのパスワードである点に注意して下さい。そしてsuコマンドの引数に“-”を指定する点です、“-”がないと現在の環境をそのままにしてユーザだけを切り替えます

“-”があると、直接ログインした時と同様に環境が初期化されます。つまり、カレントディレクトリは新しいユーザのホームディレクトリとなり、環境変数も全て初期化されます。

【問題】
1. 「sudo su」コマンドを使ってrootになり、PATHを確認してみましょう
2. 「sudo su -」コマンドを使ってrootになり、PATHを確認してみましょう

資料をダウンロード