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에 일반 사용자를 등록하는 방법은 다음과 같습니다.

  1. root로 사용자 전환 (su -)
  2. /etc/sudoers의 파일 permission 변경
    • chmod u+w /etc/sudoers
  3. /etc/sudoers에 일반 사용자 등록
  4. /etc/sudoers 퍼미션 원복
    • /etc/sudoers는 440 퍼미션이어야 함
    • chmod u-w /etc/sudoers
  5. 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
김태완 avatar
작성자: 김태완
1999년 부터 Java, Framework, Middleware, SOA, DB Replication, Cache, CEP, NoSQL, Big Data, Cloud를 키워드로 살아왔습니다. 현재는 빅데이터와 Machine Learning을 중점에 두고 있습니다.
E-mail: taewanme@gmail.com