엔터프라이즈 리눅스 01

AeZan·2023년 9월 11일
0

사용자, 그룹 관리


현재 사용자 변경
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

  • 주로 실행권한이 있는 바이너리 파일 / 스크립트 파일에 사용
  • 보통 파일을 실행한 사용자가 주체가 되어 프로세스가 실행됨 setuid 설정된 파일 실행 시 파일 소유자의 권한으로 프로세스 실행 가능

* rwsr-xr-x. 에서 ssetuid 를 나타냄

일반 유저가 passwd 로 비밀번호 변경을 시도할 때 소유자인 root 권한을 임의로 빌려 shadow 파일에 비밀번호를 추가/변경함

setgid

  • 파일을 소유한 그룹의 권한으로 프로세스를 실행
  • 일반적으로 디렉토리에 설정하여 사용하는 경우 많음

디렉토리에 setgid 가 설정되어 있다면, 해당 디렉토리에서 파일을 생성했을 때 파일을 생성한 사용자의 기본 그룹이 아닌 setgid 가 설정된 디렉토리의 사용자 그룹으로 설정됨

*drwxr-sr-x. 에서 그룹 퍼미션에 ssetgid 를 나타냄

*특정 데몬이 관리하는 디렉토리에 설정하여 사용 (위 그림)
특정 데몬이 관리하는 디렉토리는 사용자 그룹으로 권한 공유함 => 지속적으로 같은 사용자 그룹을 가진 파일 생성할 필요 있음

왜 필요한지에 대해 내가 이해한대로 작성해봄

디렉토리의 사용자 그룹에 속해있는 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

  • root, 파일 소유자만 파일을 삭제할 수 있음
  • drwxrwxrwt. 에서 other 권한에 t 로 sticky bit 나타냄

linux2 그룹에 속하지 않는 user22hrl 파일 삭제를 시도했으나 권한이 거부된 것을 확인할 수 있었음


ACL

접근 제어 리스트

  • 권한을 더 세부적으로 설정하기 위해 등장
  • 파일을 소유한 사용자/사용자 그룹 제외하고, 특정 사용자/그룹에 별도로 권한을 부여함
  • 권한이 부여된 그룹에 속한 사용자의 권한도 제거/상속 설정 가능

ACL 설정 명령어
setfacl -m|x [u|g|o|m|d]:[user/groupname]:[rwx] 파일 경로(디렉토리)

*-rw-rwxr--+ 가장 마지막에 + 로 ACL 설정 나타냄

ACL 목록 확인
getfacl [파일 경로]

특정 유저에게 권한이 따로 부여된 것을 볼 수 있음

사용자/사용자 그룹이 jin 이여도 user23apple 파일을 수정할 수 있음

+) 추가
g::[rwx]
u::[rwx]
o::[rwx]

setfacl 명령어의 위 옵션은 파일 퍼미션과 같다고 볼 수 있음

ACL 일괄 제거 명령어 setfacl -b [파일 경로] 사용 시 이를 확인 할 수 있는데,

other 권한을 r -> rwx 로 변경한 후 일괄 제거
-> user22 의 권한만 지워지고 other 권한은 그대로 남아있는 것을 확인할 수 있음

이렇게 되면 해당 옵션들은 chmod 로 파일 퍼미션을 조정하는 것과 같게 됨
따라서 ACL 을 설정하는 의미가 없어져 위 문법은 그냥 안쓰는게 바람직하다고 생각함

0개의 댓글