📢 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>