[사용자 계정에 관련된 파일]
/etc/passwd
-사용자의 일반 정보가 저장된 파일
* 파일 내용 보는 방법
user_a:x:1000:1000:test_user:/home/user_a:/bin/bash
user_a : 사용자명, 뒤의 정보들이 어느 사용자의 정보인지 표시
x : 암호, passwd 파일에는 보안상의 이유로 암호 표시 X
1000(왼쪽) : UID, 이 사용자의 고유 번호
1000(오른쪽) : GID, 이 사용자가 소속된 주요 그룹의 고유 번호
test_user : 사용자 별칭(계정명 혹은 ID로 사용 X, 화면에 표시되는 이름)
/home/user_a : 사용자의 홈 디렉토리를 절대경로로 저장(사용자가 로그인 할 때 등의 상황에서 사용)
/bin/bash : 사용자 계정이 사용하는 shell
* UID, GID
운영체제가 사용자&그룹을 인식하는 번호
UID : User ID, 사용자에게 부여되는 고유 번호
GID : Group ID, 그룹에게 부여되는 고유 번호
0 : root
1~999 : service or system 계정
1000~ : 일반 사용자&그룹
* shell
- 명령어 해독기, 운영체제에 명령을 전달해주는 역할
- 현재 시스템에 설치된 shell 목록은 /etc/shells 파일에서 확인 가능
1) /sbin/nologin
-> 로그인을 하지 못하게 만드는 shell, 로그인을 못하는 이유가 출력됨
2) /bin/false
-> 로그인을 하지 못하게 만드는 shell, 로그인을 못하는 이유가 출력되지 않음
[사용자 계정 생성]
- 형식
useradd [옵션] [값] ... [옵션] [값] 사용자명
useradd user_a
user_a:x:1000:1000:test_user:/home/user_a:/bin/bash
* 생성된 사용자 계정의 UID GID는 생성했던 것 중 가장 큰 숫자 +1, 별칭은 없음
* 옵션
-u : UID 지정
-g : GID 지정
-G: 추가 그룹 지정
-c : 별칭 지정
-s : shell 지정
-d : 홈 디렉토리 경로와 이름을 지정
(절대경로로 입력해야하고 경로와 이름을 전부 입력해야함)
/etc/login.defs 파일에 CREATE_HOME 설정이 없거나 no이면 -m 옵션과 함께 사용
-m : make directory
-k : 기본 skel 디렉토리 /etc/skel이 아닌 다른 디렉토리를 skel로 지정,
반드시 -m 옵션과 함께 사용
-N : 사용자 생성시 그룹을 생성하지 않겠다는 옵션, 기본 그룹으로 할당됨
[사용자 암호 변경]
-형식
passwd : 명령어를 입력한 사용자 자신의 암호 변경(모든 사용자 사용)
passwd 사용자명 : 해당 사용자의 암호 변경(관리자만 사용)
[사용자 계정 정보 수정]
-형식
usermod 옵션 값 [옵션] [값] ... [옵션] [값] 사용자명
* 옵션은 useradd의 옵션을 대다수 사용 가능
-> -k 옵션은 사용 불가
-> -m 옵션은 move directory로 의미 변경
-d 옵션으로 홈디렉토리를 변경할 때 -m 옵션까지 사용해야 안의 내용물까지 옮겨짐
[사용자 계정 삭제]
-형식
userdel [옵션] 사용자명
* 옵션
-r : 삭제하는 사용자 계정 소유의 파일/디렉토리도 같이 삭제
주의사항)
사용자 계정과 홈디렉토리는 별개임을 명심
usermod -d 를 사용해서 사용자 계정의 홈디렉터리를 변경했더라도 실제 홈디렉터리는 이동하지 않음
그렇기 때문에 usermod -m (move directory) 옵션과 같이 사용해서 한번에 경로 변경과 실제 홈디렉터리를 이동
마찬가지로 userdel을 사용해서 사용자 계정을 삭제했더라도 실제 홈디렉터리는 삭제되지 않기 때문에
-r 옵션으로 한번에 해당 사용자 계정 소유의 파일과 디렉토리를 삭제
[그룹]
-사용자 계정을 그룹에 소속시켜서 사용
-> 그룹에 권한을 부여하여 그룹에 소속된 모든 사용자가 동일한 권한을 적용
- 그룹에 관련된 파일
/etc/group : 그룹의 일반 정보가 들어있는 파일
* 파일 내용 보는 방법
user_a:x:1000:
user_a : 그룹 이름, 뒤에 오는 정보가 어느 그룹의 정보인지 출력
x : 암호, 그룹에는 별도의 암호를 지정하지 않는다
1000 : GID, 해당 그룹의 고유 번호
마지막 필드 : 그 그룹에 일반 소속된 사용자들의 목록 출력
단, 운영체제 설치 시에 생성된 그룹은 해당 그룹을 GID로 사용하는 사용자 목록도 포함
[그룹 생성]
-형식
groupadd [옵션] [값] ... [옵션] [값] 그룹명
* 옵션
-g : GID 지정
-> GID도 UID와 마찬가지로 따로 지정해주지 않으면 가장 큰숫자 +1로 생성
[그룹 정보 수정]
-형식
groupmod [옵션] [값] ... [옵션] [값] 그룹명
* 옵션
-g : GID 변경
-n : 그룹명 변경
[그룹 삭제]
-형식
groupdel 그룹명
* 사용자가 해당 그룹을 주요 그룹(GID)으로 사용 중이라면 삭제 불가
사용자 + 그룹
- 사용자가 그룹에 소속되는 방식을 두 가지로 분류
1) 사용자가 그룹을 자신의 주요 그룹으로 사용(GID로 사용)
2) 사용자가 그룹에 일반 소속되어 사용
- 사용자를 만들면 같은 이름의 그룹을 생성
-> 사용자는 기본적으로 함께 만들어진 그룹을 자신의 주요 그룹(GID)으로 사용
- 사용자의 주요 그룹과 사용자가 일반 소속된 그룹은 언제든지 변경 가능
1. 주요 그룹(GID) 변경
-> usermod 명령의 -g 옵션을 사용
2. 그룹에 일반 소속된 사용자 목록 변경
1) usermod 명령의 -G 옵션을 사용(가급적 사용 X, 추가가 아니라 덮어쓰기로 적용)
2) gpasswd 명령어 사용
gpasswd
- 그룹의 일반 소속된 사용자 목록 변경
- 형식
gpasswd 옵션 값 그룹명
* 옵션
-a : 값에 사용자명을 입력하여 사용자를 그룹에 일반 소속시킴
-d : 값에 사용자명을 입력하여 그룹의 일반 소속된 사용자 목록에서 특정 사용자 제거
id
- 사용자의 UID, GID, 일반 소속된 그룹의 목록 출력
- 형식
id 사용자명
'Linux' 카테고리의 다른 글
ACL(access control list) (0) | 2022.09.14 |
---|---|
파일 속성&권한 (0) | 2022.09.13 |
Linux 파일 링크, 압축 (0) | 2022.09.09 |
Vi 에디터 정리 (0) | 2022.09.09 |
Linux 기본 명령어 정리 (0) | 2022.09.09 |