Unixコマンド/sudo

sudo

機能

sudo は一般ユーザに特定のコマンドを実行されるためのものである。
一般ユーザ権限では普通実行できないコマンドを、あるユーザだけには許可したいが、root 権限を与えたくはない場合に使う。
また、誰がどういうコマンドを実行したかは /var/log/messagesに記録される。 sudo の設定ファイルは FreeBSD では /usr/local/etc/sudoers このファイルを直接編集してはいけない。
visudo というファイル編集用のコマンドを使う。
FreeBSDでは標準でインストールされていないので、始めにインストールする必要がある。

インストール・設定 ⇒ こちら

構文

sudo [オプション] [コマンド]

オプション

-V             バージョン番号を表示して終了する。
               root であった場合,sudo をコンパイルした時のデフォルト値のリストと、
               マシンのローカルネットワークアドレスを表示する。
-l             そのユーザ対して現在のホスト上で許可された(禁止された)コマンドがリストされる。
-h             使用法のメッセージを表示
-v             ユーザのタイムスタンプを更新する。
-b             コマンドをバックグラウンドで実行する。
-u             root 以外のユーザとして指定したコマンドを実行する。
               username でなく uid を指定する場合は、#uid を使う
-s             環境変数 SHELL が設定されている場合は、そのシェルを実行する。
               さもなければ、/etc/passwdで指定されているシェルを実行する。
-H             環境変数 HOMEが/etc/passwdで指定された
               対象ユーザ (デフォルトでは root) のホームディレクトリに設定される。
               デフォルトでは、sudo は HOMEを変更しない。
-P             sudo はユーザのグループリストを変更しない。
               デフォルトでは、sudo はグループリストを対象ユーザが所属する
               グループのリストで初期化する。

コマンド例

※/usr/local/etc/sudoersに設定されている事を仮定しています。
インストール・設定 ⇒ こちら

▼ファイル index.html をユーザ www として編集する。

$ sudo -u www vi ~/www/htdocs/index.html

▼マシンをリブートする。

$ sudo reboot

▼home パーティションにあるディレクトリのディスク使用量リストを作成する。

$ sudo sh -c "cd /home ; du -s * | sort -rn > USAGE"