クラウド仮想マシンにUbuntu 22.04を新規インストールするには、SSH経由でアクセスできます。私のパスワード入力は
fish:x:1001:100::/home/fish:/bin/bash
および /etc/group には以下が含まれます。
users:x:100:
sudo:x:27:gsluser,fish
ログインすると、sh
代わりにグループに追加する必要があると言っても、bash
自動的にグループに追加されません。と入力すると、次の両方を取得します。sudo
groups
newgrp
sudo
$ groups
users
$ groups fish
fish @ users sudo
newgrp sudo
$ groups
sudo users
$
さまざまな設定ファイルとbashrcファイルに奇妙な点が見つからず、インストール後にsshd.confが変更されませんでした。誰でもこの動作を説明できますか?
答え1
質問の説明に示すように、既存の共有SSH接続を介してリモートシステムに接続するためにSSH接続共有を使用しています。
SSHを使用して共有に接続する場合(ドキュメントを参照)-M
そして-S
コマンドラインオプションは次のとおりです。ssh(1)
手動、および説明ControlMaster
そしてControlPath
および関連する構成オプションssh_config(5)
手動)リモートシェルは単一のリモートセッションで作成されます。セカンダリグループと他の属性は、この単一のリモートセッションが作成されたときに設定され、同じ共有SSH接続を介して追加の接続が確立されるたびにそのまま残り、複製されます。
これがすぐにログアウトしてから再度ログインしたときに新しいセカンダリグループ(およびログインシェル)が適用されない理由です。
解決策は、共有SSH接続を使用せずに接続することです。
ssh -S none remotehost
...または接続を強制的に終了する
ssh -O exit remotehost
...その後、リモートホストへの新しい接続を確立します。