Ubuntu 12.04‎ > ‎

Sudo

ubuntuはrootアカウントがデフォルトで無効になっているので、管理者権限でコマンドを使うときにはsudoを利用することになっています。

sudoの設定を変更する場合は、

$ sudo visudo

とすれば、sudoの設定ファイル/etc/sudoers(実際は/etc/sudoers.tmp)が既定のエディタで開きます。

ここで、ファイルの詳細表示を見ると、

-r--r----- 1 root root  723  2月  1  2012 sudoers
-rw------- 1 root root  723  2月  1  2012 sudoers.tmp

読み取り専用の設定ファイルに対して、読み書き可能な作業ファイルが作られていることがわかります。

以下は設定ファイルの内容です。

# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

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

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

権限付与の書式は、

誰に対して 何処から=(誰の権限で:どのグループの権限で) どのコマンドの実行を許可する

となっています。

例えば、

%sudo ALL=(ALL:ALL) ALL

は、「sudoグループ(グループには%をつける)に所属するユーザーに対して、全てのホストから、全てのユーザー全てのグループの権限で、全てのコマンドの実行を許可する」という意味になります。

ubuntuのインストール時に設定したユーザーは、sudoグループに所属していますので、sudoで管理者権限を取得できる訳です。

$ id 
uid=1000(xxxx) gid=1000(xxxx) groups=1000(xxxx),・・・・,27(sudo),・・・・

様々な設定ができますが、例えば、

%sudo ALL=(ALL:ALL) NOPASSWD:ALL

とすると、sudoを発行する時にパスワードを要求されなくなります。

Default timestamp_timeout=0

とすると、既定で5分間あるパスワードの有効期限がなくなり、sudoを発行する度にパスワードを要求されるようになります。

詳しくは以下を参考にして下さい。

Comments