728x90
반응형
일반 계정에서 root 권한이 필요한 경우 sudo명령어를 통해 임시적으로 root권한을 얻는다.
하지만 root가 해당 계정에 sudo 사용 권한을 주지 않으면 불가하다. ( 적용하기 전 관리자는 충분한 검토를 해야 한다.)
1. sudo 파일에 정의된 sudo 그룹에 사용자를 추가
# Centos, Fedora 등 Redhat 기반 배포판
$ usermod -aG wheel [username]
# Debian, Ubuntu 및 파생 모델
$ usermod -aG sudo [username]
2. /etc/sudoers 에 사용자 등록
# 사용자 sudo 설정값 구성
test ALL=(ALL) ALL
1 2 3 4
1. 사용자 계정
2. 접속 아이피
3. 사용할 계정
4. 실행 명령어 - 실행 시 암호 입력을 생략하려면 'NOPASSWD: ALL '처럼 NOPASSWD 추가
# 입력 시 사이 공백이 들어가야 하며 /etc/sudoers 내부의 설정 값을 복사하여 수정 후 적용 할 수도 있다.
# 사용자 세분화 설정
test 192.168.130.0/23=(root) /usr/bin/systemctl start httpd
test 192.168.130.0/23=(root) /usr/bin/systemctl stop httpd
test 192.168.130.0/23=(root) /usr/bin/systemctl status httpd
test 유저가 192.168.130 대역에 속할 경우 httpd 데몬을 start/stop/status 할 수 있는 권한을 부
# 사용자가 /etc/sudoers에 등록되어 있지 않은 경우
$ su - test
$ sudo ls -l /etc
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
[sudo] password for test:
test is not in the sudoers file. This incident will be reported.
#1. /etc/sudoers에 등록하는 방법
# root 계정으로 진행
$ vi /etc/sudoers
## Sudoers allows particular users to run various commands as
## the root user, without needing the root password.
##
## Examples are provided at the bottom of the file for collections
## of related commands, which can then be delegated out to particular
## users or groups.
...
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
test ALL=(ALL) ALL
...
:wq!
# 적용 확인
$ su - test
$ sudo ls -l /etc
[sudo] password for test:
total 1148
-rw-r--r--. 1 root root 16 Feb 20 12:58 adjtime
-rw-r--r--. 1 root root 1529 Apr 15 2020 aliases
drwxr-xr-x. 2 root root 182 Feb 20 12:57 alternatives
-rw-r--r--. 1 root root 541 Sep 30 2021 anacrontab
drwxr-xr-x 3 root root 51 Feb 20 15:47 ansible
...
#2. 암호입력 없이 권한을 주는 방법
# root 로 진행
$ vi /etc/sudoers
## Sudoers allows particular users to run various commands as
## the root user, without needing the root password.
##
## Examples are provided at the bottom of the file for collections
## of related commands, which can then be delegated out to particular
## users or groups.
...
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
test ALL=(ALL) NOPASSWD: ALL
...
:wq!
# 적용 확인
$ su - test
$ sudo ls -l /etc
total 1148
-rw-r--r--. 1 root root 16 Feb 20 12:58 adjtime
-rw-r--r--. 1 root root 1529 Apr 15 2020 aliases
drwxr-xr-x. 2 root root 182 Feb 20 12:57 alternatives
-rw-r--r--. 1 root root 541 Sep 30 2021 anacrontab
drwxr-xr-x 3 root root 51 Feb 20 15:47 ansible
drwxr-x---. 4 root root 100 Feb 20 12:59 audit
drwxr-xr-x. 3 root root 46 Feb 20 12:57 authselect
...
# 암호 입력 없이 출력되는 것을 확인할 수 있음
#3.특정 명령어만 사용 가능하게 할 경우(예시 : ls 명령어만)
# root 계정으로 진행
$ vi /etc/sudoers
## Sudoers allows particular users to run various commands as
## the root user, without needing the root password.
##
## Examples are provided at the bottom of the file for collections
## of related commands, which can then be delegated out to particular
## users or groups.
...
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
test ALL=(ALL) NOPASSWD: /bin/ls
...
:wq!
# 적용 확인
$ su - test
$ sudo touch test
[sudo] password for test:
Sorry, user test is not allowed to execute '/bin/touch test' as root on test-vm.
$ sudo ls -l /etc
total 1148
-rw-r--r--. 1 root root 16 Feb 20 12:58 adjtime
-rw-r--r--. 1 root root 1529 Apr 15 2020 aliases
drwxr-xr-x. 2 root root 182 Feb 20 12:57 alternatives
-rw-r--r--. 1 root root 541 Sep 30 2021 anacrontab
...
# 허가되지 않은 명령어 'touch'를 사용할 경우 암호를 물어본 후 허가 안됨 메시지가 나옴
# 허가된 명령어 'ls'를 사용할 경우 암호 입력 없이(NOPASSWD를 줬기 때문에) 실행결과 출력
3. /etc/sudoers.d/[username]
# /etc/sudoers.d/ 디렉토리에 파일을 추가하여 적용하는 방법
$ echo 'test ALL=(ALL) ALL' > /etc/sudoers.d/test
$ ls -l /etc/sudoers.d/test
-rw-r--r-- 1 root root 25 Feb 23 15:12 /etc/sudoers.d/test
$ su - test
$ sudo cat /etc/shadow
[sudo] password for test:
root:$6$SvDttYURG9FbiY5x$i/gPYobQ6SWmNh168LBHe2a7A.cqXqNxB9IW6.Xf/KYHGttg6PrZ8K.hrIpO28UKHWHSc2PSKCs1uKy0YFiGB.::0:99999:7:::
bin:*:18367:0:99999:7:::
daemon:*:18367:0:99999:7:::
adm:*:18367:0:99999:7:::
lp:*:18367:0:99999:7:::
sync:*:18367:0:99999:7:::
...
4. 그룹 설정
# /etc/sudoers 내용을 확인해보면
...
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL
...
# 위와 같이 그룹명 앞에 %를 입력하면 되며
# /etc/sudoers.d/에도 그룹 추가시 %를 붙여 입력하면 된다.
728x90
반응형
'공부 > Linux' 카테고리의 다른 글
[Linux] vim(vi) editor 한글 입력시 깨짐 해결방법 (11) | 2023.03.14 |
---|---|
[Linux] 물리서버 전원 버튼 클릭 시 Poweroff 비활성화 (16) | 2023.03.13 |
Linux top 명령어 & 단축키 (0) | 2023.02.23 |
Linux bonding 구성 종류 (0) | 2023.02.13 |
linux network bonding test(네트워크 이중화 테스트) (0) | 2023.02.13 |
댓글