리눅스 마스터 2급

3-1. 사용자 생성 및 계정 관리

세용용용용 2023. 5. 16. 09:36

(1) 리눅스 명령어

1. which : 명령어의 경로를 확인하는 명령어, 명령어 위치를 찾아주거나 alias를 보여주는 명령어

ex)

2.alias : 자주 사용하는 명령어를 특정 문자로 입력해 두고 명령어 대신 해당 문자를 사용할 수 있게 하는 명령어

 'ls -al | more' 명령어를 문자'm'으로 단축

 

3.unalias : alias 기능을 해제

단축키 m을 더이상 사용하지 않음

unalias -a : 설정된 모든 ailas를 해제

 

4.환경변수 PATH : 실행 파일들의 디렉터리 위치를 저장해 높은 환경 변수

echo $PATH는 지정된 PATH값을 확인할 수 있다.

기존 PATH에 새로운 경로를 추가하는 방법 : 홈 디렉터리의 .bash_profile에 PATH를 추가함

export 변수명=$변수명:변수값

 

 

(2) 리눅스 도움말

1.man 명령어 : 리눅스에서 사용하는 명령어들의 매뉴얼 제공

-a : 찾고자하는 명령어의 검색된 매뉴얼 페이지 모두 출력

-h : 사용법 출력

-f : 키워드와 동일한 man페이지만 출력(whatis 명령과 동일)

-k : 키워드가 포함된 man페이지 출력(apropos 명령과 동일)

-w : 찾고자 하는 문자의 매뉴얼 페이지가 있는 위치출력

 

2.info : 리눅스 명령어 사용법, 옵션 등을 나타냄, man명령어에 비해 제공되는 명령어가 한정적

3.whatis : 명령어에 대한 기능을 간략히 나타냄, 자세한 사용법과 설명은 man,info로 확인, 완전히 키워드가 일치해야만 해당 명령어의 기능을 확인 가능

4.manpath : man페이지의 위치 경로를 검색해 표시해 주는 명령어

5.whereis : 찾고자 하는 명령어의 실행 파일 절대 경로와 소스코드, 설정 파일 및 매뉴얼 페이지를 찾아 출력하는 명령어

-b : 바이너리 파일만 찾음

-m : 지정된 매뉴얼 섹션에서만 찾음

-M : 메뉴얼 페이지의 위치를 제한

-u : 특정 파일을 제외

 

6.apropos : 맨페이지 설명에서 지정한 키워드를 포함하고 있는 명령어

 

(3) 사용자 생성 명령어

1.useradd : 계성생성 명령어 , 계정자의 홈 디렉터리는 '/home/계정명'이다., 생성된 계정 정보는 /etc/passwd, /etc/shadow, /etc/group에 저장됨

 

useradd [옵션] 계정명

-s : 사용자 로그인 기본 셸을 지정

-d : 계정의 홈 디렉터리를 지정

-f : 패스워드 만기된 후 계정이 영구히 말소될 때까지의 기간 지정

-e : 사용자 계정의 유효기간을 설정

-c : 주석, 설명추가

-G : 계정이 속한 그룹 외에 다른 그룹에 계정 추가

 

2.passwd : 생성된 계정자의 패스워드를 입력 및 변경하는 명령어, 생성된 계정자의 패스워드는 /etc/shadow 파일 안에 기록

passwd [옵션] 계정명

-S : 계정 상태 표시(PS : 정상, NP:패스워드 없음, LK : 락상태이거나 NP상태)

-d : 계정 패스워드 삭제 상태로 변경

-l : 계정을 lock상태로 변경(lock)

-u : 계정의 lock상태를 해제(unlock)

 

3.su(switch user)의 줄임말 : 현재 사용자 계정에서 로그아웃하지 않고 다른 사용자 계정으로 로그인항 해당 사용자 권한을 획득하는 명령어

su [옵션][사용자][셸변수]

-,-ㅣ,--login : 지정한 사용자의 환경변수를 적용해 로그인

-s : 지정된 셸로 로그인

-c : 셸을 실행하지 않고 주어진 명령어 수행(su -c 'cat /etc/shadow' - root : 사용자 계정 변환 없이 root권한으로 명령어 수행)

 

(4) 사용자 관련 파일

1. 파일 /etc/default/useradd : useradd 명령어로 사용자 계정을 추가시 사용되는 정보를 읽어오는 파일

GROUP : 새로 생성되는 계정이 기본적으로 소속될 그룹의 GID지정

HOME : 새로 생성되는 계정의 홈 데렉터리 위치를 지정

INACTIVE : 새로 생성되는 계정의 패스워드 사용 기간이 만료후 계정이 사용 불가능해지는 날을 지정(유예기간 느낌???)

EXPIRE : 새로 생성되는 계정 패스워드 만료일 지정(YYYY-MM-DD)

SHELL : 새로 생성되는 계정의 기본 셸을 지정

SKEL : 새로 생성되는 계정 사용자의 홈 디렉터리로 복사될 초기 활경설정 파일들이 저장된 디렉터리를 지정

CREATE_MAIL_SPOOL : 새로 생성되는 계정의 메일 파일 저장 여부 지정

 

vim /etc/default/useradd, useradd -D로 변경

ex) useradd -D -g 500 -b /home/TST -s /bin/sh : gid는 500, 홈 디렉터리는 /home/TST, 셸은 /bin/sh로 변경

-g : 그룹변경

-b : 홈디렉터리 변경

-f : INACTIVE 변경

-e : 계정 종료일 변경

