📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
ページの作成:「== 概要 == sudoコマンド (substitute user do または superuser do) とは、一時的に管理者権限 (root権限) でコマンドを実行するための重要なツールである。<br> 基本的な使用方法は、実行するコマンドの前にsudoを付加する。<br> <br> # 使用例 sudo zypepr update <br> sudoコマンドを実行する場合、パスワードの入力が求められる。<br> これは、セキュリティのため、sudo…」 |
|||
| 56行目: | 56行目: | ||
<u>タイムアウト時間を長く設定する場合、セキュリティリスクが高まる可能性がある。</u><br> | <u>タイムアウト時間を長く設定する場合、セキュリティリスクが高まる可能性がある。</u><br> | ||
<u>システムのセキュリティポリシーに従って適切な値を設定することを推奨する。</u><br> | <u>システムのセキュリティポリシーに従って適切な値を設定することを推奨する。</u><br> | ||
<br><br> | |||
== パスワードレス実行 == | |||
==== sudoers設定ファイル ==== | |||
sudoers設定ファイルを編集して、パスワード入力を省略することができる。<br> | |||
sudo visudo | |||
<br> | |||
# 全てのユーザに対応する場合 | |||
ALL=(ALL) NOPASSWD: <コマンド 例: /usr/bin/zypper update> | |||
# 特定のユーザにのみ適用する場合 | |||
<ユーザ名> ALL=(ALL) NOPASSWD: <コマンド 例: /usr/bin/zypper update> | |||
<br> | |||
==== タイムスタンプの更新 ==== | |||
sudo -vコマンドによるタイムスタンプの更新を使用することができる。<br> | |||
<br> | |||
<syntaxhighlight lang="sh"> | |||
# スクリプトの最初で認証を済ませる | |||
sudo -v | |||
# 以降のsudoコマンドは一定時間パスワード不要 | |||
sudo zypper update | |||
sudo zypper install <パッケージ名> | |||
</syntaxhighlight> | |||
<br> | |||
==== 環境変数SUDO_ASKPASSの使用 ==== | |||
環境変数SUDO_ASKPASSを使用して、パスワードを提供するスクリプトを作成する。<br> | |||
<br> | |||
<syntaxhighlight lang="sh"> | |||
# パスワードを提供するシェルスクリプトファイル (例: /path/to/pw-script.shファイル) | |||
#!/bin/bash | |||
echo "<パスワード>" | |||
</syntaxhighlight> | |||
<br> | |||
スクリプトのパーミッションを制限して、セキュリティ対策を行う。<br> | |||
chmod 700 /path/to/pw-script.sh | |||
<br> | |||
環境変数を設定して、パスワード認証が必要なコマンドを実行する。<br> | |||
export SUDO_ASKPASS=/path/to/pw-script.sh | |||
sudo -A zypper update | |||
<br> | |||
パスワードをスクリプトに直接記述する必要がある場合は、以下に示すようなセキュリティ対策を行う必要がある。<br> | |||
* スクリプトのパーミッションを制限する。 (例: グループおよびその他ユーザは読み書き実行は不可とする) | |||
* パスワードを環境変数として外部から注入する。 | |||
* 暗号化されたファイルからパスワードを読み込む。 | |||
* セキュアなパスワード管理システムを使用する。 | |||
<br> | |||
==== sudo -Sコマンドの使用 (非推奨) ==== | |||
この方法は、セキュリティの観点から本番環境での使用は推奨されない。 | |||
パスワードがシェルの履歴に残る、あるいは、プレーンテキストでスクリプトに保存される危険性がある。<br> | |||
<br> | |||
そのため、テスト環境や開発環境での自動化スクリプト等で使用する。<br> | |||
<br> | |||
echo "<パスワード>" | sudo -S <コマンド> | |||
# 例: | |||
echo "hoge" | sudo -S zypper update | |||
<br> | |||
-Sオプションの詳細を以下に示す。<br> | |||
* -Sオプションは、標準入力からパスワードを読み取ることを指示する。 | |||
* パイプ (|) の左側で出力したパスワードを、右側のsudoコマンドに渡す。 | |||
<br><br> | <br><br> | ||