현재 사용자 변경
su - [username]
과 su [username]
다름
>> 차이점 설명
*해당 명령어는 root 권한을 가진 유저만 사용 가능
= wheel 그룹에 속해야 함
사용자 확인
id [username]
본인이면 id
만 해도 가능
사용자 추가
useradd [username]
-p [password]
사용 시 비밀번호 설정 가능
사용자 수정
usermod [username]
-g
기본 그룹 변경 (유저 자신의 그룹)
-G
보조 그룹 변경 (하나의 그룹에만 속함)
-aG
여러 개의 보조 그룹으로 변경 (여러 개의 그룹에 속함)
usermod -G sudo user01
usermod -G wheel user 01
위와 같이 작성하면 user01 은 wheel 에만 속하게 됨
-aG
사용 시 두 그룹에 모두 속할 수 있음
*Group - 파일의 권한을 공유하기 위한 집단 (공통의 목적을 가진 유저들을 모아 관리하기 용이하기 위함)
사용자 삭제
userdel [username]
사용자 추가시 passwd 에 작성됨
tail -4 passwd
등으로 마지막 4줄 정도로 보면 확인 가능
passwd [username]
사용 시 비밀번호 변경 가능
(본인이면 그냥passwd
만 해도 됨)
권한 관리, 왜 필요한가?
멀티 태스킹, 멀티 유저 = 여러 명이 동시에 접속해 작업함
파일에 대한 보호를 위해 각 유저에게 최소 권한만을 줘서 파일 접근에 대한 제약을 줌
확장 권한, 왜 필요한가?
일반 사용자가 변경/실행하지 못하는 파일을 권한을 변경하지 않고 변경/실행할 수 있도록 하기위해 사용함
파일에 대한 권한이 있는 유저의 권한을 임의로 빌려 실행
(유저에게 파일 실행 권한을 주지 않고 대신 실행할 수 있도록 하기 위해 사용)
*확장 권한 = r, w, x 이외의 기능을 사용할 수 있도록 확장된 권한
setuid
* rwsr-xr-x.
에서 s
가 setuid 를 나타냄
일반 유저가 passwd
로 비밀번호 변경을 시도할 때 소유자인 root 권한을 임의로 빌려 shadow 파일에 비밀번호를 추가/변경함
setgid
디렉토리에 setgid 가 설정되어 있다면, 해당 디렉토리에서 파일을 생성했을 때 파일을 생성한 사용자의 기본 그룹이 아닌 setgid 가 설정된 디렉토리의 사용자 그룹으로 설정됨
*drwxr-sr-x.
에서 그룹 퍼미션에 s 가 setgid 를 나타냄
*특정 데몬이 관리하는 디렉토리에 설정하여 사용 (위 그림)
특정 데몬이 관리하는 디렉토리는 사용자 그룹으로 권한 공유함 => 지속적으로 같은 사용자 그룹을 가진 파일 생성할 필요 있음
왜 필요한지에 대해 내가 이해한대로 작성해봄
디렉토리의 사용자 그룹에 속해있는 A 와 B 가 해당 디렉토리에서 각자 파일을 생성할 때 소유자 그룹이 각자의 기본그룹으로 설정되면 권한을 공유할 수 없게 됨
=> 공유 목적으로 해당 디렉토리 사용자 그룹으로 설정한 이유가 없어짐
따라서 파일 생성 시 디렉토리의 사용자 그룹을 상속할 수 있도록 설정할 수 있게 하는게 setgid
디렉토리 소유자 변경
chown [user]:[gruop] 변경 대상
linux22 그룹 (jin, user23 usermod -aG
로 사용자 추가) 으로 변경
jin 과 같은 보조 그룹에 속한 user23 이 파일을 변경하려 해도 소유자가 jin 사용자라 불가한 모습을 볼 수 있음
setgid 설정
chmod g+s [filepath]
설정 후 파일 생성시 파일 소유자 그룹이 디렉토리의 소유자 그룹과 같은 linux22
로 생성되는 것을 확인할 수 있었음
이제 linux22 에 속한 user23 도 해당 디렉토리의 파일에 접근이 가능해짐
*파일 권한에 따른 제약
w, x 권한을 제거하였음
사용자 권한에 x 가 없으면 디렉토리 접근이 안되고 w 가 없으면 파일 생성/변경 이 안됨
sticky bit
drwxrwxrwt.
에서 other 권한에 t 로 sticky bit 나타냄linux2 그룹에 속하지 않는 user22 로 hrl 파일 삭제를 시도했으나 권한이 거부된 것을 확인할 수 있었음
접근 제어 리스트
ACL 설정 명령어
setfacl -m|x [u|g|o|m|d]:[user/groupname]:[rwx] 파일 경로(디렉토리)
*-rw-rwxr--+
가장 마지막에 + 로 ACL 설정 나타냄
ACL 목록 확인
getfacl [파일 경로]
특정 유저에게 권한이 따로 부여된 것을 볼 수 있음
사용자/사용자 그룹이 jin 이여도 user23 이 apple 파일을 수정할 수 있음
+) 추가
g::[rwx]
u::[rwx]
o::[rwx]
setfacl
명령어의 위 옵션은 파일 퍼미션과 같다고 볼 수 있음
ACL 일괄 제거 명령어 setfacl -b [파일 경로]
사용 시 이를 확인 할 수 있는데,
other 권한을 r -> rwx 로 변경한 후 일괄 제거
-> user22 의 권한만 지워지고 other 권한은 그대로 남아있는 것을 확인할 수 있음
이렇게 되면 해당 옵션들은 chmod
로 파일 퍼미션을 조정하는 것과 같게 됨
따라서 ACL 을 설정하는 의미가 없어져 위 문법은 그냥 안쓰는게 바람직하다고 생각함