본문 바로가기

운영체제

[Linux] 리눅스 특수 권한(special permission)

728x90

su : sutitute user  접속 사용자를 전환하는 명령어

- 옵션을 필수로

- 수퍼 유저인 경우 암호X, 일반 유저 암호O

 

# su - 사용자명

접속 사용자가 전환됨 !!

 

빠져나올 땐 exit 하면 하나씩 빠져나와짐(사용자 전환의 반대순서)

 


퍼미션 기본값  

# umask 

0 022 

디렉터리 기본값 777-022 = 755  

파일 기본값 666-022 = 644  

 

 

특수 권한(Special Permission)

시스템 관리의 효율성을 높이기 위해 사용하는 특별한 권한

보안의 취약점이 될 수 있으므로 꼭 필요한 경우가 아니면 사용하지 않는 것이 좋음 

특수 권한 절대 모드 상대 모드
Setuid 2^2 XXX = 4000 u+s
Setgid 2^1 XXX = 2000 g+s
Sticky bit 2^0 XXX = 1000 o+t

 

Setuid (4000 = u+s)

파일을 실행하는 동안 해당 파일의 소유주의 권한으로 실행

일반적인 경우) 사용자의 소유권에 의해 실행권한이 부여

setuid) 사용자가 아닌 파일의 소유주의 권한을 할당 받음

실행 파일에만 설정이 가능 

x가 아닌 s 

 

passwd는 암호화가 되어서 shadow 파일에 저장되어있다. 

=>passwd를 변경 시 shadow가 업데이트

 

 

shadow의 퍼미션(----------) 은 아무것도 없지만 passwd가 특수권한을 가지므로 변경할 때마다 업데이트가 된다

==> -rwsXXXXXXX 실행할 때 소유자의 퍼미션=root 으로 실행

 

 

s 권한을 뺀 상태

 

실행은 되지만 비밀번호 변경내용이 /etc/shadow에 업데이트 되지 않는다

=> s 퍼미션이 없어서 소유자의 퍼미션으로 실행이 되지 않음

 

 

원래대로 복원

chmod u+s /usr/bin/passwd 도 가능

 

 

 

 

Setgid (2000 = g+s)

파일을 실행하는 동안 해당 파일의 소속 그룹 권한으로 실행 => 사용자가 아닌 파일의 소속 그룹 권한으로 할당

파일 및 디렉터리에서 설정 가능 

 

wall : 접속한 다른 사용자에게 보내는 메시지

root에서 wall ~~~ 쓰면 test01에 접속한 상태에서 프롬프트에 출력됨

 

s퍼미션을 뺏으면 root=>test01에 출력되지만 test01=>root는 출력X

 

wall을 사용시에는 소속그룹 tty에 소속이 되어있어야 전송 가능

퍼미션이 2555 일땐 모든 사용자들이 wall 메시지를 사용가능함

tty : 접속한 사용자들은 자동으로 소속

 

 

 

디렉터리에 setgid 가 설정되어 있을때와 없을 때 :

 

[root@localhost ~]# mkdir /setgidtest

[root@localhost ~]# ls -ld /setgidtest/

drwxr-xr-x 2 root root 4096 2021-06-16 11:20 /setgidtest/

 

other는 /setgidtest 디렉터리에 ls(r)/cd(x) 가능

 

touch는 w 

 

w권한이 없으므로 퍼미션 777로 권한을 부여 
파일 생성됨 

 

 

 

setgid 권한을 부여함 
setgid가 있을 때 소유그룹이 바뀌는 것을 볼 수 있다.

 

==파일 생성시 디렉터리의 소유그룹이 그대로 유지!!

 

 

 

[root@localhost ~]# find / -perm -1000 //sticky bit 찾는 명령어 

find: `/proc/4830/task/4830/fd/5': 그런 파일이나 디렉터리가 없습니다

find: `/proc/4830/task/4830/fdinfo/5': 그런 파일이나 디렉터리가 없습니다

find: `/proc/4830/fd/5': 그런 파일이나 디렉터리가 없습니다

find: `/proc/4830/fdinfo/5': 그런 파일이나 디렉터리가 없습니다

/dev/shm

/tmp

/tmp/.ICE-unix

/tmp/VMwareDnD

/tmp/.X11-unix

/var/lib/gdm

/var/lib/gdm/.gconf.path

/var/lib/gdm/.gconf.mandatory

/var/lib/gdm/.gconf.mandatory/%gconf-tree.xml

/var/gdm

/var/spool/cups/tmp

/var/log/gdm

/var/cache/gdm

/var/tmp

 

 

Sticky bit (1000 = o+t)

모든 소유권에 모든 허가권을 부여하지만 삭제는 소유주(파일생성한 사용자)만 가능

디렉터리에 설정함

x나 s가 아닌 t

 

 

 

디렉터리 sticky bit가 설정된 것과 설정되지 않은 것 차이 

 

sticky bit가 설정 X

==> test01로 만든 파일이 test02에서도 파일 삭제가 잘 됨

 

 

sticky bit가 설정된 경우  

==> test01로 만든 파일이 test02에서 삭제가 안됨

 

==> 누구나 만들 수 있지만 삭제는 소유자만 !!!!!

728x90

'운영체제' 카테고리의 다른 글

[Linux] ln - 파일 링크  (0) 2021.06.17
[Linux] 계정과 그룹 관리  (0) 2021.06.16
[Linux] 소유권과 허가권  (0) 2021.06.16
편집기 활용 실습  (0) 2021.06.15
Linux의 vi 편집기  (0) 2021.06.15