[RHEL6] 계정관리 명령어들 8탄(pwconv, su, useradd, userdel)
본문 바로가기
IT 이야기/Linux 명령어

[RHEL6] 계정관리 명령어들 8탄(pwconv, su, useradd, userdel)

by 찬찬이 아빠 2020. 1. 2.
반응형
  23. pwconv(섀도우 패스워드)

 1) 경로 : /usr/sbin/pwconv

 2) 요약 : 패스워드 파일을 단방향 해시 형태의 섀도우로 변환

 3) 사용 방법 : pwconv

 4) 추가 설명

 /etc/passwd 파일은 일반 사용자가 읽을 수 있어 보안 취약성을 내포하고 있습니다. pwconv 명령어는 /etc/passwd 파일의 데이터를 변경하고, 섀도우 정보에 포함시킵니다. 참고로 패스워드가 아직 활성화되지 않은 사용자는 /etc/shadow 파일에는 추가되지 않습니다. 패스워드의 만료나 경고 또는 잠금 등의 정보는 /etc/login.defs에서 정의합니다. 대부분 시스템이 섀도우 기능을 기본적으로 사용하고 있어 추가적으로 pwconv 명령을 실행할 필요는 없을 것입니다. 섀도우 설정 해제는 pwunconv 명령어를 사용합니다. 이는 섀도우 데이터를 /etc/passwd 형식으로 변경하고, /etc/shadow 파일을 삭제합니다.

 

 /etc/shadow 파일은 슈퍼유저(root)만이 읽고 쓸 수 있고, shadow 그룹은 읽기 권한만 있습니다.

$ ls -al /etc/shadow

-rw -r----- 1 root shadow 1277 Dec 31 2019 17:30 /etc/shadow

 

 

  24. su(다른 사용자 환경)

 1) 경로 : /bin/su

 2) 요약 : 로그아웃 없이 임시로 다른 사용자의 UID, GID 환경을 사용

 3) 사용 방법 : su [옵션][사용자][쉘변수]

 4) 옵션

 -c COMMAND, --command=COMMAND : 상호 대화형 모드가 아닌 지정한 명령어(COMMAND)를 실행

 -f, --fast : 시작 파일을 읽지 않고 실행, csh 쉘과 tcsh 쉘에만 해당

 --help : 도움말 출력

 -, -l, --login : 지정한 사용자 환경으로 변경

 -m, -p, -preserve-environment : 이전의 "$HOME", "$USER", "$LOGNAME", "$SHELL" 등의 환경 변수값을 계속 유지

 -s, --shell shell : 지정한 쉘을 실행

 --version : 버전 정보 출력

 

 5) 추가 설명

 주로 일반 사용자로 로그인하여 잠시 동안 슈퍼유저(root) 권한의 명령어를 실행할 때 유용합니다. 사용자를 지정하지 않으면 슈퍼 유저인 root로 실행합니다. 실행되는 쉘은 사용자의 패스워드 목록에서 찾거나, 정의된 쉘을 찾을 수 없으면 /bin/sh 쉘을 실행합니다. su를 실행하는 실제 사용자의 ID가 슈퍼유저의 권한이라면 사용자의 패스워드가 있더라도 패스워드를 확인하지 않습니다.

 

 su 명령어는 루트의 "$PATH" 환경 변수는 읽지 못합니다. 슈퍼 유저의 "$PATH"가 필요하다면 su - 명령어를 사용합니다. su -와 같은 명령은 su -l, su -login이 있습니다.

 

<참고사항>

su 사용자 제한하기

 

1. /etc/pam.d/su의 첫 줄에 다음을 추가

아래와 같이 제한한 사용자만 su 명령어를 사용할 수 있습니다.

auth required /lib/security/pam_wheel.so debug group=chanchan

 

2. /etc/group 파일에서 su를 사용할 수 있는 사용자 그룹을 지정할 수 있습니다. 아래 예는 park 그룹을 사용 가능하도록 등록합니다.

park:x:500:park,root,someone

 

