Home [Linux] Sudoer 및 sudo 사용하기. sudo passwd 실행 안될 때
Post
Cancel

[Linux] Sudoer 및 sudo 사용하기. sudo passwd 실행 안될 때

Sudoer 및 sudo 사용하기

root 권한

root 는 일반적으로 unix에 존재하는 특권 사용자의 이름을 의미하는데 모든 권한을 가지고 있다고 보면 되겠다.

매우 강력하여 편리하게 보이지만 위험할 수 있기 때문에 모든 계정에 root 권한을 주지는 않는다.

일반 계정이 sudo 명령어로 root 권한을 가진 채 커맨드를 이용하기 위해서는 sudoer 파일에 필요한 부분을 적어서 사용하게 된다.

Sudoer란

sudoer란 일반 계정이 sudo 명령어를 사용해서 임시로 root 권한을 얻어 이용할 수 있는 것을 의미한다.

또한 root 권한을 계정에 부여할 수도 있다.

파일의 위치는 /etc/sudoers 이다.

예를 들어

1
deploy ALL=NOPASSWD: ALL, !/bin/su, !/sbin/reboot, !/usr/bin/reboot, !/sbin/shutdown, !/sbin/halt, !/usr/bin/halt, !/sbin/poweroff, !/usr/bin/poweroff, !/sbin/init, !/usr/sbin/adduser, !/usr/sbin/useradd, !/usr/sbin/userdel, !/sbin/iptables, !/usr/bin/passwd

이런식으로 deploy 계정에 대해 사용할 수 있는 커맨드와 사용할 수 없는 커맨드들이 적혀있다.

앞에 ! 느낌표가 붙은 커맨드는 sudo 명령어로 사용하게 되면 아래처럼 에러 문구가 발생한다.

1
죄송하지만 deploy 사용자는 '/usr/sbin/useradd TEST'() root()로 실행하도록 허가받지 않았습니다.

sudo -s

-s (–shell) 옵션은 을 의미한다.

즉, root 권한을 가진 shell을 새롭게 연다는 것이다.

sudo passwd (*) 실행 안될 때

/etc/sudoers 에서 deploy 계정의 경우 !/usr/bin/passwd 이렇게 passwd 명령어를 sudo 로 사용할 수 없게 막혀있는 것을 확인할 수 있다.

1
2
3
4
5
6
7
[deploy@ ~]$ sudo passwd
-> 죄송하지만 deploy 사용자는 '/usr/bin/passwd'을(를) root(으)로 실행하도록 허가받지 않았습니다.

[deploy@ ~]$ sudo -s
[root@ ~]# sudo passwd
-> root 사용자의 비밀 번호 변경 중
-> 새  암호:

요런식으로 sudo (명령어) 로는 안되지만, sudo -s 옵션으로 들어가서는 되는 것을 확인할 수 있다.

This post is licensed under CC BY 4.0 by the author.