1.사용자 계정/그룹 생성하기(useradd, groupadd)
우선 su - 명령어를 통해 루트권한으로 시작한다.
동물이라는 그룹에 들어갈 동물들(사용자)을 생성해본다.
useradd dog 를 입력하고 id dog를 입력하면 dog가 생성된걸 볼 수 있다. (uid, gid, groups 확인)
또한, home diretory에 dog diretory가 생성되어있다.
groupadd animal 명령어로 그룹을 만들고 car /etc/group을 쳐보면 animal 그룹이 생성된 걸 볼 수 있다.
그런데 animal 위에 아까 만든 dog가 있는 걸 볼 수 있는데 이는 useradd로 그냥 사용자 계정을 생성하면 자동으로 동일명의 그룹도 생성되는 걸 알 수 있다.
2. 사용자 계정/그룹 삭제하기(userdel, groupdel)
dog 사용자를 삭제하려면 userdel dog를 입력하면 되는데, 이때 home diretory에 있는 dog diretory까지 삭제하고 싶다면 userdel -r dog로 -r 옵션을 사용하면 된다.
마찬가지로 그룹도 groupdel animal 명령어를 통해 삭제하면 된다.
3. 사용자 계정 수정하기(usermod)
1번 상황에서 자동으로 생성된 dog 그룹과 groupadd로 생성한 animal 그룹 두개가 있다고 가정하고
usermod -G animal dog 를 입력한 후 cat /etc/group을 쳐보면 animal 그룹 뒤에 :dog가 붙은 걸 확인할 수 있다.
허나 아직 home directory에 dog 그룹은 dog로 되어있다. 이를 animal로 바꾸려면
chgrp -R animal dog 명령어를 사용해야 하는데 -R 옵션이 있어야 폴더구조 순차적으로 적용된다.
환경설정 관련 파일이 있는 directory인 /etc 내부에서 계정, 그룹 관련 정보를 확인할 수 있다.
(/etc/passwd, /etc/group, /etc/shadow ...)
useradd -g animal -s /bin/bash -c "very fast" -m -d /home/cat cat 처럼 한번에 할 수 있다.
암호 설정은 간단히 passwd 사용자계정명 으로 설정 할 수 있다.
4. /etc/login.defs
more /etc/login.defs 를 입력하면 사용자 계정 관리에 관한 정보들이 무수히 나온다.
예를들어 uid의 최대/최솟값 같은 정보를 설정하는 것이다.
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
chage [-d lastday] [-m mindays] [-M maxdays] [-W warndays] [-I inactive] [-E expiredate] 사용자계정
-d: 패스워드 마지막변경
-m: 패스워드 변경일 최소일
-M: 패스워드 변경일 최대일
-W: 패스워드 만료 경고일
-I: 패스워드 만료후 Inactive 적용일
-E: 만료일
5. root 계정
su(swhich user): root 유저로 변경(암호 입력 필요)
sudo(superuser do): root 권한으로 명령어 실행
visudo: /etc/sudoers 파일을 직접 변경하는 것은 리스키하기 때문에 visudo로 변경한다(문법 체크 지원).
# visudo 예시
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
## Same thing without a password
#%wheel ALL=(ALL) NOPASSWD: ALL
wheel이라는 사전에 정의되어 있는 권한이 있는데 윗줄은 wheel그룹은 모든 명령어를 사용할 수 있다는 의미이며,
아랫줄엔 패스워드 입력 없이 가능하다는 것인데 주석(#)처리 되어있으므로 필요시 주석을 제거해주면 된다.
예를 들어 dog가 비밀번호 없이 모든 명령어를 사용하게 하고 싶다면 주석을 제거하고 dog를 wheel 그룹에 넣어주면 된다.
(usermod -aG wheel dog)
6. 파일 접근제어(출처: https://recipes4dev.tistory.com/175)
아래 세가지 권한을 "파일을 소유한 사용자(u = user)", "특정 그룹(g = group)에 소속된 사용자", "그 외 사용자(o = others)"에 각각 지정해 줄 수 있다.
- 파일에 저장된 데이터를 읽기. (r = read).
- 파일에 데이터를 쓰기. (w = write).
- 파일 실행. (x = execute)
[ example ]
chmod u-w 파일명: 소유자의 쓰기권한을 빼겠다.
chmod g+rx 파일명: 그룹의 읽기, 실행 권한을 넣겠다.
chmod a-r 파일명: 모든 읽기 권한을 빼겠다.