먄약 park의 그룹에 속하지 않는 사용자가 su를 시도하면 /var/log/message 로그 파일에 "PAMWheel[25873]: Access denied for 'user' to 'root'" 라고 저장됩니다.

 

 

  25. useradd(사용자 추가)

 1) 경로 : /usr/sbin/useradd

 2) 요약 : 사용자 추가

 3) 사용 방법 : useradd [옵션] 사용자ID

 4) 옵션

 -c comment : 새로운 사용자의 설명을 추가한다. 사용자의 전체 이름을 지정 가능

 -d 홈디렉터리 : 사용자의 홈 디렉터리 위치를 지정, 기본값은 /home 디렉터리이다

 -e 날짜 : 임시 사용자의 사용 기간을 제한한다. YYYY-MM-DD(년도-월-일) 방식으로 지정

 -f 남은 날 수 : 임시로 생성한 사용자의 사용 기간을 지정

 -g 그룹 : 새로운 사용자의 그룹을 지정

 -G 그룹, ... : 새로운 사용자가 포함되는 여러 그룹을 지정

 -u UserID : 새로운 사용자의 ID 값을 지정, 사용자 ID 값은 /etc/passwd 파일로 확인 가능

 -p 패스워드 : 새로운 사용자를 추가하면서 동시에 패스워드도 지정

 -s shell : 새로운 사용자의 쉘을 지정

 -m -k skell_dir : skell 디렉터리를 지정, 기본값은 /etc/skell의 내용을 새로운 사용자의 디렉터리로 복사

 

 5) 추가 설명

 서버를 관리하다 보면 임시로 사용할 ID를 생성할 때가 있습니다 .이럴 때 -e 옵션으로 날짜를 지정하여 지정한 날짜가 만료되면 임시 사용자는 더 이상 접속할 수 없게 할 수 있습니다. -c 옵션으로 사용자의 이름을 추가 지정할 수 있습니다.

# useradd -e 2020-01-31 -c chane chanchan2

# finger chanchan2
Login : chanchan2            Name : chane
Directory : /home/chanchan2         Shell : /bin/sh
Never logged in.
No mail.
No Plan.

 

useradd의 -p 옵션으로 새로운 사용자를 추가하는 동시에 패스워드도 생성할 수 있습니다. 새로운 사용자를 생성할 때 /etc/skel 내용을 /home 디렉터리에 복사합니다. 아래 예제는 이와 같이 -m -k 옵션으로 사용자별로 skel 디렉터리를 지정해 줄 수도 있습니다.

# useradd -m -k /etc/skel2 -p apapap chan3

 

 

  26. userdel(사용자 삭제)

 1) 경로 : /usr/sbin/userdel

 2) 요약 : 사용자 삭제

 3) 사용 방법 : userdel [옵션] 사용자ID

 4) 옵션

 -r : 사용자 ID뿐만 아니라 홈 디렉터리 까지 삭제

 

 5) 추가 설명

 userdel 명령을 옵션 없이 실행하면 사용자 디렉터리 정보는 삭제하지 않고 지정한 사용자 ID만 삭제합니다.

 

 

  27. usermod(사용자 설정 환경 변경)

 1) 경로 : /usr/sbin/usermod

 2) 요약 : 사용자 설정 환경 변경

 3) 사용 방법 : usermod [옵션] 사용자ID

 4) 옵션

 -c comment : 사용자의 설명을 변경, 사용자의 전체 이름을 지정 가능

 -d 홈디렉터리 : 사용자의 홈 디렉터리 위치를 지정

 -e 날짜 : 사용자의 사용 기간을 제한, YYYY-MM-DD 방식으로 지정

 -f 남은일수 : 임시 사용자의 사용 기간을 지정

 -g 그룹 : 새로운 사용자의 그룹을 지정

 -G 그룹, ... : 사용자를 포함할 그룹들을 지정

 -l 사용자ID : 사용자 ID를 변경

 -p 패스워드 : 사용자의 패스워드를 지정

 -s shell : 사용자의 쉘을 지정

 -u UserID : 사용자의 ID 값을 변경, 사용자 ID 값은 /etc/passwd 파일에서 확인

 -L : 사용자의 패스워드에 락을 걸어 로그인을 제한, 이 옵션은 패스워드를 지정하는 -p 옵션이나 패스워드 락을 해제하는 0U 옵션과는 같이 사용할 수 없음

 -U : 사용자 패스워드의 락을 해제, 이 옵션은 패스워드를 지정하는 -p 옵션이나 패스워드에 락을 거는 -L 옵션과 같이 사용할 수 없음

 

 5) 추가 설명

 usermod는 이전에 존재하는 사용자의 정보를 변경한다. 로그인 중인 사용자의 정보는 수정하지 못하니 주의합니다.

 

 예) chanchan의 사용자 이름과 패스워드를 변경

# usermod -c chanchan_father -pgksqlc chanchan

# finger chanchan
Login : chanchan                 Name : chanchan_father
Directory : /home/chanchan         Shell : /bin/sh
Never logged in.
No mail.
No Plan.

 

 예) chanchan의 로그인 ID 변경

# usermod -l park chanchan

# finger park
Login : park                 Name : chanchan_father
Directory : /home/chanchan         Shell : /bin/sh
Never logged in.
No mail.
No Plan.
반응형

댓글