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디렉토리의 생성파일 삭제
'IT 기초 공부기록 > Linux' 카테고리의 다른 글
LVM 개념 및 설정 방법 (0) | 2018.09.21 |
---|---|
ACL이용하여 Linux 서버 권한 설정 - setfacl/getfacl (0) | 2018.09.21 |
Linux 사용자 계정 생성/삭제 (CentOS) (0) | 2018.09.21 |
리눅스 심볼릭 링크와 하드 링크 (Linux Symbolic & Hard Link) (0) | 2018.09.21 |
Linux 기본 명령어 (0) | 2018.09.21 |
블로그의 정보
현생이네
현생사는갓생지망생