편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.
최신판 | 당신의 편집 | ||
1번째 줄: | 1번째 줄: | ||
{{작성중}} | |||
;리눅스 사용자에게 특정 명령어를 root 권한으로 실행할 수 있게 하기 | ;리눅스 사용자에게 특정 명령어를 root 권한으로 실행할 수 있게 하기 | ||
;리눅스 계정에 특정 명령어 root 권한 실행할 수 있게 하기 | ;리눅스 계정에 특정 명령어 root 권한 실행할 수 있게 하기 | ||
;리눅스 계정에 특정 명령어 root 실행 권한 주기 | ;리눅스 계정에 특정 명령어 root 실행 권한 주기 | ||
;/etc/sudoers | ;/etc/sudoers | ||
==방법== | ==방법== | ||
11번째 줄: | 11번째 줄: | ||
==실습== | ==실습== | ||
testuser가 sudo를 통해 httpd를 제어할 수 있게 해보자. | |||
===사전 확인=== | ===사전 확인=== | ||
<source lang=' | <source lang='dos'> | ||
[root@ | [root@jmnote ~]# ps -ef | grep httpd | ||
root 8026 1 0 11:40 ? 00:00:00 httpd -k start | root 8026 1 0 11:40 ? 00:00:00 httpd -k start | ||
apache 8047 8026 0 11:41 ? 00:00:00 httpd -k start | apache 8047 8026 0 11:41 ? 00:00:00 httpd -k start | ||
33번째 줄: | 32번째 줄: | ||
===계정 생성=== | ===계정 생성=== | ||
<source lang=' | <source lang='dos'> | ||
[root@ | [root@jmnote ~]# useradd testuser | ||
[root@ | [root@jmnote ~]# echo '1234' | passwd --stdin testuser | ||
Changing password for user testuser. | Changing password for user testuser. | ||
passwd: all authentication tokens updated successfully. | passwd: all authentication tokens updated successfully. | ||
</source> | </source> | ||
:→ 실습을 위해 testuser 계정 생성하고 패스워드를 | :→ 실습을 위해 testuser 계정 생성하고 패스워드를 1234로 지정. | ||
===sudo 시도=== | ===sudo 시도=== | ||
<source lang=' | <source lang='dos'> | ||
[root@ | [root@jmnote ~]# su - testuser | ||
[testuser@jmnote ~]$ sudo /usr/sbin/httpd -k stop | [testuser@jmnote ~]$ sudo /usr/sbin/httpd -k stop | ||
[sudo] password for testuser: | [sudo] password for testuser: | ||
</source> | </source> | ||
:→ sudo로 root 권한 [[httpd]] 종료 시도. testuser의 패스워드를 물어본다. | :→ sudo로 root 권한 [[httpd]] 종료 시도. testuser의 패스워드를 물어본다. | ||
<source lang=' | <source lang='dos'> | ||
testuser is not in the sudoers file. This incident will be reported. | testuser is not in the sudoers file. This incident will be reported. | ||
</source> | </source> | ||
54번째 줄: | 53번째 줄: | ||
===권한 부여=== | ===권한 부여=== | ||
<source lang=' | <source lang='dos'> | ||
[testuser@jmnote ~]$ logout | [testuser@jmnote ~]$ logout | ||
[root@ | [root@jmnote ~]# cp /etc/sudoers /etc/sudoers.20120613 | ||
[root@ | [root@jmnote ~]# echo 'testuser ALL=/usr/sbin/httpd' >> /etc/sudoers | ||
[root@ | [root@jmnote ~]# tail -5 /etc/sudoers | ||
## Allows members of the users group to shutdown this system | ## Allows members of the users group to shutdown this system | ||
# %users localhost=/sbin/shutdown -h now | # %users localhost=/sbin/shutdown -h now | ||
testuser ALL= | testuser ALL=/usr/sbin/httpd | ||
</source> | </source> | ||
:→ sudoers 파일을 백업해두고, 맨아래에 한줄을 삽입하여 testuser 권한을 추가하고 확인 | :→ sudoers 파일을 백업해두고, 맨아래에 한줄을 삽입하여 testuser 권한을 추가하고 확인 | ||
===sudo 시도=== | ===sudo 시도=== | ||
<source lang='dos'> | |||
<source lang=' | [root@jmnote ~]# su - testuser | ||
[root@ | |||
[testuser@jmnote ~]$ sudo /usr/sbin/httpd -k stop | [testuser@jmnote ~]$ sudo /usr/sbin/httpd -k stop | ||
[sudo] password for testuser: | |||
</source> | |||
:→ testuser의 패스워드를 입력하여 httpd가 종료된다. | |||
<source lang='dos'> | |||
[testuser@jmnote ~]$ ps -ef | grep httpd | [testuser@jmnote ~]$ ps -ef | grep httpd | ||
testuser 8635 8584 0 13:14 pts/0 00:00:00 grep httpd | testuser 8635 8584 0 13:14 pts/0 00:00:00 grep httpd | ||
</source> | </source> | ||
:→ httpd 종료된 것 확인. | :→ httpd 종료된 것 확인. | ||
===원상복구=== | ===원상복구=== | ||
실습 전 상황으로 되돌린다(root 권한으로 수행). sudoer 파일을 복구하고 백업본은 삭제. testuser 계정 삭제. | 실습 전 상황으로 되돌린다(root 권한으로 수행). sudoer 파일을 복구하고 백업본은 삭제. testuser 계정 삭제. httpd 시작. | ||
<source lang='bash'> | <source lang='bash'> | ||
\cp /etc/sudoers.20120613 /etc/sudoers | \cp /etc/sudoers.20120613 /etc/sudoers | ||
rm -f /etc/sudoers.20120613 | rm -f /etc/sudoers.20120613 | ||
userdel -r testuser | userdel -r testuser | ||
httpd -k start | |||
</source> | </source> | ||
==참고 자료== | |||
*http://blog.naver.com/opalcosmos/90033450548 | |||
==같이 보기== | ==같이 보기== | ||
* [[/etc/sudoers]] | *[[/etc/sudoers]] | ||
* [[ | *[[리눅스 프로세스 시작 시각 확인]] | ||
[[분류: 리눅스 | [[분류: 리눅스]] | ||
[[분류: /etc]] | [[분류: /etc]] |