리눅스 sudo 패스워드 없이 사용 편집하기

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.

편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.

최신판 당신의 편집
7번째 줄: 7번째 줄:
==방법==
==방법==
*[[/etc/sudoers]] 파일에 맨아래(★)에 다음 형식으로 내용 추가
*[[/etc/sudoers]] 파일에 맨아래(★)에 다음 형식으로 내용 추가
<syntaxhighlight lang='bash'>
<source lang='bash'>
사용자명 ALL=NOPASSWD: ALL
사용자명 ALL=NOPASSWD: ALL
</syntaxhighlight>
</source>
:→ 여기서 <code>NOPASSWD:</code>를 빼면 sudo 실행시 자신의 패스워드를 입력해야만 함
:→ 여기서 <code>NOPASSWD:</code>를 빼면 sudo 실행시 자신의 패스워드를 입력해야만 함
<syntaxhighlight lang='bash'>
<source lang='bash'>
사용자명 ALL=NOPASSWD: 명령어1, 명령어2
사용자명 ALL=NOPASSWD: 명령어1, 명령어2
</syntaxhighlight>
</source>
:→ 지정한 명령어들만 sudo 사용가능
:→ 지정한 명령어들만 sudo 사용가능


==실습 1: 모든 명령어 사용가능==
==실습 1: 모든 명령어 사용가능==
*신규 계정 testuser1 생성
*신규 계정 testuser1 생성
<syntaxhighlight lang='console'>
<source lang='console'>
[root@localhost ~]# useradd testuser1
[root@localhost ~]# useradd testuser1
[root@localhost ~]# echo 'P@ssw0rd1' | passwd --stdin testuser1
[root@localhost ~]# echo 'P@ssw0rd1' | passwd --stdin testuser1
25번째 줄: 25번째 줄:
[root@localhost ~]# cat /etc/passwd | grep testuser1
[root@localhost ~]# cat /etc/passwd | grep testuser1
testuser1:x:500:500::/home/testuser1:/bin/bash
testuser1:x:500:500::/home/testuser1:/bin/bash
</syntaxhighlight>
</source>


*testuser1 sudo 권한 추가(+NOPASSWD)
*testuser1 sudo 권한 추가(+NOPASSWD)
<syntaxhighlight lang='console'>
<source lang='console'>
[root@localhost ~]# echo 'testuser1 ALL=NOPASSWD: ALL' >> /etc/sudoers
[root@localhost ~]# echo 'testuser1 ALL=NOPASSWD: ALL' >> /etc/sudoers
[root@localhost ~]# cat /etc/sudoers | tail -2
[root@localhost ~]# cat /etc/sudoers | tail -2
#includedir /etc/sudoers.d
#includedir /etc/sudoers.d
testuser1 ALL=NOPASSWD: ALL
testuser1 ALL=NOPASSWD: ALL
</syntaxhighlight>
</source>


*testuser1 계정으로 sudo 실행
*testuser1 계정으로 sudo 실행
<syntaxhighlight lang='console'>
<source lang='console'>
[root@localhost ~]# su - testuser1
[root@localhost ~]# su - testuser1
[testuser1@localhost ~]$ reboot
[testuser1@localhost ~]$ reboot
42번째 줄: 42번째 줄:
[testuser1@localhost ~]$ sudo reboot
[testuser1@localhost ~]$ sudo reboot
The system is going down for reboot NOW!
The system is going down for reboot NOW!
</syntaxhighlight>
</source>
:→ 패스워드 입력 없이 sudo reboot 가능
:→ 패스워드 입력 없이 sudo reboot 가능


==실습 2: 지정한 명령어만 사용가능==
==실습 2: 지정한 명령어만 사용가능==
* vi /etc/sudoers 또는 visudo
* vi /etc/sudoers 또는 visudo
<syntaxhighlight lang='console'>
<source lang='console'>
[root@localhost ~]# vi /etc/sudoers
[root@localhost ~]# vi /etc/sudoers
</syntaxhighlight>
</source>
;변경 전
;변경 전
<syntaxhighlight lang='aconf' highlight='3'>
<source lang='aconf' highlight='3'>
... (생략)
... (생략)
#includedir /etc/sudoers.d
#includedir /etc/sudoers.d
testuser1 ALL=NOPASSWD: ALL
testuser1 ALL=NOPASSWD: ALL
</syntaxhighlight>
</source>
;변경 후
;변경 후
<syntaxhighlight lang='aconf' highlight='3'>
<source lang='aconf' highlight='3'>
... (생략)
... (생략)
#includedir /etc/sudoers.d
#includedir /etc/sudoers.d
testuser1 ALL=NOPASSWD: /usr/sbin/useradd, /usr/sbin/userdel
testuser1 ALL=NOPASSWD: /usr/sbin/useradd, /usr/sbin/userdel
</syntaxhighlight>
</source>
<syntaxhighlight lang='console'>
<source lang='console'>
[root@localhost ~]# cat /etc/sudoers | tail -2
[root@localhost ~]# cat /etc/sudoers | tail -2
#includedir /etc/sudoers.d
#includedir /etc/sudoers.d
testuser1 ALL=NOPASSWD: /usr/sbin/useradd, /usr/sbin/userdel
testuser1 ALL=NOPASSWD: /usr/sbin/useradd, /usr/sbin/userdel
</syntaxhighlight>
</source>
*testuser1 계정으로 sudo 실행 테스트
*testuser1 계정으로 sudo 실행 테스트
<syntaxhighlight lang='console'>
<source lang='console'>
[root@localhost ~]# su - testuser1
[root@localhost ~]# su - testuser1
[testuser1@localhost ~]$ sudo reboot
[testuser1@localhost ~]$ sudo reboot
[sudo] password for testuser1:  
[sudo] password for testuser1:  
Sorry, user testuser1 is not allowed to execute '/sbin/reboot' as root on localhost.localdomain.
Sorry, user testuser1 is not allowed to execute '/sbin/reboot' as root on localhost.localdomain.
</syntaxhighlight>
</source>
:→ sudo reboot에 대해서는 패스워드 물어본다.  
:→ sudo reboot에 대해서는 패스워드 물어본다.  
:→ 자신의 패스워드(P@ssw0rd1)를 정확히 입력해도 권한없어 실행불가
:→ 자신의 패스워드(P@ssw0rd1)를 정확히 입력해도 권한없어 실행불가
<syntaxhighlight lang='console'>
<source lang='console'>
[testuser1@localhost ~]$ sudo useradd mallory
[testuser1@localhost ~]$ sudo useradd mallory
[testuser1@localhost ~]$ cat /etc/passwd | grep mallory
[testuser1@localhost ~]$ cat /etc/passwd | grep mallory
mallory:x:501:501::/home/mallory:/bin/bash
mallory:x:501:501::/home/mallory:/bin/bash
</syntaxhighlight>
</source>
:→ sudo useradd에 대해서는 패스워드 입력 없이 실행가능
:→ sudo useradd에 대해서는 패스워드 입력 없이 실행가능


==같이 보기==
==같이 보기==
* [[리눅스 계정에 특정 명령어 root 실행 권한 주기]]
* [[/etc/sudoers]]
* [[sudo]]
* [[sudo]]
* [[sudo -i]]
* [[sudo -i]]
* [[/etc/sudoers]]
* [[리눅스 계정에 특정 명령어 root 실행 권한 주기]]


==주석==
==주석==

제타위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 3.0 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 제타위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 편집 도움말 (새 창에서 열림)

이 문서에서 사용한 틀: