CentOS 7 sudo 설정
시스템 상에서 root 유저로 사요하는 것보다 root 권한이 필요할 경우에만 sudo를 사용한는 것이 시스템 안정성과 보안 측면에서 좋습니다.
여기에서는 sudo 권한을 설정하는 법을 설명하겠습니다.
root 의 모든 권한을 특정 유저에게 위임하기
visudo 명령어를 이용해 /etc/sudoers
파일을 편집한다.
[root@localhost ~]# visudo
제일 마지막 라인에 아래 내용을 추가한다.user
라는 유저에게 모든 권한을 이용가능하게 선언하는 내용이다.
user ALL=(ALL) ALL
동작 확인하기
- sudo를 사용하지 않았을 경우(권한 없어서 실행 안됨)
[user@localhost ~]$ /usr/bin/cat /etc/shadow
cat: /etc/shadow: Permission denied
- sudo를 사용했을 경우 (정상 동작)
[user@localhost ~]$ sudo /usr/bin/cat /etc/shadow
[sudo] password for user: # 패스워드 입력
daemon:*:16231:0:99999:7:::
adm:*:16231:0:99999:7:::
lp:*:16231:0:99999:7:::
...
...
root 의 모든 권한을 특정 그룹에게 위임하기
visudo 명령어를 이용해 /etc/sudoers
파일을 편집한다.
[root@localhost ~]# visudo
제일 마지막 라인에 아래 내용을 추가한다.user
라는 유저에게 모든 권한을 이용가능하게 선언하는 내용이다.
usergroup ALL=(ALL) ALL
그룹 생성하기
[root@localhost ~]# groupadd usergroup
유저를 그룹에 추가하기
[root@localhost ~]# usermod -G usergroup user
동작 확인하기
- 유저 생성하고 패스워드 설정하기
[user@localhost ~]$ sudo /usr/sbin/useradd testuser
[user@localhost ~]$ # 메세지가 없으면 정상 생성된 것임
[user@localhost ~]$ sudo /usr/bin/passwd testuser
Changing password for user testuser.
New UNIX password: # testuser의 패스워드 입력
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
특정 명령어만 제외하는 방법
visudo 명령어를 이용해 /etc/sudoers
파일을 편집한다.
[root@localhost ~]# visudo
대략 49번째 라인 근처에 아래 내용을 추가한다.
Cmnd_Alias SHUTDOWN
에 shutdown 관련 명령어를 선언한다.- shutdown 명령어를 제한하도록 설정한다.
Cmnd_Alias SHUTDOWN = /sbin/halt, /sbin/shutdown, \
/sbin/poweroff, /sbin/reboot, /sbin/init
user ALL=(ALL) ALL, !SHUTDOWN
동작 확인하기
- 아래와 같이 선언된 특정 명령어가 거부되어 실행이 되지 않는다.
[user@localhost ~]$ sudo /sbin/shutdown -r now
Sorry, user user is not allowed to execute '/sbin/shutdown -r now' as root on localhost.srv.world.
특정 명령어만 특정 유저에게 허가하는 방법
visudo 명령어를 이용해 /etc/sudoers
파일을 편집한다.
[root@localhost ~]# visudo
파일 마지막 라인에 아래 내용을 추가한다.
- 임의에 user1, user2, user3 에게 특정 명령어를 허가
user1 ALL=(ALL) /usr/sbin/visudo
user2 ALL=(ALL) /usr/sbin/useradd, /usr/sbin/userdel, /usr/sbin/usermod, /usr/bin/passwd
user3 ALL=(ALL) /bin/vi
동작 확인하기
- user1 의
visudo
실행하기
[user1@localhost ~]$ sudo /usr/sbin/visudo
- user2 의
userdel
실행하기
[user2@localhost ~]$ sudo userdel -r testuser
- user3 의
vi
실행하기
[user3@localhost ~]$ sudo vi /boot/grub/grub.conf
모두 정상 동작하는 것을 확인할 수 있다.
sudo 로그 위치
/var/log/secure
'server > centos 7' 카테고리의 다른 글
CentOS 7 vim 설치 방법 및 설정 방법 (0) | 2020.02.29 |
---|---|
CentOS 7 yum 리포지토리(저장소) 추가 방법 (0) | 2020.02.29 |
CentOS 7 서비스 설정 - systemctl 사용 방법 (0) | 2020.02.28 |
CentOS 7 네트워크 인터페이스 변경(수정) 방법 (0) | 2020.02.28 |
CentOS 7 IPv6 비활성화 방법 (0) | 2020.02.28 |