Operation/Linux

리눅스 , 권한 대여

단님 2025. 2. 4. 00:58
728x90
권한의 대여
sudo

superuser do 의 준말 → 슈퍼유저의 권한을 수행한다.

내가 잠시 슈퍼유저의 권한을 빌러 명령어를 실행하는 것이다.

cat /etc/shadow
# 허가 거부됨을 확인
sudo cat /etc/shadow
# file 에 sudo 권한을 빌려 접근이 가능

 

루트 권한으로 아무 파일이나 들어가게되고 또 생성 , 수정 , 아무 프로세스나 루트 권한으로 실행하고 웹 서비스도 루트 권한으로 실행하고 그러면 웹 취약점으로 루트 권한을 뺴앗기게 되고 시스템을 다 장악당하게 된다.

정말 꼭 필요한 상황에서만 사용해야한다.

권한을 빌리기 위해 sudo 명령어를 쓰게되는데 문제가 하나 있다.

아무나 루트 유저의 권한을 빌려오면 안되기 때문이다.

그래서 누가 sudo의 권한을 빌려올 수 있는지에 대한 정책이 필요하다.

이 설정에 대한 파일이 /etc/sudoers 인데 , 파일은 읽기 전용이기 떄문에 함부로 쓸 수가 없다.

이 파일을 편집하기 위해서 다시 또 super user의 권한이 필요하다.

sudo visudo

우선 파일의 내용을 살펴만 보고 , 당장의 편집하거나 수정할 필요는 없다. 

파일의 중간부분을 살펴보면 , 이렇게 특정 사용자별로 어떤 권한을 주는지 알 수 있고 , 

% 마크로 그룹 권한들을 통해 어떠한 권한들이 sudo 위임을 받아 사용할 수있는지 정의되어 있다.

이 파일을 통해 특정 사용자가 sudo 권한을 사용하게 하거나, 특정 명령어만 패스워드를 추가해서 , 또는 패스워드 없이  sudo 명령어를 사용하게 정의할 수 있다.

루트 사용자는 어떠한 권한이든지 쓸 수 있도록 되어있고 , 또 사용자의 권한으로 이렇게 sudo 권한을 빌려서 쓸 수 있는 권한들이  그룹핑 되어있다.

그렇기 떄문에 사용자의 계정을 여기에 넣고 편집할 필요가 없다.

sudo 권한을 주고싶은 사용자들을 그 그룹에 넣는 것만으로 그 기능을 수행할 수 있다.

새로운 계정을 만들었을때 sudo 권한을 주고싶다면 그 그룹 안에  그 사용자를 포함 시켜주면 자동으로 sudo 권한을 상속받아 쓸 수 있게된다.

 

사용자를 다른 사용자로 바꾸어 보는방법

다른 사용자가 내 파일 또는 내 디렉토리에 접근을 잘 하는지 못하는지 시험해볼 필요가 있다.

그떄마다 사용자를 바꿔서 로그인하고 로그아웃하고 하면 작업의 능률이 저하된다.

정식으로 로그인을 하는것이 아니고 그 아이디의 권한을 보기위한 임시적인 대여를 의미한다.

su <user_name>

su user2 
#user2에 로그인 : user2의 패스워드 필요, 내가 현재 있는 디렉토리 사용

su - user2
#user2에 로그인 : user2의 패스워드 필요 , user2의 home 디렉토리 사용

su
su root
# rppt id 로 로그인 : root의 패스워드 필요 , ubuntu는 disable

이런 임시적인 대여는 언제 사용하냐면 , 관리자가 사용자의 계정을 관리하고 이슈 . 장애 분석할때 사용한다.

 

sudo 를 활용한 사용자 권한 빌려오기
sudo su
#내 권한을 상승하여 root 사용자의 권한으로 로그인 : 내가 현재 있는 디렉토리 사용 : 나의 패스워드 사용

sudo su -
#내 권한을 상승하여 root 사용자의 권한으로 홈 디렉토리 사용 : root의 home  : 나의 패스워드 사용

sudo su - user2
#user2 사용자의 권한으로 홈 디렉토리 사용 (sudoer(나의 pw 필요), user2의 home)

이런 권한 빌려오는 용도는 관리자를 위한 명령어라고 할 수 있겠다.

다른 사용자의 계정이나 그 권한을 통해서 서비스를 운영할때 문제가 발생했는데 내가 그 사용자한테 전화해서 패스워드를 물어볼 수 는 없기 떄문에 내가 관리자라면 접근이 다른 사용자에게 접근이 가능해야 한다.

 

'Operation > Linux' 카테고리의 다른 글

리눅스, 사용자 정보 확인  (0) 2025.02.04
리눅스 , 다중 사용자의 개념과 권한  (0) 2025.02.03
리눅스 운영체제(operation system)와 커널(kennel)  (0) 2025.02.02
Linux 란 ?  (0) 2025.02.01