애드센스본문상단

 


sudoers 파일  - 리눅스/안드로이드

출처: http://www.go2linux.org/sudoers-how-to
Comment: 원문을 의역하였고 필요에 따라 생략 및 수정된 문장도 있습니다.

/etc/sudoers 파일은 sudo 명령을 사용할 때 사용자가 따라야 하는 규칙을 정의해 놓았다.

우분투를 사용해 본 사용자라면 root 계정을 사용할 수 없다는 것을 쉽게 알 수 있을 것이다.

우분투에서 root 계정을 사용할 수 없는 이유는 root 계정에 password가 설정되어 있지 않기 때문이다.

따라서 root 계정의 password를 설정한다면 우분투에서도 root 계정을 사용하는 것이 가능하다.

우분투에서는 root계정을 사용하는 것 대신에 sudo 명령을 통해 root 권한으로 명령을 수행할 수 있다.

원문에 있던 재미있는 그림

위 그림에서 볼 수 있듯이 sudo 명령을 사용함으로써 동일 사용자임에도 불구하고
시스템은 명령을 내리는 사용자로 인식하게 만드는 것이다.

아래의 명령으로 sudoers 파일을 연다.

# sudo vi /etc/sudoers (혹은 visudo)

아마도 아래와 같은 내용을 볼 수 있을 것이다.

 
# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#


Defaults        env_reset


# Host alias specification


# User alias specification


# Cmnd alias specification


# User privilege specification
root    ALL=(ALL) ALL
마지막 줄의
root ALL=(ALL) ALL 은 사용자 root는 모든(ALL) 터미널에서 명령을 수행할 수 있고,
모든(any) 사용자의 권한을 가질 수 있으며, 모든 명령을 실행할 수 있다는 것을 의미한다.

정리하면 첫번째 부분은 사용자를, 두번째 부분은 sudo를 사용할 수 있는 터미널을, 세번째 부분은 권한을 가질 수 있는 사용자를, 마지막 부분은 실행할 수 있는 명령을 의미한다.


다른 예제를 보자.

operator ALL= /sbin/poweroff

사용자 operator는 모든 터미널에서 수행 가능하고 poweroff 명령을 실행 할 수 있다는 것을 뜻한다.


또한 User_Alias를 사용하여 사용자에 대해 alias를 생성할 수 있고, Runas_Alias, Host_Alias, Cmnd_Alias를 사용하여 다른 사용자가 실행한 것과 같이 명령을 수행하도록 할 수 있다.


다음은 이를 이용한 예제이다.


User_Alias OPERATORS = joe, mike, jude
Runas_Alias OP = root, operator
Host_Alias OFNET = 10.1.2.0/255.255.255.0
Cmnd_Alias PRINTING = /usr/sbin/lpc, /usr/bin/lprm

alias OPERATORS는 사용자 joe, mike, jude를 포함한다. alias OP는 사용자 root와 operator를 포함하고, alias OFNET은 network 10.1.2.0을 포함하며 slias PRINTING은 lpc와 lprm 명령을 포함하고 있다.


일반적인 sudoers 파일은 아래와 같은 형태가 될 것이다.

 User_Alias OPERATORS = joe, mike, jude
 Runas_Alias OP = root, operator
 Host_Alias OFNET = 10.1.2.0/255.255.255.0
 Cmnd_Alias PRINTING = /usr/sbin/lpc, /usr/bin/lprm


OPERATORS ALL=ALL
# OPERATORS 그룹의 사용자는 모든 터미널에서 모든 명령을 실행할 수 있다.


linus ALL=(OP) ALL
# 사용자 linux는 모든 터미널에서 OP 그룹의 사용자의 권한으로 모든 명령을 실행할 수 있다.


user2 OFNET=(ALL) ALL
# 사용자 user2는 OFNET 네트워크에 포함된 터미널에서 모든 사용자의 권한으로 모든 명령을 실행할 수 있다.


user3 ALL= PRINTING
# 사용자 user3은 모든 터미널에서 lpc와 lprm 명령을 실행할 수 있다.


go2linux ALL=(ALL) ALL
# 사용자 go2linux는 모든 터미널에서 모든 사용자의 권한으로 모든 명령을 실행할 수 있다.

만약 비밀번호를 사용하고 싶지 않다면 아래와 같은 명령을 사용하면 된다.

go2linux ALL=(ALL) ALL NO PASSWD: ALL


sudoers man page


핑백

덧글

댓글 입력 영역


애드센스본문측면

통계 위젯 (화이트)

512
241
312134

Analytics