【Linux】 sudo

  ■ コマンド:sudo

 * 他のユーザーとしてコマンドを実行するコマンド
`オプション `意味 備考
-l そのユーザーに対して許可されたコマンドを表示する  
-u root以外のユーザーで実行するときに指定  
-s root権限で対話式シェルを起動する root権限が必要なコマンドを多く使う場合に、いちいちsudoする必要がなくなり便利

-s の詳細は、以下のサイトを参照のこと
http://d.hatena.ne.jp/horus531/20110123/1295758503

 

  補足

 * /etc/sudoersファイルに記述するユーザーは信頼のあるユーザーを設定する必要がある
   # visudo
 * 実行したコマンドについて、履歴がsyslogログに残る(セキュリティ管理上のメリットがある)
   # tail /var/log/secure

 

  ■ sudoのインストール

debian8
su

aptitude update
aptitude install sudo

 

  ■ sudoに関するあれこれ

  sudoを行う上での設定ファイル編集

1) ターミナルを起動し、以下のコマンドを入力する

visudo

2) 以下のように「[ユーザ名]  ALL=(ALL) ALL」(例ユーザ名「user1」)編集する
~~~
# User privilege specification
root    ALL=(ALL) ALL
user1   ALL=(ALL) ALL
~~~

3) 編集した後、Ctrlキーを押しながらxキー押下
   => 変更を保存するかどうか聞いてくるのでyキー押下
   => 「File Name to Write: /etc/sudoers.tmp」というような表記が出るので、
      Enterキーを押下し、書き込み完了

4) sudoコマンドを付加したコマンドを入力し、エラーが出ないこと確認する

sudo ls -l

 

  sudoでノーパスワードで行うには...

1) ターミナルを起動し、以下のコマンドを入力する

visudo

2) 以下のように「[ユーザ名]  ALL=(ALL) ALL    NOPASSWD: ALL」(例ユーザ名「user1」)編集する
~~~
# User privilege specification
user1   ALL=(ALL) ALL    NOPASSWD: ALL
~~~

3) 編集した後、Ctrlキーを押しながらxキー押下
   => 変更を保存するかどうか聞いてくるのでyキー押下
   => 「File Name to Write: /etc/sudoers.tmp」というような表記が出るので、
      Enterキーを押下し、書き込み完了

4) sudoコマンドを付加したコマンドを入力し、エラーが出ないこと確認する

sudo ls -l
補足 : wheelグループに属しているユーザの場合
%wheel        ALL=(ALL)       NOPASSWD: ALL
http://qiita.com/pugiemonn/items/baaf7243ded2e6ab94f9

 

  特定のコマンドのみをroot権限で実行する

sudo -u 【ユーザー名】 【実行するコマンド】

 

  ユーザにsudo実行可能にする

1) ターミナルを起動し、以下のコマンドを入力する

su
adduser [自分のユーザー] sudo

 

  シェルを実行

shコマンドを実行する
sudo sh ./sample.sh

 

 

  関連記事

  Root 権限 に関わるコマンド

http://blogs.yahoo.co.jp/dk521123/36179672.html