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を確認してみましょう