Linux環境設定/バックグラウンドスクリプトから別ユーザ&パスワードなしでコマンド実行
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
#navi(../)
* バックグラウンドで実行するスクリプトから別ユーザの権限...
本資料はsudoについて記述してあります。~
別ユーザ権限でコマンドを実行させたり、パスワードなしで実...
#contents
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)
* sudoの一般的な利用法 [#cfb403a5]
sudoは一般ユーザが一時的にroot権限(またはその他のユーザ...
利用方法はsudoコマンドの引数として実行したいコマンドを入...
以下がsudoコマンドの実行例です。一般ユーザであるuser1がシ...
% sudo shutdown -h now
[sudo] password for user1:
実行するとパスワードの入力を求められますので、(rootのパ...
実行しているユーザの(この場合はuser1の)パスワードを入力...
* パスワードを入力せずにsudoを利用する [#be48b6f1]
設定によってはこのパスワードの入力も不要となります。~
sudoの設定ファイルは/etc/sudoersです。~
設定を変更するには通常のエディタから直接行うのではなく、~
sudoの設定専用コマンド、visudoを実行して、~
この中で起動されるエディタから変更します。~
以下のように変更してください。
- 変更前
# Members of the admin group may gain root privileges
%admin ALL=(ALL) NOPASSWD: ALL
- 変更後
# Members of the admin group may gain root privileges
%admin ALL=(ALL) NOPASSWD: ALL
* スクリプトからのsudoの利用 [#b2ab15c5]
さて、パスワード入力なしのsudoを使ってスクリプトを作成し...
あるデーモンプログラムの中から他のユーザ権限を必要とする...
実行したいコマンドをコマンドラインから実行するのと同様に...
実行に失敗してしまう場合があります。
それはそのスクリプトを端末から直接実行するのではなく、~
cronやat、またデーモンプログラムからの実行のような、~
バックグラウンドからの起動を行う場合です。
その際には以下のようなエラーメッセージが出力されます。
- 日本語環境でのメッセージ
sudo: sudo を実行するには tty がなければいけません。すみ...
- 英語環境でのメッセージ
sudo: sorry, you must have a tty to run sudo
これが失敗するのは、sudoの実行に端末(tty)が必要とされてい...
具体的には/etc/sudoersに以下のような設定がなされています。
Defaults requiretty
これを以下のようにコメントアウトすることで、~
端末からだけでなくバックグラウンドでのsudoの実行が可能に...
#Defaults requiretty
なお、この設定のデフォルト値はOSによって異なります。~
Ubuntu 12.04.2 LTSではrequirettyは設定されていない(設定...
sudoバックグラウンド実行の失敗はありませんが、~
CentOS6.4ではデフォルトで設定されているため、上述の失敗が...
以上、バックグラウンドで実行するスクリプトから別ユーザの...
パスワードなしでsudoを利用する方法でした。
#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)
終了行:
#navi(../)
* バックグラウンドで実行するスクリプトから別ユーザの権限...
本資料はsudoについて記述してあります。~
別ユーザ権限でコマンドを実行させたり、パスワードなしで実...
#contents
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)
* sudoの一般的な利用法 [#cfb403a5]
sudoは一般ユーザが一時的にroot権限(またはその他のユーザ...
利用方法はsudoコマンドの引数として実行したいコマンドを入...
以下がsudoコマンドの実行例です。一般ユーザであるuser1がシ...
% sudo shutdown -h now
[sudo] password for user1:
実行するとパスワードの入力を求められますので、(rootのパ...
実行しているユーザの(この場合はuser1の)パスワードを入力...
* パスワードを入力せずにsudoを利用する [#be48b6f1]
設定によってはこのパスワードの入力も不要となります。~
sudoの設定ファイルは/etc/sudoersです。~
設定を変更するには通常のエディタから直接行うのではなく、~
sudoの設定専用コマンド、visudoを実行して、~
この中で起動されるエディタから変更します。~
以下のように変更してください。
- 変更前
# Members of the admin group may gain root privileges
%admin ALL=(ALL) NOPASSWD: ALL
- 変更後
# Members of the admin group may gain root privileges
%admin ALL=(ALL) NOPASSWD: ALL
* スクリプトからのsudoの利用 [#b2ab15c5]
さて、パスワード入力なしのsudoを使ってスクリプトを作成し...
あるデーモンプログラムの中から他のユーザ権限を必要とする...
実行したいコマンドをコマンドラインから実行するのと同様に...
実行に失敗してしまう場合があります。
それはそのスクリプトを端末から直接実行するのではなく、~
cronやat、またデーモンプログラムからの実行のような、~
バックグラウンドからの起動を行う場合です。
その際には以下のようなエラーメッセージが出力されます。
- 日本語環境でのメッセージ
sudo: sudo を実行するには tty がなければいけません。すみ...
- 英語環境でのメッセージ
sudo: sorry, you must have a tty to run sudo
これが失敗するのは、sudoの実行に端末(tty)が必要とされてい...
具体的には/etc/sudoersに以下のような設定がなされています。
Defaults requiretty
これを以下のようにコメントアウトすることで、~
端末からだけでなくバックグラウンドでのsudoの実行が可能に...
#Defaults requiretty
なお、この設定のデフォルト値はOSによって異なります。~
Ubuntu 12.04.2 LTSではrequirettyは設定されていない(設定...
sudoバックグラウンド実行の失敗はありませんが、~
CentOS6.4ではデフォルトで設定されているため、上述の失敗が...
以上、バックグラウンドで実行するスクリプトから別ユーザの...
パスワードなしでsudoを利用する方法でした。
#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)
ページ名: