Linux/리눅스 시스템 관리

01-01-04 사용자 계정 관리

바우네 2022. 2. 8. 08:00
반응형

01-01-04 사용자 계정 관리

사용자 계정 설명

  1. 설명
    • 일반적인 사용자들은 일반 사용자 계정으로 생성된다. 시스템 파일과 디렉터리에 제한적으로 접근하도록 설정하여 시스템을 보호한다.
    • 일반 사용자 계정은 그룹에 속할 수 있고, 리눅스는 그룹 단위로 파일 접근 권한 설정과 프로세스 관리를 수행할 수 있다.
  2. UID
    • 레드햇 또는 CentOS 6 버전 계열의 UID는 500 이상의 값을 갖는다. 그러나 레드햇 또는 CentOS 7 버전과 오픈수세, 데비안의 UID는 1000 이상의 값을 갖는다.
    • 일반 사용자 계정의 UID 범위는 /etc/login.defs에 정의되어 있다.

사용자 생성하기

  1. useradd를 통한 사용자 계정 생성
    • 사용자를 생성하기 위해서는 useradd 명령어나 adduser 명령어를 사용한다.
  2. 형식
    • # useradd [options] username
  3. 옵션
    • -d, --home
      • 홈 디렉터리를 지정한다.
      • 홈 디렉터리의 기본값은 기본 경로에 사용자 이름으로 생성한다.
      • 지정한 홈 디렉터리의 상위 경로가 존재해야 한다.
    • -D, --defaults: 사용자 생성 시 사용하는 기본값을 보거나 설정할 수 있다.
    • -e, --expiredate
      • YYYY-MM-DD 형식으로 계정의 만기일을 지정한다.
      • 지정한 날짜가 지나면 계정은 비활성화된다.
      • 지정되어 있지 않으면 만기일은 없다.
      • 만약 지정하지 않으면 /etc/default/useradd의 EXPIRE 필드를 따른다.
    • -f, --inactive
      • 패스워드 만료일 이후 유효기간을 설정한다.
      • 1 이상의 숫자이면 해당 일 수만큼 패스워드가 유효하고, 0이면 패스워드가 만료되자마자 패스워드가 잠기고, -1이면 해당 기능을 사용하지 않는다.
      • 설정하지 않는다면 /etc/default/useradd의 INACTIVE 값을 따른다.
    • -g, --gid GROUP
      • 사용자의 그룹을 설정한다. 그룹은 이미 존재하는 그룹이어야 한다.
      • 만약 설정하지 않으면 /etc/login.defs의 USERGROUPS_ENAB 변수를 보고 yes로 설정되어 있으면 사용자 이름과 동일한 그룹에 설정한다. no로 설정되어 있다면 /etc/default/useradd의 GROUP을 지정한다.
    • -G, --groups: 기본 그룹 외에 추가로 그룹을 설정할 때 사용하고 [,]를 통해 여러 그룹을 지정할 수 있다.
    • -k, --skel SKEL_DIR: -m 옵션을 통해 홈 디렉터리 생성할 때 복사할 기본 파일을 지정할 때 사용한다.
    • -m, --create-home
      • 홈 디렉터리를 지정할 때 사용하고 디렉터리가 없으면 생성한다.
      • -k 옵션과 같이 사용해서 홈 디렉터리 생성 시 복사할 기본 파일 경로도 지정한다.
      • 기본적으로 이 옵션을 사용하지 않고 /etc/login.defs에 CREATE_HOME 변수도 지정되어 있지 않으면 홈 디렉터리를 생성하지 않는다.
    • -M: CREATE_HOME가 설정되어 있더라도 홈 디렉터리를 생성하지 않는다.
    • -N, --no-suer-group
      • 사용자와 동일한 이름으로 그룹을 생성하지 않는다.
      • 그러나 -g 옵션이나 /etc/default/useradd의 GROUP 변수에 지정된 그룹으로 사용자가 추가될 수 있다.
    • -p, --password PASSWORD
      • 평문이 아닌 암호화된 패스워드를 설정할 수 있다.
      • 이 옵션은 사용자에게 패스워드 노출이 가능하므로 사용을 권장하지 않는다.
    • -r, --system
      • 시스템 계정을 생성한다.
      • -m 옵션을 사용하지 않는 한 홈 디렉터리를 생성하지 않는다.
    • -s, --shell SHELL
      • 사용자가 사용할 셸을 지정한다.
      • 지정하지 않는다면 /etc/default/useradd의 SHELL 변수를 사용한다.
    • -u, --uid UID
      • 사용자의 유일한 UID 값을 설정한다.
      • 값은 음수이면 안 되고 UID_MIN 보다는 크고 UID_MAX 보다는 작은 값이어야 한다.
  4. 주요 예제
    • # useradd apple
    • # useradd -d /home/fruit/apple
    • # useradd -u 2000 -g fruit apple
    • # useradd -e 2025-12-31 apple
    • $ sudo useradd -D
  5. useradd와 adduser 차이
    • CentOS 계열에서는 adduser는 useradd의 링크이기에 차이가 없다.
    • Ubuntu 계열에서는 차이가 있다.
    • Ubuntu에서 useradd 명령을 사용할 경우 -m 옵션으로 홈 디렉터리를 지정하고 passwd를 통한 패스워드 지정이 필요하다. 그러나 adduser를 사용하면 대화식으로 사용자 정보를 입력하여 생성할 수 있다.

passwd를 통한 패스워드 설정하기

  1. 설명
    • useradd 명령어를 통해 사용자를 생성하면 패스워드를 설정하기 전까지 로그인할 수 없으므로 passwd를 통해 패스워드를 설정해야 한다.
    • 패스워드를 입력 후 사용자의 패스워드를 삭제하거나 변경 기간을 설정하는 등의 관리 목적으로 사용할 수 있다.
  2. 형식
    • # passwd [options] [username]
  3. 옵션
    • -d, --delete: 패스워드를 삭제한다. 비밀번호 없이 로그인할 수 있다.
    • -e, --expire: 패스워드를 만료한다. 사용자는 다음 로그인할 때 패스워드를 변경해야 한다.
    • -i, --inactive: 사용자의 패스워드가 만료된 이후로 사용자 계정을 비활성화할 때까지 유예기간을 일수로 지정한다.
    • -l, --lock: 사용자의 패스워드에 LOCK을 걸어 로그인을 막는다.
    • -n, --mindays: 비밀번호를 변경할 수 있을 때까지 유지해야 할 일수를 설정한다. 0으로 지정하면 언제든지 패스워드를 변경할 수 있다.
    • -q, --quiet: 아무런 화면 출력 없이 명령을 수행한다.
    • -S, --status: 사용자의 로그인명, 패스워드 상태, 패스워드 설정 여부, 마지막으로 변경한 날짜, 패스워드 변경까지 남은 기간 등 다양한 정보를 얻을 수 있다.
    • -u, --unlock: -l 옵션으로 LOCK 걸린 패스워드를 다시 해제한다.
    • -w, -warndays: 패스워드 만료 전 경고 날짜를 지정한다.
    • -x, --maxdays: 패스워드 최대 사용기간을 설정한다.
  4. 주요 예제
    • $ sudo passwd apple
    • # passwd
    • $ sudo passwd -e apple
    • $ sudo passwd -S apple
    • $ sudo passwd -l apple
    • $ sudo passwd -d apple
    • $ sudo passwd -n 7 -x 365 -w 5 -i 10 apple

su 명령어로 사용자 전환하기

  1. 설명
    • su는 substitute user 또는 switch user의 약자로서 현재 로그인 세션에서 다른 사용자 권한으로 실행하고자 할 때 사용한다.
    • 보통 root 권한이 필요한 경우 일반 사용자로 로그인했다가 su 명령어를 사용하여 root 사용자로 전환하여 필요한 작업을 수행하고 exit 명령으로 원래 사용자로 돌아오는 방법을 많이 사용한다.
  2. 형식
    • su [options] username
  3. 옵션
    • -c, --command: 지정한 사용자로 셸이 실행할 명령어를 지정한다.
    • -, -l, -login: 사용자가 직접 로그인했을 때와 동일하게 환경변수 등이 설정되고 홈 디렉터리로 이동한다.
    • -s, --shell: 명시된 셸을 사용한다.
  4. 주요 예제
    • $ su
    • $ su -
    • $ su -l
    • $ su --login
    • $ su root -c "vi /etc/passwd"
    • # su - apple

usermod를 사용하여 사용자 설정 변경하기

  1. 설명
    • 사용자 셸, 홈 디렉터리, 그룹, UID, GID 등 사용자 설정을 변경한다.
    • useradd 명령어에서 할 수 있는 설정 대부분을 수정할 수 있으며 동일한 옵션은 간추려 설명한다.
  2. 형식
    • usermod [options] username
  3. 옵션
    • -a, --append: 사용자에게 그룹을 추가하기 위해 -G 옵션과 함께 사용한다.
    • -c, --comment: 사용자에 대한 간단한 정보를 입력한다.
    • -d, --home: 사용자의 홈 디렉터리를 변경한다. 만일 -m 옵션을 함께 사용한다면 현재의 홈 디렉터리의 내용이 새로운 홈 디렉터리로 복사되고 디렉터리가 존재하지 않는다면 생성도 해준다.
    • -e, --expiredate: YYYY-MM-DD 형식으로 지정한 날짜 이후로는 사용자 계정이 비활성화된다.
    • -f, --inactive: 패스워드가 만료된 이후 며칠 동안 유효할 것인지 지정한다.
    • g, --gid: 존재하는 그룹의 이름이나 GID를 입력하여 변경한다.
    • -G, --groups: 현재 지정된 그룹에 추가할 그룹을 지정한다. 복수 개로 지정할 수 있다.
    • -l, --login: 사용자의 로그인 이름을 변경한다.
    • -L, --lock: 사용자의 패스워드에 LOCK을 걸어 로그인을 막는다.
    • -m, --move-home: 사용자의 홈 디렉터리의 내용을 새 홈 디렉터리로 옮긴다. -d 옵션과 함께 사용한다.
    • -p, --password: 암호화된 패스워드를 설정한다.
    • -s, --shell: 사용자의 새로운 셸을 지정한다.
    • -u, uid UID: 사용자의 UID를 지정한다.
    • -U, --unlock: 사용자의 패스워드에 걸린 LOCK을 해제한다.
  4. 주요 예제
    • # usermod -d /home/redapple apple
    • # usermod -g flower apple

userdel을 사용하여 사용자 계정 삭제하기

  1. 설명
    • 사용자 계정을 삭제한다.
  2. 형식
    • userdel [option] username
  3. 주요 예제
    • # userdel apple
    • # userdel -r apple
    • # userdel -f apple

chage를 통한 패스워드 관리하기

  1. 설명
    • 사용자의 패스워드 만료 정보를 설정한다.
  2. 형식
    • charge [oprions] username
  3. 옵션
    • -d, --lastday: 패스워드를 변경해야 할 날짜 수를 지정한다.
    • -E, --expiredate: 계정이 만료되는 날을 설정한다.
    • -I, --inactive: 계정 만료 후 패스워드가 비활성화될 때까지 유예기간을 설정한다.
    • -l, --list: 계정의 패스워드 만료 정보를 보여준다.
    • -m, --mindays: 패스워드를 변경할 때까지 최소 날짜를 지정한다.
    • -M, --maxdays: 패스워드를 변경할 때까지 최대 날짜를 지정한다.
    • -W, --warndays: 패스워드 만료에 대한 경고 메시지를 보여줄 날짜를 지정한다.
  4. 주요 예제
    • $ sudo chage -l apple
    • $ sudo chage -m 7 -M 365 -W 5 -i 3 apple
    • $ sudo chage -E 2025-12-31 apple
    • $ sudo chage -d 10000 apple
  5. 복잡한 패스워드 만료 설정
    • 마지막 패스워드 변경일을 기준으로 계산한다. 마지막 패스워드 변경일은 -d 옵션을 통해 강제 지정할 수 있다.
    • -m 옵션을 사용하여 적용한 날짜 이후로 패스워드를 변경할 수 있고 -M 옵션으로 지정한 날 수 이후에는 패스워드가 만료된다.
    • -W 옵션으로 지정한 날 동안 경고 메시지를 출력하며 -l 옵션을 사용한 기간만큼 패스워드 비활성화를 유예한다.
반응형

'Linux > 리눅스 시스템 관리' 카테고리의 다른 글

01-01-06 사용자 환경설정 파일  (0) 2022.02.10
01-01-05 그룹 계정 관리  (0) 2022.02.09
01-01-03 시스템 계정 관리  (0) 2022.02.07
01-01-02 루트(root) 계정 관리  (0) 2022.02.06
01-01-01 사용자의 분류  (0) 2022.02.05