Self-Improvement

Linux 명령어(chown, chgrp, chmod, umask, SetUID[GID], StickBit) 본문

리눅스/명령어

Linux 명령어(chown, chgrp, chmod, umask, SetUID[GID], StickBit)

JoGeun 2018. 10. 21. 13:32

*chown (소유자 변환)
 #chown 바꿀 이름 파일 이름
 #chown 소유 이름:그룹 이름 파일 이름 : (소유자랑 그룹을 한 번에 변경 가능)
 #chown .그룹 이름 파일 이름 : (그룹만 바뀜)
 #chown -R 소유 이름:그룹 이름 파일 이름 : (해당 파일 안의 모든 파일들을 변경)

*chgrp
 #chgrp 그룹 이름 파일 이름 : (그룹 바꿈)
 #chgrp -R 그룹 이름 파일 이름 : (파일 안의 모든 파일을 바꿈)

*chmod
 심벌릭 모드 : #chmod u+X 파일 이름
 옥탈 모드   : #chmod 777 파일 이름

 //파일의 rwx 쓰임새
 r : 내용을 읽을 수 있는 권한(cat, vi, cp.. 등)
 w : 내용을 변경 권한
 x : 실행할 수 있는 파일이면 실행 권한

 //디렉터리의 rwx 쓰임새
 r : 디렉터리 안의 목록을 볼 수 있는 권한 (ls.. 등)
 w : 디렉터리 안의 파일을 생성 및 삭제 권한 (mkdir, touch. .. 등) 
 x : 디렉터리 안으로 들어갈 수 있는 권한 (cd ...등 )
 //x가 있어야지만 w를 행할 수 있다(디렉터리 안으로 들어가야 파일 생성 및 삭제할 수 있음) ex) rw- (x) rwx (o) r-x (o)

*umask
 //기본 권한
 파일 : 666
 디렉터리 : 777 (x 권한이 무조건 들어가 있어야 해서)
 ex) umask 022 ==  파일 : 666 - 022 = 644 , 디렉터리 : 777 - 022 = 755
 
 //umask 전역으로 적용하는 법 (함부로 바꾸면 안 되는 것)
 #vi /etc/bashrc (서버 안의 모든 사용자에게 적용하는 것)
 
*SetUID, SetGID
 #chmod 4xxx 파일 이름 : SetUID 설정
 #chmod 2xxx 파일 이름 : SetGID 설정
 #chmod 6xxx 파일 이름 : SetUID, SetGID 설정
 설정시 소유자의 권한을 가지고 실행이 됨
 SetUID : 파일에만 가능
 SetGID : 파일, 디렉 둘 다 가능

 //대문자 S 일시에는 잘못된 설정
 //bash 쉘 파일에는 줄 수가 없음(백도어로 사용 가능하기 때문)

*Sticky Bit
 #chmod 1xxx 파일 이름 : Sticky Bit
 다른 사용자가 만든 파일을 지울 수 없는 것
 Stick Bit : 디렉에 가능

 //대문자 T 일시에는 잘못된 설정

*SetUID/SetGID/Sticky Bit 관리 (보안상 중요)
 #find / -perm -4000 -ls (SetUID 걸려있는 거 찾기)
 #find / -perm -2000 -ls (SetGID 걸려있는 거 찾기)
 #find / \(-perm -4000 -o -perm -2000 \) -ls (SetUID 와 SetGID 검색하는 거)
 
 //목록화하는 방법
 # find / \( -perm -4000 -o -perm -2000 \) > setuid.txt  (setuid.txt에 저장)
 # find / \( -perm -4000 -o -perm -2000 \) | wc -l > setuid.txt (setuid.txt에 저장하면 몇 줄인지 출력)
 # diff setuid.txt setuid.old.txt  (비교)
 
 //특수 퍼미션 관리 기법
 # chmod 755 /usr/bin/passwd 
 # find /home -type f -perm -4000 -exec rm -f {} \;
yum repository(실습할 때 내부에 서버를 클론으로 떠서 지정했음 집에서 할 때 서버 지정할 때 외부로 지정해야 함 centos 사이트에서)