[Project_하다]/[Project_공부]
[Linux] 리눅스 권한
브렌쏭
2024. 8. 9. 16:09
Linux Permission
루트유저 / 일반유저 / System유저(관리자)
- 0번 uid가 root
- 1000부터가 일반
- 1~999 사이가 시스템계정을 위한 UID
새 유저, 새 그룹을 리눅스 환경에 추가하는 방법
sudo useradd [username]
: 유저 추가sudo passwd [username]
: 유저 비밀번호 설정sudo usermod -aG [groupname] [username]
: 그룹 추가sudo groupadd [groupname]
: 그룹 추가sudo userdel -r [username]
: 유저 삭제sudo groupdel [groupname]
: 그룹 삭제
$ sudo cat /etc/group # 그룹 정보를 관리
$ sudo cat /etc/shadow # 사용자의 비밀번호와 관련 민감 정보를 관리. root와 shadow 그룹 구성원만 액세스 가능
$ sudo cat /etc/passwd # 사용자 식별과 기본 사용자 관련 설정에 필요한 정보를 제공. 모든 사용자가 접근 가능
$ useradd user02
$ passwd user02 # 이제 관련파일을 확인.
# su user02라는 명령어로 user02로도 접속.
$ sudo userdel user02
$ adduser user03 # 비밀번호, 기본 경로까지 한번에 생성
$ su user03
$ sudo groupadd team1
$ logout
$ sudo visudo # sudo 명령어를 사용할 수 있는 사용자를 설정
chown, chmod, chgrp ..
chown
: 파일의 소유자 변경chmod
: 파일의 권한 변경chgrp
: 파일의 그룹 변경
$ ls -l # 파일의 권한을 확인
$ sudo chown [username]:[groupname] [filename] # 파일의 소유자와 그룹을 변경
$ sudo chmod [mode] [filename] # 파일의 권한을 변경
$ sudo chgrp [groupname] [filename] # 파일의 그룹을 변경
Permission 777, 755, 700
777
: 모든 사용자가 읽기, 쓰기, 실행 가능755
: 소유자는 읽기, 쓰기, 실행 가능, 그룹과 다른 사용자는 읽기, 실행 가능700
: 소유자만 읽기, 쓰기, 실행 가능
$ sudo chmod 777 [filename]
$ sudo chmod 755 [filename]
$ sudo chmod 700 [filename]
r
: 읽기 권한w
: 쓰기 권한x
: 실행 권한s
: setuid, setgid, sticky bitt
: sticky bitu
: 소유자g
: 그룹o
: 다른 사용자a
: 모든 사용자
$ sudo chmod u+s [filename] # setuid
$ sudo chmod g+s [filename] # setgid
$ sudo chmod +t [filename] # sticky bit
rw-r--r--
-> 644
rwxr-xr-x
-> 755
rwx------
-> 700
rwxrwxrwx
-> 777
umask
- 파일이나 디렉토리를 생성할 때 기본 권한을 설정
umask
명령어로 확인 가능
$ umask # 0022
$ umask 0002 # 0022 -> 0002
$ umask 0022 # 0002 -> 0022
ACL(Access Control List)
- 기본 권한 외에 추가적인 권한을 부여
getfacl
,setfacl
명령어로 설정
$ sudo apt-get install acl
$ getfacl [filename]
$ setfacl -m u:[username]:[permission] [filename]
$ setfacl -m g:[groupname]:[permission] [filename]
$ setfacl -m o:[other]:[permission] [filename]
$ setfacl -m m:[mask]:[permission] [filename]
$ setfacl -x [username] [filename]
$ setfacl -b [filename]
SUID, SGID, Sticky Bit
SUID
: 실행 파일의 소유자가 실행 권한을 가지는 것SGID
: 실행 파일의 그룹이 실행 권한을 가지는 것Sticky Bit
: 디렉토리에 쓰기 권한이 있는 사용자만 삭제 가능
$ sudo chmod u+s [filename]
$ sudo chmod g+s [filename]
$ sudo chmod +t [filename]