hoon's bLog

리눅스 시스템 관리 | 일반 운영관리 1 본문

IT/Linux Master 1급

리눅스 시스템 관리 | 일반 운영관리 1

개발한기발자 2021. 8. 24. 00:33
반응형

사용자 관리

1. root 관리

 1). 사용자 분류

  • root 사용자
  • 일반 사용자 : 로그인이 가능한 사용자, 시스템 계정
  • 숫자 값 형태의 UID(User Identity)로 관리. root는 0이 할당되고 0번 사용자를 슈퍼유저로 인식 일반 사용자는 1번부터 부여.

 

 2). 시스템 계정

시스템의 필요에 의해 생성된 계정. vim, daemon, adm, game 등

 

 3). root 계정 관리

  • 다른 슈퍼유저가 존재하는지 점검.
  • PAM을 이용하여 root 계정으로 직접 로그인을 막고, su 명령 사용 유도
  • TIMEOUT 설정
  • sudo 이용

 

2. 사용자 계정 관리

 1). 사용자 생성 명령어

사용자 계정 생성: useradd

[사용법]
$ useradd [option] 사용자계정 이름

옵션

  • -p : 암호를 추가(--password)
  • -d : 홈 디렉터리 지정(--home-dir)
  • -g : 그룹을 지정(--group)
  • -G : 추가 그룹 지정(--groups)
  • -c : 사용자 설명 설정(--comment)
  • -s : 사용자 셸 지정(--shell)
  • -D : /etc/default/useradd에 설정된 유저추가와 관련된 기본 사항들을 보여줌, -D 옵션 추고 나머지 옵션들로 추가로 옵션주면 그 옵션의 기본값을 바꿈
  • -m : 홈 디렉터리를 생성
  • -k : 사용자 생성 시에 제공되는 환경 파일들은 기본적으로 /etc/skel로 지정 되어 있음. 이외의 디렉터리 지정시에 사용.
  • -f : 패스워드 만기되고 몇일 뒤에 계정이 영구적으로 불가능하게 할건지
  • -e : 계정 만기일. YYYY-MM-DD 형태.(--expiredate)
  • -u : UID 값 지정

사용자 정보는 /etc/default/useradd에 있음

사용자 암호 부여: passwd

암호를 지정하지 않으면 로그인 안됨
[사용법]
$ passwd 사용자명

사용자 전환: su

[사용법]
$ su [option] 사용자명

옵션

  • -, -l : 실제 로그인한 것처럼 셀 이용시 반드시 이 옵션 사용(--login)
  • -c : 명령 일시적 수행(--command)

 

3. 사용자 관련 파일

useradd 명령을 실행하면

  • 기본설정은 /etc/default/useradd
  • /etc/skel에 들어있는 파일 및 디렉터리를 사용자에게 제공
  • 사용자 정보는 /etc/passwd, /etc/shadow에 기록
  • /home/사용자아이디에 홈 디렉터리를 부여받아서 파일을 생성 삭제하고
  • /var/spool/email/사용자아이디에 메일 파일을 생성

/etc/passwd

패스워드를 암호화하여 다시 /etc/shadow에서 추가로 관리

[기본구조]
username:password:UID:GID:fullname:home-directory:shell

/etc/shadow

오직 root만 접근할 수 있음.

 

[기본구조]
username:password:패스워드 바꾼날:패스워드 최소 사용 날 수:패스워드 최대 사용 기간:경고 기간:패스워드 만료뒤 실제 불가능까지의 시간:계정 사용 불가능까지의 날수:남겨둠

사용자의 패스워드를 /etc/passwd에서 관리하려면 pwunconv 명령어를 입력하고, 다시 /etc/shadow에서 관리하려면 pwconv 입력.

pwch 명령어는 /etc/passwd와 /etc/shadow를 점검해줌.

/etc/default/useradd

useradd -D 입력시 확인 가능.

useradd 명령을 이용한 /etc/default/useradd 파일 관리

[사용법]
$ useradd -D option

