사용자 계정 구분

사용자 계정 구분 설명 UID
일반 사용자 계정 - 일반 사용자 계정
- 자신의 홈 디렉터리 외에는 제한된 권한을 가짐
기본적으로 1000부터 시작
사용자 생성시 임의 지정 가능
root(관리자 계정) - 슈퍼유저 또는 관리자 계정
- 시스템 사용에 관한 모든 절대적인 권한을 가지고 있음
0
시스템 계정 - 특정 프로그램 실행을 위해 사용
- 보안 목적으로 사용함
- 로그인에 사용되는 계정은 시스템 계정이 될 수 없음
 

-사용자 계정별로 혹은 권한별로 사용할 수 있는 실행 명령이 다르다.

su 명령

명령어 설명

-사용자를 전환시키는 명령
-기본적으로는 해당 사용자의 비밀번호를 알아야 실행이 가능하다.
-단, 관리자 계정(root)으로 명령어 실행시에는 타깃 사용자의 비밀번호를 몰라도 실행시킬 수 있다.

기본 사용법

1
2
3
4
su                # root 계정으로 사용자 전환 (사용자만 전환)
su -l             # root 계정으로 사용자 전환 (사용자 전환, 사용자 환경 및 작업 디렉터리 변경)
su <username>     # username 계정으로 사용자 전환 (사용자만 전환)
su -l <username>  # username 계정으로 사용자 전환 (사용자 전환, 사용자 환경 및 작업 디렉터리 변경)

옵션

옵션 full name 설명
-l –login 지정된 사용자의 로그인 셸을 시작시킴
사용자 및 사용자 환경과 작업 디렉터리를 변경한다.
bash-profile 실행됨
옵션없음   사용자만 변경하며, 원래 사용자의 환경과 작업 디렉터리가 유지된다.
bashrc 실행됨
-c –command 1개의 셀 명령을 root 계정으로 실행
root 암호를 알아야 함
여러 단어로 구성된 경우 따옴표로 묶기

예시

1
2
3
4
5
# root 계정으로 사용자 전환
su

# <username> 계정으로 사용자 전환, 사용자 환경 및 작업 디렉터리 변경
su -l <username>
1
2
3
4
5
6
7
8
9
10
11
# command 옵션

## 일반 사용자일 경우
ls -l /root
>> ls: cannot open directory '/root': Permission denied # 허가 거부

## su -c 명령 사용
su -c 'ls -l /root'
>> drwxr-xr-x 28 root root       4096 Jun  3 17:46 anaconda3
>> -rw-r--r--  1 root root 4336730777 Sep 30  2022 cuda_11.8.0_520.61.05_linux.run
>> drwxr-xr-x  4 root root       4096 Jun 25 15:18 de

sudo 명령

명령어 설명

-root 또는 다른 사용자가 되어 명령을 실행하기 위한 명령이다.
-su 명령과 달리 본인의 암호만 필요하여, root 혹은 다른 사용자의 비밀번호를 몰라도 된다.
-단, 관리자가 /etc/sudoers 파일에 권한 설정을 해둬야 한다 : “누가” “어디서” “어떤 명령을” 수행할 수 있는지 .

기본 사용법

1
2
3
4
sudo [-u username] command

sudo -u <username> command  # username 사용자가 되어 명령을 실행
sudo command                # root 사용자가 되어 명령을 실행

옵션

옵션 full name 설명
-u –user 지정 사용자가 되어 명령을 실행
-b –background 명령어를 백그라운드로 실행
등등 많은 옵션이 있음

sudores 파일

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "@include" directives:

@includedir /etc/sudoers.d

Reference

UNIX시스템 - 김희천,김진욱 저