例)
# grub-install /dev/sda
bash: grub-install: コマンドが見つかりません
となってしまいsuで/usr/sbinに収納されたプログラムを起動できません。
これはsuコマンドの扱いが変わったためのようで、suを使用すると直前のログインユーザーのPATH設定が引き継がれてしまうため起こるようです。
https://wiki.debian.org/NewInBuster
su
ではなく
su -
としてrootログインすればusr/sbinに収納されたプログラムを起動できました。
他にはusr/sbinにPATHを通す方法もありますが、個人的にはsu - を使ったほうがスマートのように思います。
以下備忘録を兼ねて書き留めておきます。
通っているPATHを確認
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
# echo $PATH
(上記のsuコマンドの仕様変更のため、suとsu -でログインしたのでは結果が異なります)
suでログインした場合
# echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
su - でログインした場合
# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
(su - でログインするとちゃんと/usr/sbinが含まれています)
su - 時に読み込む設定ファイル
/etc/profile
中身を見てみますと
if [ "`id -u`" -eq 0 ]; then
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
と記述がありますので、スーパーユーザーの場合/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/binのPATHが通る設定となっているようです。
suで以前のように動作させる場合
su時に読み込む設定ファイル
/etc/login.defs
に下記を追加することで以前の動作となるようです。
ALWAYS_SET_PATH yes
ユーザーごとにPATHを設定する場合
ユーザーごとの設定ファイル
/home/ユーザー名/.profile
ここに通したいPATHの設定を記述します。
追加設定例
PATH="$PATH:/usr/sbin"
設定反映
$ source /home/ユーザー名/.profile
2020年10月3日土曜日
Debian 10(buster) suで/usr/sbinディレクトリに置かれたコマンドが見つからない
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