옵션

  • -D : 기본 useradd 출력. 이 옵션 + 아래의 옵션 사용해야 함
  • -g : 기본 그룹 지정
  • -b : 홈 디렉터리의 상위 디렉터리 지정(--base-dir)
  • -f : 패스워드 유효기간 만료 후 얼마나 추가로 더 살릴지
  • -e : 계정 만료일 지정
  • -s : 기본 셸 지정

/etc/login.defs

메일 디렉터리, 패스워드 관련 설정, UID, GID, 홈디렉터리 생성 여부, 기본 UMASK, 암호화 알고리즘이 정의되어 있음.

 

4. 사용자 계정 관리 및 삭제

사용자 계정 관리: usermod

사용자의 셸, 홈 디렉터리, 그룹, UID, GID 등을 변경하는 명령어로 사용자 관련하여 대부분의 정보를 변경할 수 있다.(--home)

[사용법]
$ usermod [option] 사용자계정

주요옵션

  • -d : 사용자의 홈 디렉터리를 변경한다. -m과 같이 사용하면 사용하던 홈 디렉터리의 파일과 디렉터리도 같이 옮겨주므로 이 경우에는 디렉터리를 생성하지 않아도 된다.(--home)
  • -m : 사용자의 홈 디렉터리 변경 시 기존에 사용하던 파일 및 디렉터리를 옮겨주는 옵션으로 -d와 함께 쓰인다.(--move-home)
  • -g : 사용자의 그룹을 변경한다.
  • -s : 사용자의 셸을 변경한다.(--shell)
  • -u : 사용자의 UID 값을 변경한다.
  • -e : 계정만기일을 변경한다.
  • -f : 패스워드 만기일이 지난 후 패스워드에 Lock을 설정할 유예기간을 지정한다.
  • -c : 사용자의 간단한 정보를 입력하거나 변경한다.
  • -G : 추가로 다른 그룹에 속하게 할 때 쓰인다.
  • -a : -G 옵션과 같이 사용하는 옵션으로 기존의 2차 그룹 이외에 추가로 2차 그룹을 지정할 때 사용한다.(--append)
  • -p : /etc/shadow의 2번째 필드인 암호화된 패스워드 값을 변경할 때 쓴다. 이 옵션을 사용할때는 암호화된 값으로 지정해야 한다.(--password)
  • -l : 사용자아이디를 변경한다.(--login)
  • -L : 사용자의 패스워드에 LOCK을 걸어 로그인을 막는다.(--lock)

사용자 계정 삭제: userdel

[사용법]
$ userdel [option] 사용자 계정

옵션

  • -r : 홈 디렉터리 메일 파일까지 다 삭제(--remove)

 

5. 사용자 패스워드 관리

사용자 패스워드 관리 : passwd

passwd은 기본적으로 패스워드를 부여하거나 패스워드를 변경하는 명령이지만, 계정을 사용하지 못하게 하거나, 패스워드 만기일 및 유효기간 등을 설정할 수 있다.

[사용법]
passwd [option] 사용자계정

주요 옵션

  • -S : 사용자에 대한 패스워드 정보를 알 수 있다.(--status)
  • -l : 사용자의 패스워드에 잠금(lock)을 걸어 로그인을 막는다.(--lock)
  • -u : 사용자에게 설정되어 있는 패스워드 잠금을 푼다.(--unlock)
  • -d : 사용자의 패스워드를 제거한다. 패스워드 없이 로그인이 가능하다.
  • -n : 패스워드 변경까지의 최소 날짜를 설정한다. 즉, 패스워드 변경 후 최소로 사용해야 되는 날짜수이다.(--minimum)
  • -x : 현재 패스워드의 유효기간을 지정한다. 즉, 패스워드 최대 사용 가능한 날짜수이다. (--maximum)
  • -w : 패스워드 만료 전 경고 날짜를 지정한다.
  • -i : 패스워드 만료된 뒤에 사용자 계정 사용이 실제 로그인이 불가능하게 되기까지의 유예기간을 설정한다.(--inactive)
  • -e: 다음 로그인 시에 반드시 패스워드를 변경하도록 할 때 사용한다.(--expire)

사용자 패스워드 관리: chage

사용자의 패스워드에 대한 정보를 출력하고 설정하는 명령

[사용법]
$ chage [option] 사용자계정