-s : 셸 변경

 

2.파일 /etc/passwd : 계정자의 정보를 가지고 있는 파일로 리눅스에 로그인시 사용

username:password:uid:gid:comment:homedirectory:shell

username >>> 사용자의 이름

password >>> 암호화된 비밀번호(pwunconv 가 활성화 되어 있는 겨우 나타남)

uid >>> 사용자의 uid((사용자를 관리하기 위해서 사용자에게 부여한 번호)

gid >>> 사용자의 gid

comment >>> 설명문(보안상 요즘 잘사용안함)

homedirecttory >>> 사용자의 홈 디렉터리

shell >>> 실행할 프로그램(일반적으로 사용자의 로그인 셸이 저장)

 

3.파일 /etc/shadow : 계정자의 패스워드 정보가 암호화되어 있는 파일, 암호화 패스워드 및 계정의 유효 기간 등을 기록하고 있는 파일

username:password:lastchange:mindays:maxdays:warndays:inactive:expire:flag

username : 사용자명

password : 암호화된 비밀번호(역으로 풀수없음)

lastchange : 최근 비밀번호 변경일

mindays : 비밀번호 변경 후, 재설정을 위한 대기일 수

maxdays : 비밀번호 유효기간

warndays : 비밀번호 변경 경고 시간

inactive : 비밀번호 유예기간

expire : 비밀번호 만료와 상관없이 계정을 사용할수 없게 되는일

fiag : 나중에 사용하기 위해 예약으로 세팅되어 있고 현재는 사용되지 않으며, 0으로 지정

 

 

4.파일 /etc/login.defs : 사용자 계정 설정과 관련된 기본값을 정의한 파일, 새로운 계정 생성시 반드시 참조하는 파일

 

/etc/login.defs의 일부분을 나타낸것

 

 

(5) 사용자 계정 관리

 

1. usermod : 사용자들의 정보를 변경하는 명령어

usermod [옵션] 계정명

-u : 새로운 UID를 지정

-g : 새로운 GID지정

-G : 새로운 보조그룹 지정

-d : 새로운 홈 디레터리 지정

-s : 새로운 셸 지정

-c : 새로운 주석 지정

-I  : 로그인 ID를 바꾸는 옵션으로 새로운 계정명으로 변경

 

2.userdel : 기존 계정 정보를 삭제하는 명령어

userdel [옵션] 계정명

-r : 모든 정보 삭제

 

3.chage : 패스워드 만료 정보를 변경하는 명령어

chage [옵션] [계정명]

-l : 사용자 계정 패스워드 관련 정보를 출력

-m : 설정 암호 최소 사용일자

-M : 설정 암호 사용 가능일자

-E : 암호 만기일 지정

-W : 만기 전 변경 요구 경고 날짜 지정

 

(6)그룹관리

 

1.파일 /etc/group : 사용자 그룹에 대해 정의되어 있는 파일

모든 계정은 한 개 이상의 그룹에 포함되어 있다. 파일 /etc/group을 이용해 계정의 그룹에 대한 변경을 직접 파일을 수정하거나 명령어를 이용해 변경가능

groupname : password : gid : members

groupname : 그룹명

password : 그룹 비밀번호(x로 되어있음)

gid : 그룹번호GID

members : 그룹 멤버 리스트

 

2.파일 /etc/gshadow : 그룹의 암호를 MD5로 하여 저장하며 그룹의 소유주, 구성원 설정이 가능하다.

groupname : password : 그룹의 소유주 : members

groupname : 그룹명

password : 그룹 암호(! = 부여 안됨)

gid : 그룹gid

members : 그룹 멤버 리스트

 

3.groupadd : 새로운 그룹을 생성하5.ㅎ는 명령어

groupadd [옵션] 그룹명

- g : 그룹에 gid지정

- r : 시스템 그룹 생성시 사용, 500번 이하 값 지정(남아있는 가장 높은 범위로 할당)

 

4.groupdel : 그룹 삭제 명령어

***그룹 안에 소속되어 있는 계정명이 있을 경우 해당 그룹을 삭제 안됨**

groupdel 그룹명

 

5.groupmod : 그룹 설정 변경하는 명령어

groupmod [옵션] 그룹명

-g : gid변경  옵션 -o와 같이 사용해 중복 설정을 해줌

-n : 그룹명을 변경시 사용

 

(7)사용자 조회 명령어 

 

1. users : 시스템에 로그인한 사용자 정보를 출력

--version : users 명령어 버전 정보 출력

 

2. who : 현재 시스템에 접속해 있는 사용자들을 조회하는 명령어( 사용자 계정명, 터미널 정보, 접속 시간, 접속한 서버 등을 확인가능)

-r : 현재 시스템의 실행 레벨을 확인 가능

-b : 마지막 시스템 부팅 시간 출력

-q : 로그인한 사용자와 사용자 수를 모두 출력

 

3. w : 현재 접속중인 사용자들의 정보를 나타내는 명령어

JCPU : TTY필드의 장치명에서 사용되는 모든 프로세스의 CPU사용 시간이다

PCPU : WHAT 필드에 나타나는 프로세스명에서 사용하는 CPU 총 사용 시간이다

 

4. id : 사용자 계정의 uid, gid,group을 확인하는 명령어

-g : gid만 보기

-G : 사용자가 포함되어 있는 모든 그룹 정보 표시

-u : 사용자의 uid만 표시

 

5.groups : 사용자 계정이 속한 그룹 목록을 확인하는 명령어