끄적끄적 아무기록

chown/chmod 명령어 사용하여 Linux 권한 설정

by 현생사는갓생지망생
반응형

Linux 권한

 

파일이나 디렉토리를 하나 생성해보자.

 d : directory
 - : file
 l : link
rwx
소유주 권한
rwx
그룹 권한
rwx
other 권한 
하드링크 수
(1 : 자기자신뿐) 
소유주 그룹  용량  마지막
수정 시간 

 

파일/디렉토리의 권한은 chmod 명령어로 변경이 가능하다.

u : 소유자, g : 그룹, o : other

+ 또는 - 를 이용하여 권한을 주기도 하고 빼기도 한다.

a 은 all(모두) 라는 뜻이다.

 

권한 변경은 8진수 표현으로도 가능하다.

r        w        x

4        2        1

읽기    쓰기    실행

 

읽기,쓰기,실행 모두 준다면 4+2+1=7 을 주면 된다.

ex. chmod 766 a.txt

ex. chmod -R 옵션을 사용 : 하위 디렉토리 권한까지 모두 변경

 

stat 명령어는 보안에서 많이 쓰는 명령어이다.

파일이나 디렉터리에 접근하거나 수정, 변경한 날짜와 시간이 나오기 때문이다.

 

Modify : 파일이 마지막으로 수정된 시간 (내용 수정)

Access : 파일을 마지막으로 읽은 시간

Change : 파일의 메타 데이터가 마지막으로 변경된 시간 (ex. 권한 변경)

 

예를 들어

cat >> a.txt 명령어로 a.txt의 내용을 수정한다면?

Modify, Change 시간이 바뀐다.

 

단순히 cat a.txt 명령어로 안의 내용을 보기만 한다면?

Access 의 시간이 바뀐다.

 

또, chmod 755 a.txt 와 같은 명령어로 권한을 변경해준다면?

Change 시간이 바뀌는 것을 확인할 수 있다.

 

리눅스는 파일과 디렉토리의 기본 권한은

파일 : 644, 디렉토리 : 755 로 정해져있다.

바로 umask 가 설정되어 있기 때문인데, umask는 /etc/login.defs 에서 확인 및 변경이 가능하다.

umask 명령어로도 변경 가능한데, 기본 설정은 /etc/login.defs 에 있기 때문에 유지되진 않는다.

 

umask 기본 설정 0022

파일 : 666-022=644

디렉토리 : 777-022=755

 

0022인 이유는 첫 숫자는 특수권한 자리이기 때문이다.

SetUID : 해당권한이 설정된 파일을 실행하는 동안은 해당 소유주의 권한으로 실해되는 파일, 4000

SetGID : 파일을 실행하는 동안은 그룹의 권한으로 실행, 2000

Sticky Bit : 해당 권한이 설정된 디렉토리에서는 파일을 생성한 자만이 삭제 가능, 1000

 

SetUID 가 설정된 대표적인 파일은 /usr/bin/passwd 이다.

권한 부분을 보면 소유자의 x권한 자리가 s로 표시된 것 볼 수 있다.

StickyBit 의 대표적인 예로는 /tmp 디렉토리가 있다.

other의 x권한 자리가 t로 표시되어있다.

 

소유자와 그룹도 변경이 가능하다. chown 명령어.

ex.

chown a. [f/d] : 소유자와 그룹 모두 a로 변경

chown .b [f/d] : 그룹만 b로 변경

chown root.root [f/d] : 소유자와 그룹 모두 root로 변경

chown a [f/d] : 소유자만 a로 변경

+

새 창을 열지 않고도 다른 사용자로 로그인하는 방법

su - [로그인하고자 하는 계정]

root에서 다른 사용자로 로그인하는 것은 패스워드를 물어보지 않는다.

다시 돌아가는 방법은

su - [돌아갈 계정] 또는 exit

 

파일 및 디렉토리권한 문제 !!


1. /babo/babo1/babo2 디렉토리 한방에 생성

-> mkdir -p /babo/babo1/babo2
2. babo1/a.txt 파일 생성

-> touch /babo/babo1/a.txt
3. 파일 생성 시 권한은 600 이 되게 설정

-> umask 066으로 설정
4. a.txt 의 권한을 소유주는 읽기쓰기실행(u+rwx), 그룹은 읽기(g+r),
기타 사용자 역시 읽기 권한(o+r)으로 설정, 단 8진수 사용금지

-> chmod u+x /babo/babo1/a.txt
5. 소유주,그룹,기타 사용자의 권한에 실행권한을 모두 추가

-> chmod a+x /babo/babo1/a.txt
6. a.txt의 파일의 권한을 파일 생성시 권한으로 변경.
단 한번의 명령어만 사용할것, 역시 8진수 사용금지

-> chmod a-x /babo/babo1/a.txt
7. babo/a 디렉토리 생성

-> mkdir /babo/a
8. 해당 디렉토리 내부에 b.txt라는 파일을 생성.

-> touch /babo/a/b.txt
9. 권한이 문제가 된다면 적절히 조절하세요.
10. b.txt파일의 권한을 소유주는 모든 권한7, 그룹 및 사용자는
읽기 및 실행5만 부여합니다. 단 8진수로 작업할 것.

-> chmod 755 /babo/a/b.txt
11. b.txt파일의 권한을 생성 시 권한으로 환원합니다.

-> chmod 600 /babo/a/b.txt
12. 소유주를 bb로 수정

-> chown bb /babo/a/b.txt

(bb 그룹이 먼저 생성되어야 한다)
13. 그룹을 cc로 수정, 그룹이 없을 시에는 생성합니다.
14. 소유주및 그룹을 root 로 변경합니다.
-> chown .cc /babo/a/b.txt
15. aa로 로그인 하여 tmp 디렉토리에 파일 생성
16. bb로 로그인 하여 tmp 디렉토리의 aa가 작성한 파일 삭제
17. 다시 aa로 로그인 하여 tmp디렉토리의 생성파일 삭제

반응형

블로그의 정보

현생이네

현생사는갓생지망생

활동하기