루트 권한을 얻기 위해서 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
파일 수정을 위하여 /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
/etc/sudoers에 사용자 등록 방법은 다음과 같습니다. 다음과 같은 설정을 /etc/sudoers의 하단에 추가하면 설정은 완료됩니다.
이제 사용자 등록이 완료된 상태 입니다. /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
3 개의 댓글:
감사합니다.
좋은 정보 감사합니다!
좋은 정보 감사합니다.
댓글 쓰기