개요
sudo를 이용하여 root 권한의 위임과 책임의 분리가 가능합니다.
여러 사용자의 root 암호 재사용을 방지하는 등 보안을 향상시킬 수 있기때문에 root계정을 사용하는 것보다
sudo 명령어로 root 권한을 위임받아 사용하는 것이 바람직합니다.
sudo 인스톨하기
root@localhost:~# apt install sudo
특정 사용자에게 모든 root 권한을 위임하는 방법
visudo 실행하기
root@localhost:~# visudo
마지막 행에 추가: ubuntu 사용자에게 모든 root 권한을 위임하는 설정
ubuntu ALL=(ALL:ALL) ALL
visudo 를 종료할 때는 ctrl + x
입니다.
권한 위임 확인하기
reboot
명령어를 sudo 권한으로 실행되는지 확인합니다.
ubuntu@localhost:~$ /sbin/reboot
Failed to set wall message, ignoring: Interactive authentication required.
Failed to reboot system via logind: Interactive authentication required.
Failed to open /dev/initctl: Permission denied
Failed to talk to init daemon.
# sudo가 없을 때는 거부됩니다.
ubuntu@localhost:~$ sudo /sbin/reboot
[sudo] password for ubuntu: # ubuntu 사용자 패스워드 입력
Session terminated, terminating shell... # 실행됨
특정 명령어를 sudo 권한에서 제한하기
visudo 실행하기
root@localhost:~# visudo
제한할 명령어를 별칭으로 묶기(옵션)
alias 별칭으로 설정이 가능하며 직접 명령어를 기입해도 상관없습니다.
Cmnd_Alias SHUTDOWN = /sbin/halt, /sbin/shutdown, \
/sbin/poweroff, /sbin/reboot, /sbin/init, /bin/systemctl
alias(별칭) 혹은 명령어를 사용자에게 설정하기
ubuntu ALL=(ALL:ALL) ALL, !SHUTDOWN
동작 테스트하기
ubuntu@localhost:~$ sudo /sbin/shutdown -r now
[sudo] password for ubuntu:
Sorry, user ubuntu is not allowed to execute '/sbin/shutdown -r now' as root on ubuntu.
명령어가 거부되는 것을 확인할 수 있습니다.
root 권한을 특정 그룹에 속한 사용자들에게 한꺼번에 위임하기
visudo 실행하기
root@localhost:~# visudo
특정 명령어 별칭으로 설정하기
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@localhost:~# groupadd usermgr
root@localhost:~# vi /etc/group
# 그룹에 사요자 추가하도록 작성
usermgr:x:1002:ubuntu
ubuntu 사용자로 동작 테스트하기
# ubuntu 사용자로 `usaradd`와 `passwd`명령어 동작 확인
ubuntu@localhost:~$ sudo /usr/sbin/useradd testuser
ubuntu@localhost:~$ # 정상 동작
ubuntu@localhost:~$ sudo /usr/bin/passwd testuser
Enter new UNIX password: # testuser계정 패스워드 입력
Retype new UNIX password:
passwd: password updated successfully
root 권한을 특정 사용자에게 특정 명령어만 위임하기
visudo 실행하기
root@localhost:~# visudo
특정유저에게 특정 명령어만 위임하도록 편집하기
user1 ALL=(ALL:ALL) /usr/sbin/visudo
user2 ALL=(ALL:ALL) /usr/sbin/adduser, /usr/sbin/useradd, /usr/sbin/newusers, \
/usr/sbin/deluser, /usr/sbin/userdel, /usr/sbin/usermod, /usr/bin/passwd
user3 ALL=(ALL:ALL) /usr/bin/vim
동작 테스트하기
# user1
user1@localhost:~$ sudo /usr/sbin/visudo
visudo가 정상적으로 도작하고 편집가능한지 확인
# user2
user2@localhost:~$ sudo /usr/sbin/userdel -r testuser
정상적으로 계정이 삭제되는지 화인
# user3
user3@localhost:~$ sudo /usr/bin/vim /root/.profile
vim이 정상적으로 열리고 편집이 되는지 확인
sudo 로그 확인 방법
sudo 로그는 아래 파일에서 확인 가능합
/var/log/auth.log
'server > ubuntu 18.04' 카테고리의 다른 글
우분투 18.04 vim 설정 (0) | 2021.01.06 |
---|---|
우분투 18.04 에서 서비스 관리를 위한 systemctl 명령어 사용방법 (0) | 2021.01.01 |
우분투 18.04 네트워크 고정 IP 할당 설정하기 (0) | 2021.01.01 |
우분투 18.04 루트계정 사용하기 (0) | 2021.01.01 |
우분투 18.04 사용자 추가/삭제 관리자 권한 부여 방법 (0) | 2020.11.17 |