본문 바로가기
컴퓨터 이야기/우분투

[팁] 우분투 root 계정 활성화

by 노땅엔진니어 2022. 12. 28.

초창기 우분투는 root계정으로 설치를 하고 바로 사용할 수 있었습니다. 보안문제로 인하여 최근 우분투의 경우에는 설치 후에 root 계정이 비활성화 되었고 sudo 명령을 실행할 수 있는 유저(user) 계정으로 설치가 됩니다.

우분투에서 관리자 권한으로 사용자가 접근을 할 수 있는 방법은 크게 su (subsitute user)와 sudo 명령어가 있습니다. su (subsitute user) 명령어는 우분투에 추가되어 있는 다른 유저(root를 포함)로 로그인을 할 수 있는 명령어 입니다. 다음과 같이 유저(user)를 생략하면 관리자 권한으로 로그인을 합니다.

# su

우분투 설치 후에 위와 같이 su를 실행하면 "su: Authentication failure"와 같이 오류 메시지가 출력 됩니다. 관리자로 로그인을 하기 위해서는 다음과 같이 root 계정을 활성화 해야 합니다.

# sudo passwd root

위와 같이 root 계정에 패스워드(password)를 설정하면 관리자 계정(root)가 활성화 됩니다.

su과 sudo의 차이점

root 계정으로 로그인을 하면 시스템 전체의 권한을 갖는 것이고 sudo는 일반유저(user)가 잠시 root 권한을 갖습니다. 일반유저 모두가 sudo를 실행할 권한을 갖지는 않습니다. 리눅스(linux)에서는 /etc/sudoers 파일에 sudo에 관한 설정 정보를 갖고 있습니다. /etc/sudoers 파일의 권한은 다음과 같습니다.

# ls -l /etc/sudoers
-r--r----- 1 root root 786 12월 27 23:34 /etc/sudoers

최근 우분투 버전에서는 /etc/sudoers 파일의 권한이 변경되면(-r--r-----이 아닌 -rw-rw--- 등등) sudo 명령어를 실행했을 때 다음과 같이 오류 메시지가 출력되면서 실행을 할 수 없습니다.

# ls -l /etc/sudoers
-rw-rw-rwx 1 root root 786 12월 27 23:34 /etc/sudoers
# sudo
sudo: /etc/sudoers is world writable
sudo: no valid sudoers sources found, qutting
sudo: unable to initialize policy plugin

보통 이런 실수를 하는 경우는 sudo vi 를 통해서 /etc/sudoers 파일을 변경을 시도하면 "read only"파일이어서 수정을 하고 저장을 할 수 없습니다. 잠시 sudo 명령어를 통해서 sudo chmod 667 /etc/sudoers와 같이 파일의 권한(permission)을 변경한 후에 수정을 하고 저장이 됩니다. 문제는 다시 권한을 변경하기 위해서는 sudo chmod 440 sudoers를 실행해야 하는데 sudoers의 권한이 변경되어서 sudo 명령을 다시 실행할 수 없기 때문에 root 계정이 활성화 되어 있지 않으면 sudo 명령을 실행할 수 없기 때문에 시스템을 다시 설치해야 합니다.

su는 sudoers와는 관련이 없기 때문에 root 권한이 활성화 되어 있으면 root로 로그인을 하여 sudoers 파일의 권한을 다시 돌려 놓을 수 있습니다.

일반 계정에 sudo 권한 부여하기

/etc/sudoers 파일은 다음과 같이 권한을 변경하지 않고 수정을 합니다. sudoers파일이 잘못되면 sudo 명령을 사용할 수 없기 때문에 먼저 root 계정을 활성화 합니다.

# sudo visudo -f /etc/sudoers
...

위와 같이 visudo를 사용하여 수정을 하게 되면 파일 권한 문제로 인하여 sudo 명령어가 실행되지 않는 문제를 해결할 수 있습니다. 일반 추가한 유저(user)가 user라고 했을 때 /etc/sudoers 파일의 적당한 위치에 다음과 같이 추가를 한 후에 저장을 하면 user는 sudo 명령어를 실행 할 수 있습니다.

# sudo visudo -f /etc/sudoers
...
user     ALL=(ALL)   ALL
...

다음과 같이 추가를 하면 sudo 명령어 실행시 암호입력을 생략 할 수 있습니다.

# sudo visudo -f /etc/sudoers
...
user     ALL=(ALL)   NOPASSWD: ALL
...

 

댓글