상세 컨텐츠

본문 제목

[Linux] 그룹 관리 명령어, ls 명령어, 파일 접근 권한, setuid

운영체제/Linux

by 밍구21 2020. 5. 19. 18:09

본문

부족한 점 있으면 댓글 달아주세요.

 

#그룹 관리 명령어 - groups 사용자

 

 

사용자가 포함된 그룹을 출력할 때 사용하는 명령어이다.

 

위 사진처럼 제대로 된 사용자명을 입력하면 사용자가 포함된 그룹을 알 수 있다.

 


#ls 명령어 

 

 

디렉토리에 있는 디렉토리나 파일을 출력할 때 사용하는 명령어이다.

 

 

#ls 명령어 옵션 -l 

 

 

더 자세한 내용을 출력할 때 사용하는 옵션이다.

 

순서대로 "파일종류 및 파일 접근권한, 포함된 파일수, 소유자, 파일이 속한 그룹, 파일 크기, 최종 수정일, 파일 이름"이다.

ls명령어로 출력했을 때와 같은 디렉토리 및 파일이 출력되지만 더 자세한 내용이 출력됐음을 알 수 있다.

 


 

 

 

위 사진에서 맨 앞부분 파일 종류 및 파일 접근권한 부분만 따온 사진이다.

 

맨 앞 한 글자는 파일 종류를,

뒤 아홉 글자는 파일 접근 권한을 나타낸다.

 

#파일 종류

-  : 일반 파일

d : 디렉토리 파일

l  : 심볼링 링크 파일

b : 블록 장치 특수파일

c : 문자 장치 특수파일

s : 통신에 사용되는 특수파일 

p : 소켓, 네트워크 통신에 사용되는 특수파일

 

#파일 접근 권한

r  : 읽기

w : 쓰기

x  : 실행

-  : 권한 없음

 

2~4번 칸은 사용자의 권한을,

5~7번 칸은 그룹의 권한을,

8~10번 칸은 기타 사용자의 권한을 나타낸다.

 

그러므로 위 사진은 디렉토리 파일이고, 사용자는 읽.쓰.실 모든 권한을, 그룹은 읽.실 권한을, 기타 사용자는 읽.실 권한을 가진다는 걸 나타낸다.

 


#파일 접근 권한 변경 - chmod 모드 파일명

파일 접근 권한을 변경하는 chmod 명령어는 2가지 모드가 있다.

 

1) 기호모드 - chmod 사용자카테고리 연산자 권한 파일명

 

#사용자 카테고리

u: 소유자

g : 그룹

o : 기타 사용자

a : 모든 사용자 (u + g + o)

 

#연산자

+ : 허가권 부여

-  : 허가권 제거

= : 특정 사용자에게 허가권 지정

 

#권한 파일명

r  : 읽기 

w : 쓰기 

x  : 실행 

 

2) 숫자모드 - chmod u g o 파일명

 

u, g , o에게 각각 부여할 권한을 8진수로 표현하는 방법이다.

기호 숫자 (2진수) 숫자 (8진수) 의미
rwx 111 > 4+2+1 7 읽기, 쓰기, 실행
rw- 110 > 4+2+0 6 읽기, 쓰기
r-x 101 > 4+0+1 5 읽기, 실행
r-- 100 > 4+0+0 4 읽기
-wx 011 > 0+2+1 3 쓰기, 실행
-w- 010 > 0+2+0 2 쓰기
--x 001 > 0+0+1 1 실행
--- 000 > 0+0+0 0 권한 없음

 


#특수권한 - setuid

 

 

setuid가 설정된 파일을 실행할 때, 임시로 파일 소유자의 권한을 얻는 명령어이다.

패스워드 보관 파일인 /etc/passwd 정보를 출력했을 때 결과를 보면 우리는 x(실행)가 없기 때문에 우리는 수정을 할 수 없고 소유주인 root만 변경 가능하다. 이렇게 우리가 권한이 없는 파일을 실행할 수 있게 하는 것이 setuid 명령어이다.

 

또 패스워드 변경하는 명령어 실행파일인 /usr/bin/passwd로 접근했을 때 소유자 권한에 x자리에 소문자 s가 있음을 알 수 있다. 이는 파일에 setuid가 설정되어 있다는 뜻이다. 

 

#setuid를 설정해주는 방법

1) 숫자모드 앞에 4 붙여주기

 

 

 chmod 명령어 숫자모드 앞에 4를 붙여 setuid를 설정했다. ls -l을 했을 때 파일명에 빨간색이 칠해져 있으면 setuid설정이 완료된 것이다.

 

2) 기호(u+s) 이용하기

 

 

chmod를 이용해서 setuid1 파일에 u+s를 이용해 setuid권한을 줬다.

관련글 더보기