turtlechanのブログ

無知の私がLinuxをいじりながら書いていくブログ

【Linux】sudoを使えるようにする

そういえばOSのインストール直後'sudo'コマンドが使えなかったなぁと思い、'sudo'コマンドを使えるようにするための設定方法をまとめます。

sudoとは

主に一般ユーザーが管理者権限(root)でコマンドを実行したい場合に使われるコマンド。また、'-u'オプションでユーザーを指定すればroot以外のユーザーでコマンドを実行することも可能。

設定ファイル

'sudo'の動作設定は'/etc/sudoers'ファイルに記述されている。

'/etc/sudoers'は直接編集することは意図されていないので、編集する場合は'visudo'コマンドを使用して行う。

基本的な書式は次のような形

turtlechan ALL=(ALL) ALL

意味は

誰が どこで=(誰の権限で) 何を
  • 誰が: 誰をsudo可にするか(ユーザー名かグループ名を指定)
  • どこで: どの機器からsudo可にするか(ホスト名やIPアドレスで指定)
  • 誰の権限で: sudoで切り替えられるユーザーは誰か
  • 何を: sudoで何のコマンドを実行可能にするか

「誰の権限で」の部分が'(ALL:ALL)'ってなんぞ?って感じだけど、多分'(ユーザー:グループ)'って事でしょう。

設定方法

OSインストール直後、一般ユーザーを'sudo'可能にするには次の2通りある。

  • '/etc/sudoers'にユーザーの設定を記述する方法
  • 'sudo'が許可されているグループに所属させる方法

好きな方で設定すればいい。

'/etc/sudoers'にユーザーの設定を記述する方法

前述した'visudo'コマンドで'/etc/sudoers'を編集します。'visudo'で起動するエディタが'vi'の場合と'nano'の場合があるみたい(環境による)。私の環境だと起動するエディタが'vi'じゃなくて'nano'でした。jjjjjj

管理者(root)にログイン(切り替え)します。

~$ su -

'visudo'を起動します。

~# visudo

特にこだわりがなければ記述するのは次のものでいい。

ユーザー名 ALL=(ALL:ALL) ALL

記述する位置はどこでもいいが、次の記述の下辺りが良さげ。

# User privilege specification
root	ALL=(ALL:ALL) ALL

記述が終わったら上書きして閉じて下さい。エラー表示がでなければ設定は終了です。

管理者(root)からログアウトします(忘れずに)。

~# exit

'sudo'が許可されているグループに所属させる方法

'/etc/sudoers'を編集していなくても、始めから'sudo'が許可されているグループがある。ユーザーをそのグループに所属させれば、'sudo'可能になる。

管理者(root)にログイン(切り替え)します。

~$ su -

ユーザーを'sudo'可能なグループに所属させます。Debian系はグループ名='sudo'、RedHat系はグループ名='wheel'です。

~# usermod -aG グループ名 ユーザー名

これで設定は終了です。

管理者(root)からログアウトします(忘れずに)。

~# exit

※現在ログインしているユーザーを'sudo'可能なグループに所属させた場合、一回ログアウトしてログインし直さないと有効になりません。

おわりに

Linuxを初めて使った時、'sudo'使えなくて検索しまくったのはいい思い出。解説してくれてるサイトたくさんあったんだけど当時は'su'とか'root'とか色々書いてあって全然意味わからなかったんですよね。とは言っても、Linux歴短いのでまだまだ分からないことだらけです。このブログ書きながら勉強していきます。

参考にしたサイト

'/etc/sudoers'の記述の仕方が詳しく書いてあるので分かりやすかったです。