Ubuntu Linux 계정 권한
우분투는 root이라는 모든 권한을 가진 관리자 계정이 하나 있고 나머지는 모두 일반 사용자 계정입니다. UID, GID 0이 root임을 나타냅니다. 즉 어떤 사용자 계정의 UID를 0으로 고치면 계정의 이름과 상관없이 root로 인식된다는 것입니다.
- 사용자 계정 정보는 /etc/passwd 파일
- 암호는 /etc/shadow 파일에 있습니다.
우분투를 처음 설치하면 root 계정은 잠겨있습니다.
sudo passwd root
명령으로 비밀번호를 만들어야 root로 로그인할 수 있습니다.
암호가 !로 시작하는 것이 계정이 잠겨 있음을 나타냅니다.
우분투를 설치할 때 계정을 하나 만드는데 이는 root가 아니라 일반 사용자 계정이지만 adm과 sudo 등의 그룹에 가입된 계정이라 sudo 명령으로 관리자 역할을 하는 것입니다.
일반 사용자는 UID와 GID가 1000번부터 할당됩니다.
sudo useradd '사용자 계정'
위 명령으로 새로운 사용자 계정을 만들면 sudo 그룹에 가입되지 않았기 때문에 sudo로 관리자 권한을 행사할 수 없는 것을 볼 수 있습니다.
관리자 권한을 사용하게 하고 싶다면 다음 명령으로 sudo 그룹에 사용자를 추가하면 됩니다. 덤으로 -d 옵션은 삭제입니다.
sudo gpasswd -a '사용자 계정' '그룹 이름'
root로 로그인하지 않아도 sudo로 모든 명령을 실행할 수 있는데 보안이 되나 궁금하시다면 /etc/sudoers 파일에 답이 있습니다.
이 파일에 sudo 명령을 사용할 수 있는 계정과 사용할 수 있는 명령을 지정할 수 있기 때문입니다. 파일을 열어보면
root ALL=(ALL:ALL) ALL을 보니 root 계정은 모든 명령의 실행 권한을 가지고 있고
%sudo ALL=(ALL:ALL) ALL을 보니 sudo 그룹에 속한 사용자도 마찬가지라고 쓰여있습니다.
여기에 아래처럼 추가하면 해당 사용자에게 특정 명령을 사용할 수 있는 권한을 줄 수 있습니다.
'사용자 계정' ALL='명령1의 절대 경로', '명령2의 절대 경로' ...
/etc/sudoers 파일을 직접 수정해도 되지만 열어보면 This file MUST be edited with the ‘visudo’ command as root. 이렇게 쓰여있습니다.
sudo visudo 명령으로 파일을 고쳐야 합니다. visudo 명령은 위 파일을 수정 후 문법이 맞는지 확인하기 때문입니다.
혼자서 공부할 때는 느끼지 못하겠지만 일반 사용자에게 모든 권한을 주는 것은 root 암호가 유출되는 것과 같으니 실제 여러 일반 사용자가 존재하는 환경이라면 권한 부여엔 신중해야 합니다.