기록용으로 남깁니다.
virtualbox 에 설치된 우분투 20.04를 한동안 방치하다가 사용해볼 일이 있어서 오랜만에 접근했더니.. sudo 가 안먹습니다. /etc/sudoers 목록에 없다고 합니다.
회사에 자주 켜놓고서 퇴근하고 했더니.. 누군가 장난질을 친건지..
어쨌든 이 안에 있는 데이터들 때문에라도 이 상황을 해결할 필요가 생겼습니다.
이름하여 리눅스 싱글모드!!
예전에는 부팅 미디어로 부팅해서 mount 및 chroot 등으로 작업을 진행했습니다. 뭐 예전에 부트로더 날려먹었을 때 이런 방법을 썼었죠.
하지만 지금은 부트로더도 멀쩡하고 제 계정만 문제가 생겼습니다.
virtualbox 에서 콘솔을 열어서 (Ctrl + Alt + T) reboot 명령을 내리면 root 권한 없이도 시스템이 재부팅됩니다.
문제는 부트로더 화면이 나오지도 않고 또 부팅이 완료되어 버립니다..
virtualbox 에서는 reboot 가 동작하고 시스템이 까만 화면으로 바뀔 때 shift 키를 누르고 있어야 합니다.
그러면 반가운(?) grub 화면이 나옵니다. 저는 뭐 덕지덕지 설치된 커널이 없어서인지(방치되어 있어서..) ubuntu 하나와 debug 하나와 메모리 테스트 하나 정도만 있습니다.
ubuntu (또는 원하는 커널 버전)에 커서를 둔 상태에서 E 키를 한 번 누르면 해당 레이블의 부트 스크립트(?)가 나옵니다.
여기에서 linux 란 키워드가 맨 처음에 있고 /boot/어쩌구저쩌구라고 되어 있는 줄로 이동합니다.
이 줄의 맨 끝에 init=/bin/bash 라고 타이핑 한 다음에 부팅 키(Ctrl+X 키나 F10 키)를 누르면 입력한 내용으로 부팅됩니다.
부팅이 성공적으로 완료되면 root@(none):/# 과 같은 프롬프트가 나옵니다. 여기까지 성공을 했기 때문에 실패한 경우에 어떤 메시지가 나오는지는 모르겠습니다..
이 상황에서 보통 grub 을 손대든지 passwd 명령으로 root 비번을 바꾸든지 하는 등의 작업을 할텐데 저는 user 계정을 sudoers 파일에 등록만 하려고 하기 때문에 이런 명령은 손대지 않습니다.
일단 / 를 쓰기가 가능하도록 다시 마운트 합니다.
mount -o remount,rw /
group 파일을 엽니다.
vim /etc/group
sudoers 키워드를 찾아 줄 마지막인 : 끝에 user (자기 로그인 id)를 추가해줍니다. 기존에 다른 값이 있다면 쉼표와 함께 추가해주면 됩니다.
:old_user,user
ZZ 키를 눌러 저장해서 나가고 재부팅해주면 됩니다.
exec /sbin/init
부팅이 완료되면 터미널을 열어서 sudo 명령이 제대로 실행되는지 확인해봅니다.
sudo ls
저는 잘 됩니다 :)
'IT > virtualbox' 카테고리의 다른 글
[virtualbox] NAT 호스트와 가상머신간의 scp 파일 복사하기 (5) | 2021.09.09 |
---|---|
[util][virtualbox] usb 드라이브로 부팅하기 (0) | 2019.12.26 |
[VirtualBox] 이미지 옮길 때 발생하는 UUID already exists 문제 (0) | 2016.01.05 |
VirtualBox에서 USB 부팅해보기 (0) | 2014.11.13 |