スポンサーリンク

セキュリティのためsudoコマンドを利用して、オペレーションを
することがあると思います。このときにsudoersで実行可能な
コマンドを限定することで、さらに安全になります。

そこで、出てくるのが、 sudo vi や sudo less がしたいとか
言われたりします。

sudo viを許可するとどうなりますか?
viコマンドは、外部コマンドを実行することができるため、
sudo viで起動したroot権限を持つviは、root権限でコマンドを
実行することができます。viからコマンドが起動されるため、
sudoコマンドの設定の影響を受けません。
ようするに、何もかも許しているのとなんら変わりません。

lessも同様にコマンドを実行することができます。
sudo less file で実行したlessコマンドからcshを起動すれば、
root権限のシェルが起動されます。

このような任意の外部コマンドを起動できるエディタやページャを
sudoersで許可するのは、セキュリティ上好ましいとは言えません。

ソリューション

それでは、どのようにsudo viやsudo lessに対応したらいいでしょうか。

sudoコマンドには、 sudoedit や sudo -e が用意されています。

-e オプションは、コマンドを実行する代わりに、1つ以上のファイルを
編集するときに使います。コマンドの代わりに、sudoersファイルが参照
するときに、文字列 sudoedit が使われます。
ユーザが sudoers によって許可されるなら、以下の処理をします。
1. テンポラリコピーを呼び出したユーザのオーナのセットで編集するために作成します。
2. VISUAL か EDITOR
環境変数によって指定されたエディタをテンポラリファイルを編集するために実行されます。VISUALとEDITORが設定されていないなら、editor sudoersのプログラムリストが使われます。
3. 変更が完了したら、テンポラリファイルをオリジナルの位置にコピーし、テンポラリファイルは削除されます。

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

設定
環境変数 EDITOR に好きなエディタを設定します。
csh系(csh,tcsh)

setenv EDITOR /usr/local/bin/vim

sh系(sh,bash,zsh)

export EDITOR=/usr/local/bin/vim


使い方

sudo -e /etc/rc.conf


実行例

root   95220  0.0  0.1  1904  1404  p0  T    12:35AM   0:00.01 sudo -e /etc/rc.conf
kaworu 95221  0.0  0.3  5124  3592  p0  T    12:35AM   0:00.09 /usr/local/bin/vim /var/tmp/rc.conf.rYsNylJr
kaworu 95291  0.0  0.1  1700  1016  p0  S+   12:35AM   0:00.00 fgrep --color=auto rc.conf

この例から、rc.confのテンポラリファイルの編集は、rootではなくsudo -eを実行したユーザになっています。


sudo lessを許可しない方法

sudo lessを許可しないためには、catコマンドを使えればよくて、

sudo /bin/cat /path/to/secret | less

ちょっと面倒ですが、としてもいいはずです。

参照しているページ (サイト内): [2014-05-01-1] [2009-05-18-3]

スポンサーリンク
スポンサーリンク
 
いつもシェア、ありがとうございます!


もっと情報を探しませんか?

関連記事

最近の記事

人気のページ

スポンサーリンク
 

過去ログ

2020 : 01 02 03 04 05 06 07 08 09 10 11 12
2019 : 01 02 03 04 05 06 07 08 09 10 11 12
2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12

サイト

Vim入門

C言語入門

C++入門

JavaScript/Node.js入門

Python入門

FreeBSD入門

Ubuntu入門

セキュリティ入門

パソコン自作入門

ブログ

トップ


プライバシーポリシー