TIL
20231213_TIL
i'm suna
2023. 12. 13. 22:40
사용자와 권한 관련 명령어
- 계정종류 :
- root 유저와 사용자 계정
- 계정 살펴보기 /etc/passwd, /etc/shadow, etc/group
-
더보기- cat /etc/passwd : 사용자 계정 확인
- cat /etc/shadow : 사용자 암호
- cat /etc/group : 사용자 그룹 확인
-
cat /etc/passwd : 사용자 계정 확인 | ||||||
사용자명 | 패스워드 | 계정 UID | 계정 GUI | 이름 | 홈 디렉토리 | 로그인 쉘 |
root | x | 0 | 0 | root | 홈 /root | /bin/bash |
user1 | x | 1000 | 1000 | user1,,, | /home/user1 | /bin/bash |
www-data | x | 33 | 33 | www-data | /var/www | /user/sbin/noolgin |
cat / etc/shadow : 사용자 암호 리눅스(유닉스)의 모든 시간 epoch = 1970년 1월 1일 00:00:00 UTC |
||||||||
사용자명 | 패스워드 | 최종 수정일 |
패스워드 최소 변경일 |
패스워드 최대 사용일 |
패스워드 만료 경고기간 |
패스워드 유예기간 |
계정 만료 기간 |
예약필드 |
root | ! | 18357 | 0 | 99999 | 7 | |||
user1 | $sdfa... | 18357 | 0 | 99999 | 7 | |||
www-data | * | 18357 | 0 | 99999 | 7 | 7 |
- 내 권한(whoami, id)
- 그룹 계정 및 권한(sudoer & sudo)
-
더보기슈퍼유저 (superuser)의 권한을 수행 (do)한다.
권한의 대여 - sudoer (읽기 전용)
sudo visudo슈퍼 유저의 권한을 편집
설정 파일을 통한 변경
- 사용자 권한
- %그룹 권한
설정파일 상세 (비추천)
- 계정명 호스트명 = (실행계정명) 명령어
- user1 ALL=(ALL) / sbin/ifconfig
사용자를 sudo 권한에 추가 (추천)- useradd -aG user1 sudo (Ubuntu)
- useradd -aG user1 wheel (Amazon AMI)
-
- 사용자 생성과 그룹 생성 (adduser, useradd, usermod, deluser, userdel, addgroup, delgroup)
-
더보기사용자 추가(adduser - add user)
adduser [options][--home DIR][--shell SHELL][--disabled-password][--disabled-login]
user
새로운 사용자 추가
사용자 추가(useradd = user add with default (none-dialog방식) / adduser의 아래 레벨 실행파일)
useradd [options] user
사용자 (기본값으로) 추가
- useradd user3 : 사용자 user3추가
- useradd -D : 사용자 생성 기본값 확인
- useradd -D -b/usr : 사용자 기본 홈 디렉토리 /usr로 변경
- useradd -D -s /bin/bash : 사용자 기본 쉘 bash로 변경
- useradd -D -e 2020-12-31 : 사용자 계정 만료일 설정
참고 : 계정 생성시 참조하는 파일들
- /etc/default/useradd
- /etc/login.defs
- /etc/skel/
-
- 파일 권한 다루기 (chmod, chown, chgrp, umask)
- 파일 다루기 상급
- setuid, setgid
- 사용자 암호 정책 변경 / 암호 변경(chage - change age/passwd)
-
더보기chage [option]user 사용자 암호 정책 변경
- chage user2 : 암호정책 변경
- chage -l user2 : 암호정책 확인
- chage -E 2020-12-31 -m 1 -M 90 -W 7 user2
- passwd [option]user : 암호변경
- passwd -l user : 계정잠금
- passwd -u user : 계정잠금 해제
- passwd -S user : 계정상태 확인
- passwd -n <mindays>user : 암호최소기간
- passwd -x <maxdays>user : 암호최대기간
- man passwd
-
- 사용자 삭제 (delusere - delete user)
-
더보기deluser [options]user 사용자 계정 삭제
- deluser user2
- deluser user2 --remove-home
- userdel user2 : 사용자 계정 삭제 (홈삭제)
- userdel -f user2 : 로그인중이더라도 삭제
-
- 그룹생성,삭제 (addgroup = add group, delgroup - delete group)
-
더보기addgroup [options]group
그룹계정 생성
delgroup [options]group
그룹 계정 삭제
-
- 그룹계정 / 사용자 할당(또는 사용자 정보 수정)(usermod - user mod)
-
더보기usermod [options] user
사용자 계정 정보 수정 (moduser 는 없음(interactive방식인...))
사용자를 그룹에 추가
- usermod -c<name change>user2 : 사용자 이름 수정
- usermod -a -G sudo user2 : user2를 sudo그룹에 추가
adduser user2 sudo : user2를 sudo 그룹에 추가
- deluser user2 sudo : user2를 sudo그룹에서 제거 (실행후 결과 번역 오류)
-
- 권한의 대여 - su
-
더보기su [username]
사용자의 권한을 대여 (즉, 사용자로 로그인 한 것과 같은 효과)
언제 사용하느냐? 관리자가 사용자 계정을 관리하고 이슈/장애를 분석 할 때
사용방법 :
1. su user2
user2의 id로 로그인한다.(user2의 pw 필요)
2. su - user2
user2의 id로 로그인한다.(user2의 pw필요, user2의 home 디렉토리 사용)
3. su 혹은 su root
root의 id로 로그인한다.(root의 pw필요. 하지만 우분투는 root 암호 비활성화)
4. sudo su
내 권한을 상승하여 root사용자의 권한으로 로그인한다.(현재 디렉토리 사용)
5. sudo su -
내 권한을 상승하여 root사용자의 권한으로 홈디렉토리 사용(root의 home)
6. sudo su - user2
user2 사용자 권한으로 홈 디렉토리 사용(sudoer(user1)의 pw필요, user2의 home)
-
- 파일의 생성 권한(umask - user mask)
-
더보기파일/디렉토리 생성 권한의 확인
소유자(user) / 그룹(group) / 모든 사용자(other)- 리눅스의 기폰파일권한 : 666
- 리눅스의 기본 디렉토리 권한 : 777
이 말은, umask가 0일 경우 새로 생성되는 파일의 권한은 666(rw-rw-rw-)을 갖게 됨
디렉토리 권한은 777(rwxrwxrwx)을 갖게 됨
여기서,umask가 2(혹은 0002)일경우에는 파일 기본권한 666에서 002를 빼면
- 110 110 110 = 666
- 000 000 010 = 002
- 110 110 100 = 664, 즉 rw-rw-r--로 생성됨
디렉토리 기본권한 777에서 002를 빼면
- 111 111 111 = 777
- 000 000 010 = 002
- 111 111 101 = 775, 즉 rwxrwxr-x로 생성 됨
-
- 파일의 권한 - 권한 변경 (chmod - change mode)
-
더보기chmod[OPTION]...[MODE]...file
파일/디렉토리 권한의 변경
소유자(user)/그룹(group)/모든 사용자(other)
- chmod 777 hello.txt : 숫자값을 통한 user/group/other에 rwx권한부여
- chmod 700 hello.txt : 숫자값을 통햔 user에 rwx권한 부여(group/other에는 ---권한 부여)
- chmod u+x hello.txt :user에 x(실행)권한 추가
- chmod u-x hello.txt : user에 x(실행)권한 삭제
- chmod +x hello.txt :user/group/other에 x(실행)권한 추가
-
- 파일의 권한 - 소유권 변경(chown - change owner, chgrp- change group)
-
더보기chown [OPTION]...[USER][:GROUP] FILE...
파일/디렉토리의 소유자/그룹 변경
chgrp[OPTION]...[GROUP] FILE...
파일/디렉토리의 그룹 변경
소유자(User)/그룹(Group)/모든사용자(Other)
- chown user2 hello.txt : 해당 파일(hello.txt)의 소유자를 user2로 변경
- chown user2:user2 hello.txt : 해당파일(hello.txt)의 소유자와 그룹을 모두 user2로 변경
- chown :user2 hello.txt : 해당 파일(hello.txt)의 그룹을 user2 로변경
-
- 파일의 특수 실행 권한(setuid, setgid, sticky bit)
-
더보기파일의 권한을 일시적으로 소유주(setuid)혹은 소유그룹(setgid)의 권한으로 빌려서 실행함
Sticky
-