옵션

  • -l : 정보
  • -d : 최근 패스워드 바꾼날 수정(--lastday)
  • -m : 암호를 변경할 수 있는 최소의 날짜. 그러니깐 이게 0이면 언제든지 바꿀 수 있음.(--minday)
  • -M : 변경 없이 사용 가능 최대 날짜(--maxday)
  • -I : 만료 후 잠금까지의 기간(--inactive)
  • -E : 계정 만기날
  • -W : 변경 요구 경고 날짜 지정

 

그룹 계정 관리

1. 그룹의 조회

그룹의 목록은 /etc/group에서 확인. 그룹의 패스워드는 별도의 파일인 /etc/gshadow에서 관리.

/etc/group

[기본 구조]
GroupName:Password:GID:Member_List

/etc/gshadow

root만 확인 가능.

[기본 구조]
GroupName:Password:Admin:Member_List

그룹의 패스워드를 /etc/group에서 관리하려면 grpunconv 명령을 실행. grpconv 명령으로 다시 돌아갈 수 있음

그룹 생성: groupadd

root만 사용 가능

[사용법]
$ groupadd [option] 그룹명

옵션

  • -g : GID 부여
  • -r : 시스템 레벨로 생성(--system)

그룹 변경: groupmod

그룹명, GID 변경

[사용법]
$ groupmod [option] 그룹명

옵션

  • -n : 이름 변경(--new-name)
  • -g : GID 변경(--gid)

그룹 삭제: groupdel

삭제할 그룹의 사용자가 없어야된다. 2차 그룹으로 속한 사용자는 상관없다.

[사용법]
$ groupdel 그룹명

gpasswd

그룹의 패스워드를 설정, 그룹관리자(해당 그룹에 속하지 않아도 됨)를 지정. 그룹 패스워드가 설정되면, 해당 그룹이 아닌 사용자들이 newgrp 명령으로 그룹 패스워드 입력 후 일시적 1차 그룹 변경 가능

[사용법]
gpasswd [options] group

옵션

  • -A : root가 그룹 관리자 지정(--administrators)
  • -a : 그룹 관리자가 사용자를 추가
  • -d : 그룹 관리자가 사용자 제외시킴
  • -r : 패스워드 제거(--delete-password)
  • -R : 패스워드 사용 비활성화(--restrict)
  • -M : root가 그룹 멤버 지정(--members)

newgrp

사용자가 일시적으로 1차 그룹을 변경시에 사용

[사용법]
$ newgrp 그룹명

 

2. 관련 명령어

users

시스템에 로그인되있는 사용자의 아이디 출력

who

시스템에 로그인되있는 사용자를 출력

옵션

  • -b : 부팅 시간(--boot)
  • -d : 죽은 프로세스(--dead)
  • -H : 출력되는 정보의 헤더(--heading)
  • -l : 시스템 로그인 프로세스
  • -p : init 프로세스에의해 활성화된 프로세스(--process)
  • -r : 현재의 런 레벨(--runlevel)
  • -t : 마지막 시스템 시간 변경 정보
  • -T : 사용자의 메시지 상태
  • -u : 시스템에 로그인한 사용자 목록
  • -m : 표준 입력과 연관된 호스트명과 사용자명(whoami)
  • -a : -m 제외 모든 옵션 다 출력
    q

whoami

실질적 권한자를 출력

w

시스템에 로그인되있는 사용자, 수행중인 작업 출력

[사용법]
$ w [option] user

옵션

  • -h : 헤더 출력 x
  • -s : 간략히 출력

logname

사용자의 로그인 계정을 출력

id

아이디에 대한 정보를 출력. UID, GID, 속한 그룹 정보

[사용법]
$ id [option] user

옵션

  • -g : 주 그룹 GID만 출력
  • -G : 모든 그룹 GID 출력
  • -u : 사용자의 UID만 출력
  • -n : 숫자값인 UID, GID 대신 이름 출력

groups

사용자가 속한 그룹명 출력

lslogins

시스템 전체 사용자의 정보를 출력

옵션

  • -G : 각 사용자의 그룹 정보
  • -L : 각 사용자의 마지막 로그인 정보
  • -u : 사용자 계정 정보
728x90
반응형