sudo 사용자 등록 (in CentOS)
일반 사용자가 루트 권한을 획득하기 위해서는 su 명령을 사용해야 합니다. 사실 매번 루트 권한을 얻기 위해서 su를 수행하는 것은 불편하죠. Ubunto를 사용할 때 가장 편 리한 명령은 아마도 sudo일 것입니다. sudo는 일반사용자가 루트 권한을 임시적으로 획득하여 특정 명령을 할 수 있도록 합니다.
Ubuntu에서는 처음부터 일반 사용자가 sudo를 사용할 수 있도록 되어 있지만 CentOS >등 다른 리눅스 배포판에서는 sudo를 기본적으로 사용할 수 없도록 되어 있습니다.
[was@centos ~]$ sudo more /etc/sysctl.conf
[sudo] password for was:
was is not in the sudoers file. This incident will be reported.
[was@centos ~]$
위 예를 보면 weblogic 사용자는 sudoers 파일에 등록되어 있지 않기 때문에 sudo를 사용할 수 없다는 메세지를 확인할 수 있습니다.
일반사용자가 sudo 명령어를 사용하기 위해서는 /etc/sudoers에 등록되어 있어야 합니다.
/etc/sudoers에 일반 사용자를 등록하는 방법은 다음과 같습니다.
- root로 사용자 전환 (su -)
- /etc/sudoers의 파일 permission 변경
- chmod u+w /etc/sudoers
- /etc/sudoers에 일반 사용자 등록
- /etc/sudoers 퍼미션 원복
- /etc/sudoers는 440 퍼미션이어야 함
- chmod u-w /etc/sudoers
- sudo 테스트
/etc/sudoers의 초기 퍼미션은 다음과 같습니다.
[devtainer@centos ~]$ ls -al /etc/sudoers
-r--r----- 1 root root 3217 3월 16 14:09 /etc/sudoers
[devtainer@centos ~]$
파일 수정을 위하여 /etc/sudoers의 퍼미션을 수정해야 합니다. (root 전환 후 퍼미션 변경)
[devtainer@centos ~]$ su -
암호:
[root@centos ~]# chmod u+w /etc/sudoers
[root@centos ~]# ls -al /etc/sudoers
-rw-r----- 1 root root 3217 3월 16 14:09 /etc/sudoers
[devtainer@centos ~]
/etc/sudoers에 사용자 등록 방법은 다음과 같습니다. 다음과 같은 설정을 /etc/sudoers의 하단에 추가하면 설정은 완료됩니다.
case 1. 특정 사용자가 sudo를 사용할 수 있하는 설정
devtainer ALL=(ALL) ALL
case 2. 그룹에 포함된 모든 사용자가 sudo를 사용할 수 있하는 설정
%wheel ALL=(ALL) ALL
case 3. 패스워드 생략 설정
%wheel ALL=(ALL) NOPASSWD: ALL devtainer ALL=(ALL) NOPASSWD: ALL
case 4. sudo를 사용하여 cd 마운트, 언마운트 가능하도록 설정
%users ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom #users 그룹의 멤버는 sudo를 사용하여 cd롬 마운트와 언마운트만 허용
이제 사용자 등록이 완료된 상태 입니다. /etc/sudoers 의 퍼미션은 440이어야 합니다. 다음과 같이 퍼미션이 440이 아닐 경우에 에러가 발생됩니다. /etc/sudoers파일의 퍼미션을 440으로 변경하면 sudo명령이 정상적으로 동작하는 것을 확인할 수 있습니다.
[devtainer@centos ~]$ sudo tail /etc/sudoers
sudo: /etc/sudoers is mode 0640, should be 0440
sudo: no valid sudoers sources found, quitting
[devtainer@centos ~]$ su -
암호:
[root@centos ~]# chmod u-w /etc/sudoers
[root@centos ~]# su - devtainer
[devtainer@centos ~]$ sudo tail /etc/sudoers
[sudo] password for devtainer:
# %wheel ALL=(ALL) NOPASSWD: ALL
## Allows members of the users group to mount and unmount the
## cdrom as root
# %users ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom
## Allows members of the users group to shutdown this system
# %users localhost=/sbin/shutdown -h now
devtainer ALL=(ALL) ALL