sudoedit

提供: セキュリティ
2014年3月1日 (土) 20:34時点におけるDaemon (トーク | 投稿記録)による版

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索
スポンサーリンク

sudoedit とは、sudo -e file と同じ意味ですが、別のユーザとしてファイルを編集するコマンドです。sudo vi / sudo less を禁止できます。

読み方

sudoedit
すーどぅ えでぃっと

概要

sudoで編集用のコマンドを許す代わりに、sudoedit(sudo -e)を使用するほうが安全です。また、利便性的にも便利です。

  • ユーザーの権限を管理できる
  • ユーザーの設定ファイルを利用できる

vi などのコマンドを不要にユーザーに許してしまうと(NOEXECを指定していないとか)、エディタからシェルの許してしまうといった現象が発生します。

rootユーザーとして編集コマンドを起動する場合、エディタは、rootユーザーの設定ファイルを読み込みます。rootユーザーの設定ファイルは、普段使用しているユーザーのように設定を育てていないこともあり、不自由を強いられます。

sudoeditを使用すれば、sudo vi, sudo less などのコマンドを許可する必要はありません。

インストール

sudoeditは、sudoのパッケージに含まれます。

設定

sudo visudo

以下の例は、ユーザ foo に /etc/rc.conf の編集のみ許可します。

foo ALL=(root) sudoedit /etc/rc.conf

環境変

EDITOR, VISUAL

sudoeditの動作

  1. テンポラリコピーを「呼び出したユーザ」のオーナの権限のファイルを作成します。
  2. テンポラリファイルを編集するために、sudoeditを実行したユーザの権限でVISUAL, EDITOR 環境変数に指定されたエディタを起動します。
  3. 編集が終了したら(エディタが終了したら)、テンポラリファイルをオリジナルのファイルに上書きし、テンポラリファイルは削除されます。

また、指定されたファイルが存在しなければ、作成します。

使い方

コマンドラインオプション

sudoedit - 別のユーザーとしてファイルを編集します
 
usage: sudoedit [-AknS] [-C num] [-c class] [-g group] [-h host] [-p prompt] [-u user] file ...
 
オプション:
  -A, --askpass               use a helper program for password prompting
  -b, --background            run command in the background
  -C, --close-from=num        close all file descriptors >= num
  -c, --login-class=class     run command with the specified BSD login class
  -E, --preserve-env          preserve user environment when running command
  -e, --edit                  edit files instead of running a command
  -g, --group=group           run command as the specified group name or ID
  -H, --set-home              set HOME variable to target user's home dir
  -h, --help                  display help message and exit
  -h, --host=host             run command on host (if supported by plugin)
  -i, --login                 run login shell as the target user; a command may also be specified
  -K, --remove-timestamp      remove timestamp file completely
  -k, --reset-timestamp       invalidate timestamp file
  -l, --list                  list user's privileges or check a specific command; use twice for longer format
  -n, --non-interactive       non-interactive mode, no prompts are used
  -P, --preserve-groups       preserve group vector instead of setting to target's
  -p, --prompt=prompt         use the specified password prompt
  -S, --stdin                 read password from standard input
  -s, --shell                 run shell as the target user; a command may also be specified
  -U, --other-user=user       in list mode, display privileges for user
  -u, --user=user             run command (or edit file) as specified user name or ID
  -V, --version               display version information and exit
  -v, --validate              update user's timestamp without running a command
  --                          stop processing command line arguments

コマンドラインオプション

sudoedit /etc/rc.conf

上記のコマンドは、下記のコマンドと等価です。

sudo -e /etc/rc.conf

関連項目




スポンサーリンク