GRUB2 사용자 이름과 비밀번호를 변경하는 방법은 무엇입니까?

GRUB2 사용자 이름과 비밀번호를 변경하는 방법은 무엇입니까?

최근에 공식을 다운로드했습니다.centos/7 Vagrant 클라우드 가상 머신. 키를 사용하여 재부팅하는 동안 GRUB2 메뉴에 액세스하려고 시도하는 동안 e사용자 이름 + 비밀번호를 묻는 메시지가 표시되었습니다.

SS1

이 가상 머신의 공식 페이지 어디에서도 이 참조를 찾을 수 없습니다.이 소식을 알리는 블로그 게시물, 다음 git 저장소에도 없습니다.

어쩌면 어느 시점에서 이것을 수정하여 GRUB2 부팅 메뉴를 보호하는 데 사용한 사용자 이름과 비밀번호를 더 이상 기억하지 못할 수도 있습니다.

두 경우 모두, 이 질문을 더 자세히 살펴보지 않고 GRUB2의 자격 증명을 내가 원하는 대로 간단히 변경하려면 어떻게 해야 합니까?

답변1

Vagrant VM을 시작할 때 일반적으로 루트 액세스 권한이 있으므로 sudo다음과 같이 간단히 로그인하여 루트가 될 수 있습니다.

$ vagrant ssh
$ sudo -Es

루트 액세스 권한을 얻으면 두 가지 방법 중 하나로 자격 증명을 원하는 대로 재설정할 수 있습니다.

RHEL 및 CentOS 7.2+ 및 Fedora

RHEL & CentOS 7.2+ & Fedora부터 grub2-setpassword이 작업을 수행하는 프로세스를 크게 단순화하는 도우미 스크립트/도구가 포함되어 있습니다.

이를 사용하려면 다음을 수행해야 합니다.

$ grub2-setpassword
Enter password:
Confirm password:
$

위의 작업을 완료하면 이 파일에 비밀번호가 자동으로 설정됩니다 /boot/grub2/user.cfg. ::

$ cat /boot/grub2/user.cfg
GRUB2_PASSWORD=grub.pbkdf2.sha512.10000.5A95A11398D5DEAA9B205DCEA37E0FDCC069CF6D0C398E8C9FF2ED1D8DE072DDE1D916F955266C306AAC7CA62E0D29A7C6558F3B29E40008289DBE857B8354CE.DD410AA2E5D6495BA723147046B88B89A585656AF4298F07CBC93E7A4F73713A824AE1F3448F837809B6655861A1BA5F0FB615206470E4228E57F7BCF11442A3

이 파일을 찾아 CentOS 기반 배포판에서 GRUB2가 어떻게 사용되는지 확인할 수 있습니다 /etc/grub.d.

$ grep -l user.cfg /etc/grub.d/*
/etc/grub.d/01_users

이 파일의 내용:

$ cat /etc/grub.d/01_users
#!/bin/sh -e
cat << EOF
if [ -f \${prefix}/user.cfg ]; then
  source \${prefix}/user.cfg
  if [ -n "\${GRUB2_PASSWORD}" ]; then
    set superusers="root"
    export superusers
    password_pbkdf2 root \${GRUB2_PASSWORD}
  fi
fi
EOF

아, 기본 사용자는 "root"가 됩니다. 좋습니다. 가상 머신을 다시 시작하고 우리가 제공한 "root" 자격 증명과 비밀번호를 사용해 보면 됩니다 grub2-setpassword.

SS2

이제 메뉴에 들어갈 수 있습니다:

SS3

우분투 16.04+

스크립트를 제공하지 않는 다른 배포판에서는 grub2-setpassword프로세스가 좀 더 복잡하지만 끔찍하지는 않습니다.

1. 암호화된 비밀번호 생성

비밀번호를 암호화하려면 GRUB2 도구를 사용해야 합니다.

$ grub-mkpasswd-pbkdf2
Enter password:
Reenter password:
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.465B5EE2D2F6A767304EB397D6D97C70BC38653F95AFE58B24F190D5DABB0143920F736C125B91FB9F298AFF3D0F8FBBFB8228D5C8C9DD371ADBB1044CC80BFC.52D87AFD47A5BE2D7B6CF755D26CD5F481557DBCF5E725ABA44BF003A2970D3F775E8657428EDC201D86A3DF07D7A8109AFD5764EA058BE94D840F42ED17C3E2

2. GRUB2 구성에 비밀번호 추가

그런 다음 해당 명령의 출력을 가져와 grub.pbkdf2.sha512.10000.....파일에 복사하여 붙여넣습니다.

$ cat /etc/grub.d/40_custom
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

set superusers="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.465B5EE2D2F6A767304EB397D6D97C70BC38653F95AFE58B24F190D5DABB0143920F736C125B91FB9F298AFF3D0F8FBBFB8228D5C8C9DD371ADBB1044CC80BFC.52D87AFD47A5BE2D7B6CF755D26CD5F481557DBCF5E725ABA44BF003A2970D3F775E8657428EDC201D86A3DF07D7A8109AFD5764EA058BE94D840F42ED17C3E2

노트:사용자 이름을 "root"로 설정했습니다. 원하는 대로 지정할 수 있습니다. 변경할 경우 반드시 두 줄( superusers="root"& password_pbkdf2 root ...)을 변경하세요.

3. GRUB2 재구축grub.cfg

이제 다음을 재생성해야 합니다 grub.cfg.

$ grub-mkconfig -o /boot/grub/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.4.0-130-generic
Found initrd image: /boot/initrd.img-4.4.0-130-generic
done

/etc/grub.d그러면 모든 것이 새로운 것으로 병합됩니다 grub.cfg. 따라서 우리 40_custom섹션은 grub.cfg여기서 시작됩니다.

$ cat /boot/grub/grub.cfg
...
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###
...

이와 관련하여:

$ cat /boot/grub/grub.cfg
...
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

set superusers="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.465B5EE2D2F6A767304EB397D6D97C70BC38653F95AFE58B24F190D5DABB0143920F736C125B91FB9F298AFF3D0F8FBBFB8228D5C8C9DD371ADBB1044CC80BFC.52D87AFD47A5BE2D7B6CF755D26CD5F481557DBCF5E725ABA44BF003A2970D3F775E8657428EDC201D86A3DF07D7A8109AFD5764EA058BE94D840F42ED17C3E2
### END /etc/grub.d/40_custom ###
...

인용하다

관련 정보