루트 기본 쉘에 su할 수 없습니다 - Debian

루트 기본 쉘에 su할 수 없습니다 - 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다른 이유는 모르겠어서 정보를 포함합니다 . 아직 모든 것이 사라지지 않았으면 좋겠고 누군가 내가 통제력을 되찾도록 도와줄 수 있습니다.

추신: 루트와 유사한 다른 사용자가 없으므로 "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 ~#

작동하지 않습니다.

관련 정보