[Linux] 사용자 관리

GilLog·2021년 1월 10일
0

Linux

목록 보기
2/6
post-custom-banner

🙆‍♂️ import 🙇‍♂️

리눅스마스터 1급 정복하기


root(Super User) 관리

사용자 분류

리눅스 사용자는 크게 root 사용자와 일반 사용자로 구분하고, 일반 사용자의 경우 로그인 가능 사용자와 로그인은 불가하지만 시스템의 필요 때문에 생성된 시스템 계정으로 나눈다.

root 사용자는 모든 권한을 행사 가능해 Privileged User나 Super User로 불린다.

일반 사용자는 Normal User 혹은 Unprivileged User라 부른다.

Linux 시스템 내부에서는 사용자를 UID(UserIdentity)로 관리한다.
UID는 0번부터 정수 값으로 배분 되는데, root는 0번이 할당하고 0번 사용자를 Super User로 인식한다.

일반 사용자는 1번부터 부여되는데, 사용자 생성시 Redhat 계열은 500번 부터, Debian 계열은 1000번부터 할당된다.

시스템 계정

Linux 사용자 계정 정보는 /etc/passwd파일에 기록된다.
root이외에 bin, daemon, adm, game 등의 자동 생성 계정들이 존재하는데, 이러한 계정들을 시스템 계정이라 한다.

root 계정 관리

root 계정 이외에 다른 사용자 UID 중 0이 있는지를 점검해야 한다.

PAM(Pluggable Authentication Modules)를 이용해 root 계정으로 직접 로그인 하는 것을 막고, 필요한 경우 su명령 사용을 유도한다.

환경 변수 TMOUT를 설정해 무의미한 장시간 로그인을 막는다.

일반 사용자에게 명령어 권한만 할당해 줄 경우에 su보다 sudo를 이용하도록 한다.

사용자 계정 관리

사용자 계정 생성 명령어 : useradd

useradd는 사용자 ID 생성 명령어로, root 권한자가 root 이외 사용자를 생성할 때 사용한다.
adduser라고 입력해도 된다.

useradd [option] 사용자계정 이름
옵션설명
-p사용자 암호를 추가시에 지정할 수 있다.
암호화된 값으로 지정해야 한다.
-d홈 디렉터리 지정할때 사용한다.
최종 디렉터리만 생성하여 중간 경로가 있는 경우 미리 생성해야 한다.
-g그룹 지정할때 사용하며, 지정할 그룹이 미리 생성되어 있어야 한다.
해당 옵션을 지정하지 않으면 Redhat 계열은 아이디와 동일한 그룹에 포함시키고, 다른 배포판에서는 users에 포함시킨다.
-G기본 그룹 이외에 추가로 그룹에 속하게 할 경우에 사용한다.
-c사용자 생성시 사용자에 대한 설명을 설정한다.
-s사용자 생성시 사용자가 사용할 셸을 지정한다.
-D/etc/default/useradd에 설정된 유저 추가와 관련된 기본 사항들을 보여준다.
-m사용자 생성 시 홈 디렉터리 생성 옵션으로 Redhat 계열은 자동으로 홈 디렉터리가 생성되지만, 다른 배포판에서는 이 옵션을 지정해야한다.
-k/etc/skel로 지정된 사용자 생성시 제공 환경 파일 디렉터리를 지정할 때 쓰인다.
-f사용자 패스워드 만기일을 날짜 수로 지정한다.
-e계정 만기일을 YYYY-MM-DD 형식으로 지정한다.
-u사용자 추가시 UID 값을 지정한다.

사용 예제

# gillog 계정을 생성한다.
useradd gillog

# gillog 사용자를 생성하며 홈 디렉터리 경로와 그룹을 지정한다.
# /home/gil/log 디렉터리 경로와, gil 그룹은 미리 생성되어 있어야 한다.
useradd gillog -d /home/gil/log -g gil

사용자 암호 부여 명령어 : passwd

passwd는 등록된 사용자의 암호를 지정하거나 변경하는 명령어이다.

Linux에서는 useradd로 계정 생성 후 암호를 지정하지 않으면 로그인이 되지 않아 반드시 지정해주어야 한다.

passwd 입력 시 현재 로그인 사용자의 암호가 변경되고, root 계정만 다른 사용자의 암호를 변경 할 수 있다.

passwd 사용자명

사용 예제

# 현재 로그인 사용자 gillog의 암호를 변경한다.
[gillog@www ~]$ passwd

# root 계정이 gillog 사용자 암호를 변경한다.
[root@www ~]$ passwd gillog

사용자 전환 명령어 : su

su(substitue user)는 시스템에 로그인 되어 있는 상태에서 다른 사용자의 권한으로 Shell을 실행할 수 있도록 전환하는 명령어이다.

보통 Telnet 등의 원격 접속으로 Linux에 접속할 시 직접 root계정 로그인이 불가능하도록 설정되어 있어, 일반 사용자 로그인 뒤에 root로 전환해야 하는데, 이럴때 사용하는 명령어가 su이다.

su [option] [사용자명]

사용자명을 입력하지 않으면 root로 사용자 전환을 한다.
사용자 패스워드를 알아야하며, root에서 다른 사용자 전환시 패스워드를 묻지 않는다.
사용자 전환 후 원래 사용자로 돌아가려면 exit를 입력하면 된다.

옵션설명
-, -lsu 명령을 옵션 없이 실행하면 로그인 사용자의 환경 변수 값으로 다른 사람의 권한만을 갖는다.
전환하려는 사용자가 실제 로그인한 것 처럼 Shell을 이용하려면 이 옵션을 지정해야 한다.
root 전환 경우 root 권한 Shell을 이용하기 위해 반드시 필요하다.
-c사용자를 전환하지 않고 다른 사용자의 권한으로 명령을 일시적으로 수행할 때 사용한다.

사용 예제

# root 사용자로 전환한다. root로 권한을 변경하지만
# 환경 변수 등은 기존 사용자 gillog 환경으로 적용된다.
[gillog@www ~]$ su

# root 사용자로 전환한다.
# 실제 root 사용자 로그인 처럼 환경 변수, 권한 등 모든 환경이 적용된다.
[gillog@www ~]$ su -

# 사용자를 전환하지 않고 root권한으로 일회적 명령을 내린다.
[gillog@www ~]$ su root -c "tail /etc/shadow"

# gillog 사용자로 전환한다. 
# root의 경우 다른 사용자 전환시 패스워드를 묻지 않는다.
[root@www ~]$ su - gillog
profile
🚀 기록보단 길록을 20.10 ~ 22.02 ⭐ Move To : https://gil-log.github.io/
post-custom-banner

1개의 댓글

comment-user-thumbnail
2021년 1월 10일

와...bbb

답글 달기