Linux 권한 관리 (4) sudo 권한
우 리 는 당신 이 이미 시스템 관리자 에 게 서 일상적인 주의사항 을 알 게 되 었 다 고 믿 습 니 다.
총괄 해 보면 이 세 가지 밖 에 없다.
\# 1) 타인 의 사생활 을 존중 한다.
\# 2) 입력 하기 전에 (결과 와 위험) 을 먼저 고려 해 야 합 니 다.
\# 3) 권력 이 클 수록 책임 이 커진다.
sudo 권한 의 역할 은 일반 사용자 가 임시로 루트 사용자 의 신분 과 권한 으로 시스템 명령 을 실행 할 수 있 도록 하 는 것 입 니 다.
sudo 권한 의 조작 대상 은 시스템 명령 입 니 다.
1. sudo 권한 설정
1. sudo 권한 명령 편집
visudo
visudo 명령 이 실제로 수 정 된 것 은?
/etc/sudoers
파일2.
/etc/sudoers
프로필[root/etc]# cat /etc/sudoers
... ...
## Allow root to run any commands anywhere
## root
root ALL=(ALL) ALL
## Allows members of the 'sys' group to run networking, software, service management apps and more.
## “sys” 、 、 。
# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS
## Allows people in group wheel to run all commands
## “wheel”
%wheel ALL=(ALL) ALL
## Allows people in group wheel to run all commands without a password
## “wheel” ,
# %wheel ALL=(ALL) NOPASSWD: ALL
## Allows members of the users group to mount and unmount the cdrom as root
## “users” 、
# %users ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom
## Allows members of the users group to shutdown this system
## “users” /sbin/shutdown -h now
# %users localhost=/sbin/shutdown -h now
## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment)
## /etc/sudoers.d
## , #
#includedir /etc/sudoers.d
사용자 에 게 sudo 권한 설정
[ ] [ IP]=([ ]) [NOPASSWD: ][ ]
[ IP]
、 [ ]
、 [ ]
모두 사용 가능ALL
제한 하지 않 음 을 나타 낸다.덧붙이다
[NOPASSWD: ]
옵션 을 사용 하면 사용자 가 sudo 권한 을 사용 할 때 비밀 번 호 를 입력 하지 않 아 도 됩 니 다.[ ]
절대 경 로 를 사용 하려 면 여러 명령 사이 에 쉼표 를 사용 할 수 있 습 니 다 (,
) 분리.## Allow root to run any commands anywhere
## root
root ALL=(ALL) ALL
사용자 그룹 에 sudo 권한 설정
%[ ] [ IP]=([ ]) [NOPASSWD: ][ ]
[ IP]
、 [ ]
、 [ ]
모두 사용 가능ALL
제한 하지 않 음 을 나타 낸다.덧붙이다
[NOPASSWD: ]
옵션 을 사용 하면 사용자 가 sudo 권한 을 사용 할 때 비밀 번 호 를 입력 하지 않 아 도 됩 니 다.사용자 그룹 과 사용자 의 유일한 차이 점 은 사용자 그룹 앞 에 있 습 니 다.
%
## “wheel” ,
%wheel ALL=(ALL) NOPASSWD: ALL
3. 주의사항
1) 사용자 에 게 sudo 권한 을 부여 할 때 는 신중 해 야 하 며, 충분히 사용 하면 되 며, 지나치게 높 은 권한 을 부여 해 서 는 안 된다.
2)
[ ]
구체 적 으로 설정 할 수록 사용자 가 얻 는 권한 이 적다.3) 일반 사용자
/usr/bin/passwd
, /usr/bin/vi
, /usr/bin/su
, /usr/bin/bash
에 게 명령 할 수 있 는 권한 을 부여 하 는 것 을 금지한다. 이 권한 을 가 진 사용 자 는 루트 사용자 비밀 번 호 를 수정 한 다음 에 하고 싶 은 대로 할 수 있다.4) 권력 이 클 수록 책임 이 커진다.
2. sudo 명령 소개
1.
sudo [ ]
: 루트 로 명령 수행사용 자 는 해당 명령 의 sudo 권한 이 있어 야 합 니 다.
예시
[vagrant~]$ sudo less /root/.bash_history
cat report.md | grep -v ID | awk '$4 >= 99 {print $2}'
cat report.md | grep -v ID | awk '$4 <= 99 {print $2}'
cat report.md | grep -v ID | awk '$4 == 100 {print $2}'
sed -n '2p' report.md
sed -n '2,4p' report.md
sed '2,4d' report.md
cat -n report.md
sed '1a Begin' report.md
sed '1i Begin' report.md
sed '1a Begin' report.md
sed '1a End' report.md
sed '1c Hello World' report.md
sed '5c Hello World' report.md
... ...
2.
sudo su
: 루트 사용자 로 전환사용자
/usr/bin/su
명령 의 sudo 권한전환 에 성공 하면 사용 자 는 루트 로 모든 명령 을 수행 할 수 있 습 니 다.
예시
[vagrant/tmp]$ sudo su
[root/tmp]# passwd
root 。
:
: 8
:
passwd: 。
3.
sudo -s
: 루트 사용자 의 셸 로 전환더 하지 않 아 도 된다
기본 셸 사용사용 자 는 셸 명령 에 해당 하 는 sudo 권한 이 있어 야 합 니 다. 예 를 들 어
/usr/bin/bash
전환 에 성공 하면 사용 자 는 루트 로 모든 명령 을 수행 할 수 있 습 니 다.
예시
sudo -s /usr/bin/bash
명령 을 사용 하여 루트 의 셸 로 전환 한 다음 루트 사용자 의 비밀 번 호 를 수정 합 니 다 [vagrant/tmp]$ sudo -s /usr/bin/bash
[root/tmp]# passwd
root 。
:
: 8
:
passwd: 。
. 기본 셸 [vagrant/tmp]$ sudo -s
[root/tmp]# exit
4.
sudo -l
: 현재 사용자 가 사용 할 수 있 는 sudo 권한 을 보 여 주 는 명령예시
[vagrant~]$ sudo -l
... ...
vagrant :
(ALL) /usr/bin/bash, /usr/bin/su, /usr/bin/less
3. sudo 권한 의 응용
1. 일반 사용자 에 게 서버 를 다시 시작 할 수 있 는 권한 부여
visudo
을 한 다음 에 다음 과 같은 내용 을 추가 합 니 다 user1 ALL=(ALL) /sbin/shutdown -r now
[user1@10 ~]$ sudo -l
... ...
user1 10 :
(ALL) /sbin/shutdown -r now
2. 일반 사용자 에 게 다른 사용 자 를 추가 할 수 있 는 권한 부여
기능 분석
다른 사용 자 를 추가 하려 면 사용자 추가 와 비밀번호 설정 권한, 즉
/usr/sbin/useradd
과 /usr/bin/passwd
두 명령 의 sudo 권한 이 있어 야 합 니 다.사용자 가
/usr/bin/passwd
sudo 권한 을 완전히 가지 고 있다 면 sudo passwd
명령 이나 sudo passwd root
명령 을 통 해 루트 비밀 번 호 를 수정 할 수 있 습 니 다. 그러면 매우 안전 하지 않 습 니 다.따라서 사용자 가
/usr/bin/passwd
에 대한 권한 을 엄 격 히 제한 해 야 한다.user ALL=(ALL) /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd "", !/usr/bin/passwd root
/usr/bin/passwd [A-Za-z]*
passwd 명령 을 표시 한 후 추 가 된 첫 번 째 문 자 는 대소 문자 만 사용 할 수 있 습 니 다.!/usr/bin/passwd ""
passwd 명령 후 아무것도 추가 하지 않 으 면 안 된다 는 뜻 이다.!/usr/bin/passwd root
passwd 명령 후 루트 를 추가 할 수 없습니다.세 문장의 하나 가 빠 지면 안 되 고 순서 가 뒤 바 뀌 어 서 는 안 된다.
실례
visudo
을 한 다음 에 다음 과 같은 내용 을 추가 합 니 다 user1 ALL=(ALL) /usr/sbin/useradd
user1 ALL=(ALL) /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd "", !/usr/bin/passwd root
[user1@10 ~]$ sudo -l
... ...
user1 10 :
(ALL) /usr/sbin/useradd
(ALL) /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd \"\", !/usr/bin/passwd root
[user1@10 ~]$ sudo useradd user2
[user1@10 ~]$ sudo passwd user2
user2 。
:
:
:
passwd: 。
[user1@10 ~]$ grep user2 /etc/passwd
user2:x:1006:1007::/home/user2:/bin/bash
passwd
와 passwd root
두 가지 방식 으로 수정 하려 고 시 도 했 으 나 모두 실 패 했 습 니 다 [user1@10 ~]$ sudo passwd
, user1 root 10.0.2.15 /bin/passwd。
[user1@10 ~]$ sudo passwd root
, user1 root 10.0.2.15 /bin/passwd root。
/usr/bin/passwd [A-Za-z]*
passwd 명령 을 결정 한 후 추 가 된 첫 번 째 문 자 는 대소 문자 일 수 밖 에 없 기 때문이다.[user1@10 ~]$ sudo useradd 2_user
[user1@10 ~]$ sudo passwd 2_user
, user1 root 10.0.2.15 /bin/passwd 2_user。
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Ubuntu 22.04에 캐디 설치 - HostnExtra이 기사에서는 Ubuntu 22.04에 Caddy를 설치하는 방법을 설명합니다. 이 문서는 설치 프로세스를 안내하고 웹 사이트를 호스팅합니다. Caddy 웹 서버는 Go로 작성된 오픈 소스 웹 서버입니다. Ubunt...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.