루트 비밀번호를 어떻게 변경할 수 있습니까?


답변:


63

가장 방해가되지 않는 것부터 가장 방해가되는 것까지 제가 생각할 수있는 몇 가지 방법이 있습니다.

재부팅하지 않고

sudo :를sudo 사용하여 실행할 권한이 있으면 다음 을 수행 passwd할 수 있습니다.

sudo passwd root

입력 하여 암호를 두 번 누른 다음 루트에 대한 새 암호를 입력합니다. 끝난.

파일 편집 : 이것은 모든 경우에 sudo액세스 할 없지만 편집 할 는 없습니다 /etc/{passwd,shadow}. 또는 /etc/shadow로을 엽니 다 . 루트 비밀번호 필드 (두 번째 콜론과 세 번째 콜론 사이의 모든 임의 문자 )를 사용자의 비밀번호 필드로 바꾸십시오. 저장하기. 로컬의 비밀번호는 귀하와 동일합니다. 로그인하고 비밀번호를 다른 것으로 변경하십시오.sudoedit /etc/shadowsudo $EDITOR /etc/shadow:

이것들은 쉬운 것입니다.

재부팅 필요

단일 사용자 모드 : 이것은 Renan에 의해 방금 설명되었습니다. GRUB (또는 부트 로더)에 가면 Linux 명령 줄을 편집 할 수있을 때 작동합니다. 데비안, 우분투 및 다른 것들을 사용하면 작동하지 않습니다. 일부 부트 로더 구성에는 암호가 필요하므로 계속 진행하려면 암호를 알아야합니다. 더 이상 고민하지 않고 :

  1. 재부팅하십시오.
  2. 부팅시 암호를 입력하십시오 (있는 경우).
  3. 부트 로더 메뉴로 들어갑니다.
  4. 단일 사용자 모드를 사용할 수있는 경우 (데비안에서는이를 '복구 모드'라고 함)를 선택하십시오.
  5. 그렇지 않은 경우 GRUB을 실행합니다.
    1. 일반 부팅 옵션을 강조 표시하십시오.
    2. e편집 모드로 들어가려면 누릅니다 . 여기에 GRUB 비밀번호를 묻는 메시지가 표시 될 수 있습니다.
    3. kernel또는로 시작하는 줄을 강조 표시하십시오 linux.
    4. 를 누릅니다 e.
    5. 끝에 '단일'이라는 단어를 추가하십시오. (공백을 추가하는 것을 잊지 마십시오!)
    6. Enter편집 된 스탠자를 누르고 부팅하십시오. 일부 GRUB은 Ctrl-를 사용 X하고 일부는 사용 b합니다. 화면 하단에 표시됩니다.

단일 사용자 모드에서 시스템이 부팅됩니다. 일부 배포판에서는이 시점에서 루트 암호를 요구하지 않습니다 (데비안 및 데비안 기반 암호). 당신은 지금 뿌리입니다. 비밀번호 변경 :

mount / -o remount,rw
passwd # Enter your new password twice at the prompts
mount / -o remount,ro
sync # some people sync multiple times. Do what pleases you.
reboot

reboot, 또는 정상적인 런레벨을 알고 있다면 telinit 2(또는 무엇이든지) 말하십시오.

대체init : 단일 사용자 모드 트릭과 표면적으로 유사하지만 대체로 동일한 지침이 있지만 명령 행에는 훨씬 더 많은 지식이 필요합니다. 위와 같이 커널을 부팅하지만 대신에 single를 추가하십시오 init=/bin/sh. 이것은 /bin/sh대신에 실행 되며 거의 편의 시설이없는 매우 빠른 쉘을 init제공합니다 . 이 시점에서 목표는 다음과 같습니다.

  1. 루트 볼륨을 마운트하십시오.
  2. passwd도망 치세요
  3. passwd명령으로 비밀번호를 변경하십시오 .

특정 설정에 따라 사소한 (단일 사용자 모드의 지침과 동일) 또는 매우 사소한 것일 수 있습니다. 모듈로드, 소프트웨어 RAID 초기화, 암호화 된 볼륨 열기, LVM 시작 등. 가 없으면 init, 당신은 dæmons 또는 다른 프로세스를 실행 하지 않고 /bin/sh그 하위 프로세스를 실행 하므로 문자 그대로 꽤 있습니다. 작업 제어 기능도 없으므로 입력 내용에주의하십시오. 잘못 배치 cat되어 빠져 나오지 않으면 재부팅해야 할 수도 있습니다.

Rescue Disk : 이것은 쉽습니다. 선택한 복구 디스크를 부팅하십시오. 루트 파일 시스템을 마운트하십시오. 프로세스는 볼륨이 계층화되는 방식에 따라 다르지만 결국 다음과 같이 요약됩니다.

 # do some stuff to make your root volume available.
 # The rescue disk may, or may not do it automatically.
 mkdir /tmp/my-root
 mount /dev/$SOME_ROOT_DEV /tmp/my-root
 $EDITOR /tmp/my-root/etc/shadow
 # Follow the `/etc/shadow` editing instructions near the top
 cd /
 umount /tmp/my-root
 reboot

물론, $SOME_ROOT_DEV블록 장치 이름이 복구 디스크에서 루트 파일 시스템에 할당하고 무엇이다 $EDITOR(해야 할 수 있습니다 좋아하는 편집기입니다 vi구조 시스템). 애프터 reboot정상적으로 부트 할 수 있도록; root의 비밀번호는 자신의 사용자 비밀번호입니다. 루트로 로그인하여 즉시 변경하십시오.

