티스토리 뷰

sudo 사용

 

본 사이트의 단계에서는이 sudo를 사용하여 명령 입력은하지 않지만 보안 대응은 중요합니다. root 권한을 안이하게 많은 사람에게 개방하고 악의 없이도 인적 실수로 사고가 발생할 수 있습니다.

sudo를 사용하여 root 권한의 위임과 책임의 분리 root 암호 재사용을 막을 등 보안을 향상시킬 수 있습니다.



1. sudo 설치


root@otaec:~# aptitude -y install sudo 



2. root 권한을 특정 사용자에게 모든 위양


root@otaec:~# visudo


# 마지막 줄에 추가 : pangolin root 권한을 모두 사용할 수

pangolin ALL=(ALL)ALL


# 서식 ⇒ 양처 호스트 = (위양 전) 명령

# visudo를 종료하려면 Ctrl + x


# 사용자 "pangolin"에서 동작 확인

pangolin@otaec:~$ /sbin/shutdown -r now 

shutdown: you must be root to do that! # 정상적으로 거부

pangolin@otaec:~$ sudo /sbin/shutdown -r now 

[sudo] password for pangolin: # pangolin 암호


pangolin@otaec:~$

Broadcast message from root@otaec (pts/0) (Sun Mar 6 02:45:10 2011):


The system is going down for reboot NOW!   # 실행할 수있는



3. [1]의 설정뿐만 아니라,하지만 특정 명령은 허용하지 않습니다.


root@otaec:~# visudo


# 시스템 정지 계의 명령 별칭 추가

# Cmnd alias specification

Cmnd_Alias SHUTDOWN = /sbin/halt, /sbin/shutdown, \

/sbin/poweroff, /sbin/reboot, /sbin/init


# [1]의 설정 부분에 추가 (별칭 "SHUTDOWN"허용하지 않음)

pangolin ALL=(ALL)ALL, !SHUTDOWN


# 사용자 "pangolin"에서 동작 확인

pangolin@otaec:~$ sudo /sbin/shutdown -r now 

[sudo] password for pangolin:

Sorry, user pangolin is not allowed to execute '/sbin/shutdown -r now' as root on otaec.server.world.   # denied



4. root 권한이 필요한 특정 명령을 특정 그룹에 속한 사용자에게 위임하는


root@otaec:~# visudo


# 사용자 관리 시스템의 명령 별칭 추가

# Cmnd alias specification

Cmnd_Alias USERMGR = /usr/sbin/adduser, /usr/sbin/useradd, /usr/sbin/newusers, \

/usr/sbin/deluser, /usr/sbin/userdel, /usr/sbin/usermod, /usr/bin/passwd


# 마지막 줄 : 그룹 "usermgr '에 속한 사용자'USERMGR"에 정의 된 명령 권한 설정 추가

%usermgr ALL=(ALL) USERMGR


root@otaec:~# groupadd usermgr 

root@otaec:~# vi /etc/group


# 속할 사용자를 추가

usermgr:x:1002:pangolin


# 사용자 "pangolin"에서 동작 확인

pangolin@otaec:~$ sudo /usr/sbin/useradd testuser 

pangolin@otaec:~$ # 완료

pangolin@otaec:~$ sudo /usr/bin/passwd testuser 

Enter new UNIX password: # testuser 암호 설정

Retype new UNIX password:

passwd: password updated successfully



5. Transfer a command with root privilege to a user.


root@otaec:~# visudo


# 마지막 줄 : 각각의 사용자에게 특정 명령에 대한 권한 설정 추가

fedora ALL=(ALL) /usr/sbin/visudo

cent ALL=(ALL) /usr/sbin/adduser, /usr/sbin/useradd, /usr/sbin/newusers, \

/usr/sbin/deluser, /usr/sbin/userdel, /usr/sbin/usermod, /usr/bin/passwd

suse ALL=(ALL) /usr/bin/vim


# 사용자 "fedora"에서 동작 확인

fedora@otaec:~$ sudo /usr/sbin/visudo


# 열었 저장 편집도 가능

## Sudoers allows particular users to run various commands as

## the root user, without needing the root password.

##


# 사용자 "cent"에서 동작 확인

cent@otaec:~$ sudo /usr/sbin/userdel -r testuser 

cent@otaec:~$ # 완료


# 사용자 "suse"에서 동작 확인

suse@otaec:~$ sudo /usr/bin/vim /root/.profile


# 열었 저장 편집도 가능

# ~/.profile: executed by Bourne-compatible login shells.



6. 기본적으로 /var/log/auth.log에 sudo를 실행 로그가 남아 있지만 /var/log/auth.log에는 sudo 로그만으로는 않기 때문에 sudo 로그 만보고 싶을 때는 뭔가 할 해야합니다. 

"grep 'sudo'/var/log/auth.log"에서 sudo 만 주워 보는 것도 좋고, 또는 다음과 같이 sudo 로그를 다른 파일에 기록하고 나가게 수 있습니다.


root@otaec:~# visudo


# 마지막 줄에 추가

Defaults syslog=local1


root@otaec:~# vi /etc/rsyslog.d/50-default.conf

# 8 행 : 추가


local1.* /var/log/sudo.log

auth,authpriv.* /var/log/auth.log

*.*;auth,authpriv.none -/var/log/syslog


root@otaec:~# service rsyslog restart 

rsyslog start/running, process 1354

저작자 표시 비영리 변경 금지
신고
댓글