1.10.1基礎
current terminalでユーザーbackupへ切り替え、backupのhome・PATHなどlogin時相当の環境を読み込む。
適切なコマンドはどれか。
× 不正解
su - USERはlogin shellを開始し、HOME・SHELL・USER・LOGNAME・PATHなどを対象user向けに初期化する。
詳細解説
正しい
su - backuplogin shellとしてbackupへ切り替え、環境を初期化する。
hyphen付きのsuがbackupのlogin shellを開始し、対象user向け環境を用意する。
誤り
su backupuserは切り替えるがcurrent環境の一部を維持する非login形式である。
identityは変わるがlogin開始相当のprofileと環境初期化を要求する場面には不足する。
誤り
sudo -l backupsudo policyを一覧する形式で、backupのshellへ切り替えない。
sudo -lの引数はuser shell開始の指定ではなくpolicy参照に使う。
誤り
su --preserve-environment backupcurrent環境を維持するためlogin環境の初期化要件と逆である。
environment保持はcurrent userの変数を残すため、backupのlogin環境へ切り替える目的と反する。
実際に確かめる
一時的な検証環境で実行できる例です。
su --help 2>&1 | grep -E -- '-l|--login' | head -n 1期待される結果
login shellに関するhelp行理解のポイント
- hyphenはlogin shell
- 環境を初期化
- su USERとは異なる
確認時の注意
- 確認環境: util-linux su help / user切替なし
基礎のおさらい
login shell
/etc/profileやuser profileなど、shellと設定に応じたlogin時の初期化を行う。
環境の信頼境界
権限の異なるuserへ切り替える際は、PATH等の不用意な引継ぎを避ける。
問題IDKL-102-1131
確認環境util-linux su help / user切替なし
最終技術確認2026-08-13
誤り・権利侵害を報告