다른 방법들

분명히, 위와 같은 수많은 변형이 있습니다. 그들은 모두 두 단계로 요약됩니다.

  1. 컴퓨터에 대한 루트 액세스 권한 확보
  2. 어떻게 든 루트의 암호를 변경하십시오.

어쨌든 이것을 원격으로합니까? SSH가 종료되었다고 가정합니다.
CMCDragonkai

1
SSH를 사용하지 않으면 (또는 rsh 또는 telnet과 같이 비보안 적으로 안전하지 않은 다른 방법을 가정) 컴퓨터에 원격으로 액세스 할 수 없으므로 암호를 변경할 수 없습니다. 물론 대상 컴퓨터에 원격으로 악용 될 수있는 알려진 문제가 없으면 어떻게 든 셸을 생성 할 수 있습니다. 그 생각은 텔넷 데몬보다 더 무섭습니다. :)
Alexios

문제를 해결하기 위해 물리적으로 텔레포트해야합니까?
CMCDragonkai

WRT "어떻게 든 변경 루트의 암호는"여기를 참조 : unix.stackexchange.com/a/168422/25985은
금발 미녀

7

이것은 거의 모든 배포판에서 작동해야한다고 생각합니다.

다른 시스템, 예를 들어 라이브 CD에서 루트 파티션에 액세스 할 수 있다면 루트에서 편집 할 수 있습니다 /etc/shadow. 먼저해야합니다 chmod u+w shadow. 에 대한 항목을 찾으십시오. root아마도 첫 번째 항목 이며 다음과 같이 보입니다.

root:$6$asdG0[..etc...]ae/:15666:0:99999:7:::

처음 두 콜론 사이의 모든 것을 지우면 다음과 같이 끝납니다.

root::15666:0:99999:7:::

그런 다음 chmod u-w shadow. 이제 시스템을 재부팅하면 루트에 비밀번호가 없습니다. 당신은 단지 root로그인 프롬프트에서 입력 할 수 있으며 요청하지 않습니다. 그런 다음을 사용 passwd하여 설정할 수 있습니다 .

추가로주의를 기울이려면 :

  • /etc/shadow먼저 백업 사본을 작성하십시오 .
  • 새 비밀번호를 설정할 때까지 루트 이외의 사람으로 로그인하지 마십시오. 이것은 중요하지 않지만 권한이없는 맬웨어가 일종의 우박 메리 패스를 만드는 이론적 가능성을 막습니다 ( "이봐, 아마도 루트 암호가 없습니다 ..."). 멀리 가져온 IMO입니다.

그것은 효과가 있지만, 소년은 나를 루트 계정에서 암호를 제거해야합니다. 우분투가 당신을 런레벨 1의 루트 쉘에 넣지 않습니까? 아니면 passwd라이브 CD의 chroot 환경에서 실행하는 것이 더 좋지 않을까요?
SailorCire

다른 방법을 먼저 사용해도 안전하다고 생각되면 계속 진행하십시오. 그러나 루트 암호없이 시스템을 떠나지 않는 한 이것은 괜찮습니다. 부팅시 실행중인 경우 이미 루트 권한을 가지고 있기 때문에이를 악용하려는 맬웨어에는 문제가 없습니다. 따라서 다른 사람으로 먼저 로그인하지 마십시오. 콘솔로 전환 할 수 없다면 디스플레이 관리자를 통해 루트를 허용하지 않는 시스템에서 문제가 될 수 있습니다. 그럼에도 불구하고 그것은 거의 없을 것 같습니다.
goldilocks

@SailorCire는 ^^^
금발 미녀

악성 코드 가능성에 대해서도 의문의 여지가 있습니다. 그러나 내가 제안한 것에 대한 아이디어는 "지금 작동하기 때문에 나중에 변경하겠습니다"라는 많은 유형의 사고 방식을 금지한다는 것입니다.
SailorCire

/etc/shadow
NullUser

4

태그에서 판단하면 RHEL을 사용하고 있지만이 솔루션은 모든 배포판에서 동일하게 작동합니다.

루트 암호를 잊어 버린 경우 단일 사용자 모드로 부팅하고이 암호를 사용하여 암호를 변경할 수 있습니다. 이 방법은 Red Hat 단계별 가이드에 설명되어 있습니다 .

  1. GRUB 메뉴로 들어가서를 누르십시오 e.
  2. 로 시작하는 줄을 선택하고 다시 kernel누릅니다 e.
  3. 이 줄의 끝에을 입력하십시오 single. 다음 Enter 키를 누릅니다 ENTERb그것에서 OOT.

결국 passwd root암호를 입력 하고 변경할 수있는 프롬프트가 표시 됩니다. 그런 다음 입력 reboot하여 시스템을 재부팅하십시오.


1
부팅 암호가없는 경우에만 작동합니다.
pradeepchhetri

1
그리고 단일 사용자 쉘에 / sbin / sulogin을 사용하지 않는 경우 (루트 비밀번호를 묻는 프롬프트가 표시됨).
James O'Gorman

파일 시스템에 접근 할 수 있다면 /boot/grub/grub.conf부트 로더 암호를 제거하고 /etc/inittab단일 사용자 쉘을 / bin / sh (cc @pradeepchhetri)와 같은 것으로 변경 하기 위해 편집 할 수 있습니다
NullUser
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.