root ベースシェルに su できません - Debian

root ベースシェルに su できません - Debian

私はDebian 9サーバーを使用しています。

通常、アイテムは無効になっているため、ssh一般ユーザー(たとえば)を介してuser1アクセスsuして入ります。最近、私はグループにユーザーを作成し、それを制限するgitサーバーを設定し、しばらく遊んで、次のようにグループに追加しました。rootsshrootgitgitgit-shelluser1git

usermod -aG git user1

これはuser1グループのメンバーとしてうまくuser1機能し、git最後にこれをキャンセルしたかったので、次のようにしました。

usermod -G user1 user1

しばらくして、インターネットが切断され、再接続する必要がありました。sshに入ることはできますが、accessをuser1使用するとエラーが発生します。suroot

user1@hostname:~$ su 
Password: 
Cannot execute git: No such file or directory
user1@hostname:~$

git-shell他の理由はわからないので、情報が含まれます。まだすべてが消えていないことを望み、誰かが私がコントロールを取り戻すのを助けることができます。

PS:rootに似た他のユーザーがいないため、「sudoersファイルにないsudoため」動作しません。user1

PPS:VPSログインでパスワードをリセットできますが、rootそれがうまくいくかどうか、さらに状況を悪化させるかどうかはわかりません。

ベストアンサー1

構造モードでのみ解決済み:

  • 「構造モード」で起動 - おそらくほとんどのVPSで利用可能
  • mount適切なドライバ
  • nano /path/to/mounted/drive/etc/passwd
  • ルートエントリを次に変更します。root:x:0:0:root:/root:/bin/bash
  • 回復モードなしで保存、シャットダウン、および再起動

などの様々な方法

user1@hostname: ~$ su -s /bin/sh

または

user1@hostname: ~$ su -s /bin/sh -c /bin/sh

動作しません。同じエラーメッセージで応答しました。

まだ原因は見つかりませんでしたが、@doneal24さんのコメントを参考にシステム制御を取り戻しました。理由がわかったら、詳細を提供します。下記の編集内容をご覧ください。

再現するには:私は(偶然に)ルートシェルを変更する方法を見つけました。 ~によるとこれchsh -s $(command -v git-shell) <user>ProGitでは、git-shellが入力用に有効になっているようです。ただし、gitforを挿入すると<user>ルートシェルが変更されます。

root@hostname ~ # chsh -s $(git init ./project1.git git-shell) git
usage: git init [-q | --quiet] [--bare] [--template=<template-directory>]             [--shared[=<permissions>]] [<directory>]
chsh: Warning: git does not exist
root@hostname ~ #

ProGitの情報は私がEDITに書いたものとよく似ているため、誤解を招く可能性があります。

EDIT1:これが実際にどのように変わるかについては、下記をご覧ください。

root@hostname ~# chsh root -s git
chsh: Warning: git does not exist
root@hostname ~#

項目を次に変更します。

root@hostname~ # cat /etc/passwd | grep root
root:x:0:0:root:/root:git
root@hostname~ #

変ですね、まるで

root@hostname ~# chsh root -s /bin/bash
Password:
chsh: PAM: Authentication failure
root@hostname ~#

動作しません。

おすすめ記事