sudo 란
A사용자가 B사용자의 권한을 얻어서 수행할 수 있게 하는 명령어 입니다.
대부분의 경우 슈퍼유저 권한을 얻어서 명령어를 수행하게 됩니다.
리눅스 기본명령어로 설치가 필요하지 않습니다.
/etc/sudoers 파일
일반사용자에 sudo 권한을 부여하기 위해서는 /etc/sudoers 파일에 계정을 설정해 주어야 합니다.
기본적으로 sudoers 파일권한은 440 으로 읽기만 가능하고 쓰기가 불가능 합니다.
파일에 사용자를 등록하기 위해서 파일 권한을 먼저 변경해 주어야 합니다.
sudoers 파일에 사용자가 등록되어 있지 않을때
sudoers 파일에 사용자가 등록되어 있지 않다면, 아래와 같은 오류가 발생합니다.
user is not in the sudoers file. This incident will be reported. user은(는) sudoers 설정 파일에 없습니다. 이 시도를 보고합니다. |
1
2
3
4
|
[testuser@~] $ sudo ls -l /etc
[sudo] testuser의 암호: testuser
testuser은(는) sudoers 설정 파일에 없습니다. 이 시도를 보고합니다.
testuser is not in the sudoers file. This incident will be reported.
|
cs |
sudo 사용자 등록하는 방법
testuser 계정에 전체권한을 부여하는 방법
1. /etc/sudoers 파일의 권한을 640 으로 변경하여 쓰기가 가능하도록 설정합니다.
2. /etc/sudoers 파일에 testuser 사용자에 전체 권한을 부여합니다.
3. /etc/sudoers 파일을 기본권한인 440 으로 변경합니다.
1
2
3
4
5
6
7
8
9
10
|
[root@~] # ls -al /etc/sudoers
-r--r----- 1 root root 755 1월 18 2018 /etc/sudoers
[root@~] # chmod 640 /etc/sudoers
[root@~] # vi /etc/sudoers
# User Add
testuser ALL=(ALL:ALL) ALL
[root@~] # chmod 440 /etc/sudoers
|
cs |
testuser 계정에서 위와 동일한 명령어를 실행하였고 이번에는 sudo 명령어가 정상적으로 실행되었습니다.
1
2
3
4
5
6
7
8
9
10
11
12
|
[root@~] # su - testuser
[testuser@~] $ sudo ls -l /etc
[sudo] testuser의 암호: testuser
합계 1056
drwxr-xr-x 2 root root 4096 2월 4 2020 ImageMagick-6
drwxr-xr-x 7 root root 4096 2월 4 2020 NetworkManager
drwxr-xr-x 2 root root 4096 2월 4 2020 PackageKit
drwxr-xr-x 2 root root 4096 2월 4 2020 UPower
drwxr-xr-x 11 root root 4096 2월 4 2020 X11
drwxr-xr-x 3 root root 4096 2월 4 2020 acpi
...
|
cs |
testuser 계정에 일부권한만 부여하는 방법
그렇지만 보안상 일반사용자 계정에 모든 권한을 부여하기는 힘들 수 있습니다.
일부 명령어만 가능하도록 하기 위해서는 sudoers 파일에 원하는 명령어만 작성하면 됩니다.
이번에는 sudoers 파일 testuser 계정에 ls 명령어만 실행가능하도록 설정했습니다.
testuser 계정은 sudo 권한으로 폴더를 만들기 위해 mkdir 명령어를 사용했지만 실패하게 됩니다.
죄송하지만 testuser 사용자는 '/bin/mkdir testfolder'을(를) hostname의 root(으)로 실행하도록 허가받지 않았습니다. Sorry, user testuser is not allowed to execute 'bin/mkdir testfolder' as root on hostname. |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 |
[root@~] # vi /etc/sudoers
# User Add
testuser ALL=(ALL:ALL) NOPASSWD: /bin/ls
[root@~] # su - testuser
[testuser@~] $ sudo ls -l /etc
[sudo] testuser의 암호: testuser
합계 1056
drwxr-xr-x 2 root root 4096 2월 4 2020 ImageMagick-6
drwxr-xr-x 7 root root 4096 2월 4 2020 NetworkManager
drwxr-xr-x 2 root root 4096 2월 4 2020 PackageKit
drwxr-xr-x 2 root root 4096 2월 4 2020 UPower
drwxr-xr-x 11 root root 4096 2월 4 2020 X11
drwxr-xr-x 3 root root 4096 2월 4 2020 acpi
...
[testuser@~] $ sudo mkdir testfolder
[sudo] testuser의 암호: testuser
죄송하지만 testuser 사용자는 '/bin/mkdir testfolder'을(를) couputer_hostname의 root(으)로 실행하도록 허가받지 않았습니다.
Sorry, user testuser is not allowed to execute 'bin/mkdir testfolder' as root on hostname. |
cs |
sudo 사용자 등록하는 방법
sudo 사용자 전체권한 부여하는 방법
sudo 사용자 일부권한만 부여하는 방법
user is not in the sudoers file. This incident will be reported.
Sorry, user testuser is not allowed to execute 'bin/mkdir testfolder' as root on hostname.
'Linux > 개념' 카테고리의 다른 글
[LINUX] Ubuntu /var/lib/dpkg/lock-frontend 잠금 파일을 얻을 수 없습니다 오류 해결하기 (0) | 2020.12.19 |
---|---|
[LINUX] 리눅스 sudo 패스워드 없이 사용하는 방법 (feat. NOPASSWD) (0) | 2020.11.12 |
[Linux] freetds 의 Server name not found in configuration files. 오류 해결하기 (0) | 2020.07.29 |
[LINUX] Account locked due to failed logins 해결하기 (0) | 2019.06.19 |
[LINUX] Linux 의 OS errno 알아보기 (0) | 2018.09.14 |