sudoコマンドの使い方

Linuxには、指定したユーザでコマンドを実行するsudoコマンドがあります。Ubuntuでは、rootユーザにスイッチできないので、rootで作業するために、このコマンドを使用します。このsudoコマンドの使用方法や、動作の設定方法などをまとめました。

設定ファイルについて

sudoコマンドの挙動については、「/etc/sudoers」というファイルに記載されています。エディターで直接編集するのではなく編集用のコマンド「visudo」を使用して編集します。

設定ファイルのフォーマット

フォーマットは、「who where = (as_whom) what」このようになります。各項目について順に説明します。

user host01 = (user:group) command

who(誰が)の設定

sudoコマンドを実行するユーザを設定します。複数のユーザを設定する場合は、「,」(カンマ)を使って列挙します。ユーザは、ユーザ名、ユーザID(接頭語「#」)、グループ名(接頭語「%」)、グループID(接頭語「%#」)を設定できます。

設定例
user01,#1000,%group01,%#1000

where(どこで)の設定

sudoコマンドを実行するホストを設定します。複数のホストを設定する場合は、「,」(カンマ)を使って列挙します。ホストは、ホスト名、IPアドレス、ネットワークアドレス、ネットグループ名(接頭語「+」)を設定できます。

設定例
hostname01,192.168.0.1,192.168.0.250(/24),192.168.0.250(255.255.255.0),+netgroup01

as_whom(誰になり変わって)の設定

sudoコマンドを実行するユーザがどのユーザとして実行するかを設定します。ユーザ「:」(コロン)グループのフォーマットで設定します。ユーザ及びグループは「,」(カンマ)で複数指定できます。sudoコマンド実行時にオプション「-u」でユーザをオプション「-g」でグループを指定して実行することになります。ユーザだけまたはグループだけの設定も可能です。その場合は「-u」「-g」オプションをそれぞれ使用します。

設定例
(user01,user02)
(user01,user02:group01,group02)
(:group01,group02)

なにも指定しない場合にはrootユーザで実行することになります。この場合には、グループを指定することはできません。

what(何を)の設定

sudoコマンドで実行可能なコマンドを設定します。コマンド名の絶対パス、ディレクトリの絶対パス(「/」で終わる)を設定できます。複数のコマンドを設定する場合、「,」(カンマ)を使って列挙します。

/usr/bin/ssh,/usr/local/bin/

コマンド名を設定した場合、引数も設定可能ですが、引数を設定しない場合はsudoコマンド実行時に自由に引数を使用することができます。また、引数の使用を禁止した場合は、引数に「””」を設定すればよいです。

ディレクトリを設定した場合、ディレクトリ内のすべてのコマンドを実行できることになります。ただし、サブディレクトリのコマンドは実行できません。

設定例

ユーザ(user01)がすべてのホスト上でrootになってrbootコマンドを実行する。

user01 ALL = (root) /sbin/reboot

sudoコマンドはオプション「-u」をつけない場合デフォルトでrootユーザになるため実行は次のようになります。

sudo /sbin/reboot

apacheユーザかwwwユーザでコマンドを実行する場合。

user01 ALL = (apache,www) command

apacheユーザで実行する時は次のように実行します。

sudo -u apache command

パスワードなしでコマンドを実行する

特定のコマンドを実行するときにパスワードの入力を省略することができる。

user01 ALL = NOPASSWD: command

この設定の場合、commandコマンドについては、パスワードなしでrootユーザとして実行できます。

sudoコマンドの動作設定

sudo実行時に入力するパスワード、パスワード入力のリトライ回数、パスワード入力を即すプロンプトの内容、パスワードを記憶している時間(タイムアウ)などを変更できます。

入力するパスワードの変更

デフォルトで入力するパスワードは、ユーザ自身のパスワードを使用するのですが、rootユーザのパスワードを使用する事もできます。

Defaults rootpw

特定のユーザに対しrootユーザのパスワードを使用する場合は、次のようになります。

Defaults:user001 runaspw

パスワードのリトライ回数の変更

パスワードのリトライ回数のデフォルト値は、3回ですが、設定を2回に変更するには、次のようにします。

Defaults passwd_tries=2

パスワード入力時のプロンプトの変更

sudo実行時に、パスワードを聞かれるのですが、その時表示されるプロンプトを編集し、「ユーザ@ホスト Password: 」とするには、次のようにします。

Defaults passprompt = "%u@%h Password: "

パスワードの記憶時間の変更

パスワードを記憶している時間を設定するには、次のようにします。(タイムアウトを10分に設定。)

Defaults timestamp_timeout=10

シャットダウンするまで有効する場合には、「-1」を常に入力させる場合には、「0」を設定します。

スポンサーリンク







シェアする

  • このエントリーをはてなブックマークに追加

フォローする