Debian11 bullseye SSH接続で実行できないコマンドがある

update-rc.dが実行できない

Debian11 にて、SSH接続しながらターミナル上で設定をしていました。

いつも利用しているコマンドが実行できない事に気づき、bullseyeでは、このコマンドサポートされなくなったのかな?と、おもったら、shutdownも、rebootもできない事に気づき、インストールした本体に直接ディスプレイつけて操作したら、普通にshutdownできる事も。

PATHが通っていない

コマンドは、binフォルダや、sbinフォルダにあるのですが、そこにPATHが通っていない。これが原因でした。

@debian:~$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

sshd_configの設定

そこで、sshd_config にPATHの設定を書きました

#PermitUserEnvironment no

となっているので、

PermitUserEnvironment yes

このように書き換えました。.bashrcが読み込まれるようにしました。

# /etc/init.d/ssh reload
Reloading ssh configuration (via systemctl): ssh.service.

SSHサービスをリロードします。

.bashrcの最終行に追記

export PATH="$PATH:/usr/local/sbin:/usr/sbin:/sbin"

設定を反映させます

source ~/.bashrc

すると、ssh接続してもPATHが通るように

root@debian:~# printenv PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/local/sbin:/usr/sbin:/sbin

もちろん、SSHで接続しなおしてもちゃんとPATHが通るようになりました。