방송대/UNIX시스템
사용자 관리
피클s
2022. 9. 24. 17:09
사용자 계정
- 사용자 계정은 UID를 가진다.
- 관리자는 계정별로 접근권한을 통제할 수 있다.
- root 계정은 UID가 0이다.
su 명령
su [-[l]] [username]
ex) su -l asdf
- -l 또는 - 옵션으로 지정된 사용자의 로그인 셸을 시작시킨다.
- -l 옵션이 없으면 로그인 셸이 아니며, 자업 디렉터리도 바뀌지 않는다.
1개의 셸 명령을 root 계정으로 실행하는 명령
su -c '커맨드'
ex) su -c 'ls -al /root/*'
sudo 명령
root 또는 다른 사용자가 되어 명령을 실행하기 위한 명령
sudo [-u username] command
ex) sudo -u asdf touch ~/test.txt
- 본인의 암호만 필요하며, root 계정의 암호를 요구하지 않는다.
- 특정 사용자나 그룹 별로 세세한 권한을 부여할 수 있다.
- /etc/sudoers 파일에 권한 설정이 정의 되어 있다.
- 현재 셸에서 수행되므로 명령어 부분에 따옴표가 필요 없다.
- -u 옵션을 사용하면 root 사용자가 아닌 특정 사용자로 수행한다.
- sudo -l은 자신에게 sudo 를 통해 허용된 명령을 확인할 수 있다.
사용자 계정 만들기
useradd 명령
사용자 계정을 만드는 관리자 명령
useradd [options] username
ex) useradd -c "a b c" sbc
- -c 는 계정 설명이다.
- psswd [username] 명령으로 비밀번호를 설정할 수 있다.
- useradd -D 명령은 계정을 생성할 때 사용되는 홈 디렉터리같은 기본 설정을 보여준다.
사용자 계정의 생성 절차
- /etc/login.defs 파일과 /etc/default/useradd 파일을 읽어서 사용자 계정 생성과 관련된 기본값을 확인한다.
- useradd 명령어에서 주어진 옵션을 검사하여 기본값을 대체할 것인지 확인한다.
- /etc/passwd파일과 /etc/shadow 파일에 새로운 사용자 계정에 해당하는 항목을 생성한다.
- /etc/group 파일에 새로운 그룹에 해당하는 항목을 추가한다.
- /home/디렉터리에서 사용자 계정의 홈 디렉터리를 생성한다.
- /etc/skel/ 디렉터리에 있는 파일을 사용자 계정의 홈 디렉터리에 복사한다.
/etc/passwd
- 사용자 계정에 관한 정보를 가진 텍스트 파일
- 계정의 생성이나 수정을 위해 직접 수정하는 것은 좋지 않다.
- 각 라인은 콜론으로 구분되는 7개의 필드를 가진다.
- 사용자계정:암호:UID:GID:설명:홈디렉터리:기본셸
/etc/skel
- 홈 디렉터리에 복사되는 파일들을 가짐
- .bash_profile, .bashrc, .bash_logout 등
/etc/shadow
- 사용자 계정의 암호 정보와 패스워드 에이징 정보를 가진다.
- 필드의 의미 → 사용자 계정:암호화된비밀번호:최종비밀번호변경일:
- 페스워드 에이징 : 비밀번호 변경 불가 기간, 변경하지 않고 사용할 수 있는 최대기간 등
chage
사용자의 비밀번호 만료에 대한 정보 변경하는 관리자 명렁
chage [options] username
- -ㅣ 유저명 : 자신의 패스워드 에이징 정보를 확인
- -l days : 만료 후 비활성화 되기전까지 날짜
/etc/login.defs
사용자 계정을 생성할 때 필요한 기본값을 정의한 파일
/etc/default/useradd
useradd 명령이 참조하는 기본값을 설정한 파일
사용자 계정 수정
usermod
- 사용자 계정의 정보를 수정하는 관리자 명령
- useradd와 옵션이 유사함
- -d : 사용자 계정의 홈디렉터리 변경
- -m : -d와 함께 사용되어야 하며 기존 홈디렉터리 내용을 새 디렉터리로 복사함
- -l : 사용자 계정 이름 변경
- -u : UID 변경
- -L : 계정 잠금. /etc/shadow 파일 비밀번호앞에 ! 가 붙음
- -U : 잠금 해제
userdel
- 사용자 계정 삭제
- -r : 홈 디렉터리, 파일, 메일도 삭제
- -f : 로그인 중이어도 삭제하며, 같은 이름의 그룹도 삭제한다.
그룹 계정과 관리
groupadd
- 그룹 계정을 만드는 관리자 명령
- -g : gid를 수동 설정
- -r : 시스템 그룹 계정 생성
- -o : -g와 함께 사용하여 기존 그룹의 GID를 사용한다
/etc/group
- 그룹계정의 정보를 가진 파일
- 그룹계정:암호:GID:구성원리스트
- 비밀번호는 /etc/gshadow에 저장된다.
사용자 계정과 그룹 및 파일의 접근 권한
- 사용자가 파일이나 폴더를 생성하면 소유그룹은 사용자의 주 그룹으로 지정된다.
- 사용자는 0개 이상의 부그룹에 속할 수 있다.
- 사용자 스스로 다른 그룹의 구성원이 될 수 있다.
- newgrp group명 으로 일시적으로 주그룹을 변경할 수 있다.
gpasswd
- 그룹의 관리자가 그룹 비밀번호 설정하기 위해 사용
- -a : 구성원 추가
- -m : 구성원 삭제
- -A : 그룹관리자 지정
- -r : 비밀번호 삭제
groupmod
- 기존 그룹 정보 수정
groupdel
- 그룹 삭제
- 사용자가 주그룹으로 설정하고 있으면 삭제할 수 없다.