unixおよびLinux関連
Topへ
iMac G5

目次

ここでは通常Mac OS Xでは使用しない、あるいは使用する必要が無いunix系のコマンドを集めています。Mac OS Xでも使用するコマンドはこちらにあります。

2004/12/31

sudoコマンドを使えるユーザーを登録する。

sudoコマンドは一般ユーザー権限で実行できないコマンドを特定のユーザーだけには許可したいけれども、root 権限を与えたくないような場合に使用します。
sudoを使うにはvisudoコマンドを使って/etc/sudoersという設定ファイルに使用できるユーザーを登録します。

# visudo

ファイルの中に次のように1行だけコメントアウトされていない行があります。

root ALL=(ALL) ALL

これは「root が全てのホスト上で、 全てのユーザーとして全てのコマンドを実行できる」という意味です。
hogeユーザーが全てのホストで root 権限で全てのコマンドを使用可能に設定したい場合、

hoge ALL=ALL

この一行を書き込んで保存するだけです。(ユーザーを指定しなかった場合は、「root 権限で」という意味になります。)保存するときに sudoers は書式が間違っていないか自動的にチェックします。一度 sudo を使うとそれからデフォルトでは5分間はパスワードを要求されることなく、 sudo を使うことができます。

またsudoers に次の1行を加えることで単独にログをとることができます

Defaults logfile=/var/log/sudolog


adminグループ属するユーザーはroot権限で全てのホストで全てのコマンドを実行させたい場合、

%admin ALL = ALL

というようにグループ名の前に%を付けて入力します。


hogeユーザーは全てのホストでパスワードなしで shutdown を実行できる設定にしたい場合、

hoge ALL = NOPASSWD: /sbin/shutdown

と入力します。


hogeユーザーは全てのホストでtakaとして全てのコマンドを実行できる設定にしたい場合、

hoge ALL = (taka) ALL

と入力します。

この場合、ターミナルで以下のようにするとtakaの権限で実行したことになります。

hoge$ sudo -u taka コマンド


hogeユーザーはホストweb以外で全てのコマンドを実行できる設定にしたい場合、

hoge !web = ALL

と入力します。


ちなみにMac OS Xの/etc/sudoersファイルにはデフォルトで

root ALL=(ALL) ALL
%admin ALL=(ALL) ALL

と入力されています。「システム環境設定」で管理者として登録されているユーザーは自動的ににadminグループに登録されるのでsudoコマンドを使ってroot権限でコマンドを実行することができます。