chmod
접근 권한을 변경하는 명령어
chmod[옵션] Mod,[Mod]... 파일리스트
- -v(--verbose):실행중 상세한 메세지를 출력
- -R(--recursive) : 파일과 디렉토리들을 재귀적으로 찾아가면서 명령을 실행
- Mod : [ugoa]*([-+=]([rwxXst](|[ugo]))+|[-+=][0-7]+ 형식으로 사용
chmod g-r file1.txt #사용자 그룹에 대한 읽기 권한을 제외
chmod u=rw file1.txt #사용자에 대해 읽기 쓰기 권한을 부여
chmod a+rx run.sh #소유자, 소유그룹, 기타 사용자 모두 읽기와 실행권한 부여, 실행 , 권한을 제외하고는 'a'를 사용하지 않아도 동일한 효과
chmod u=rwx,g+rx,o=r run.sh
파일 접근 권한의 표기
이진수 | 팔진수 | 접근권한 |
000 | 0 | --- |
001 | 1 | --x |
010 | 2 | -w- |
011 | 3 | -wx |
100 | 4 | r-- |
101 | 5 | r-x |
110 | 6 | rw- |
111 | 7 | rwx |
777= rwx rwxx rwx
654 = rw-r-xr--
실습
chmod는 Octal 값으로 접근권한 부여 가능
예) chmod 777 run.sh
chmod a=rwx run.sh
팔진수를 사용하지 않고 아래의 명령과 동일한 chmod 작성
chmod 665 run.sh
chmod u=rw, g=rw, o=rx run.sh
umask
파일(디렉토리)가 생성될 때, 파일접근 권한 중 부여하지 말아야 할 것을 나타냄
umask 0022 또는 umask u=rwx,g=rx,o=rx
0 : 팔진수를 나타내기 위한 고정값
0 : 0이면 제한하는 것이 없음
2 : w는 제한해라 010 = write
2 : w는 재한해라 010 = write
파일 생성시 소유자에 대한 접근권한은 제한하는 것이 없음, 소유그룹에서는 쓰기(w)접근 권한 제한함, 기타에게도 쓰기(w)접근 제한함
어떤 명령을 이용하든 파일을 만들었는데 만들 당시에 이 프로그램이 0664 권한을 부여하려고 했다고 가정해봅시다. 이는 rw-rw-r-- 입니다. 이렇게 파일에다가 세팅하고싶다는 것입니다.
만약 umask의 설정값이 0022면은 user는 다 주라는 것이고 group는 write를 빼고, others도 write를 빼라는 것입니다. 그러면 rwxr-xr-x가 됩니다.
rw-rw-r--
rwxr-xr-x
===========
rw-r--r-- 이렇게 됩니다.
실습
새로 생성되는 일반 파일의 접근권한이 rw-rw-r--가 되도록 umask를 설정하고 touch 명령으로 파일을 생성하여 제대로 동작하는지 확인하라
:쉘 및 쉘에서 실행된 명령은 일반 파일 생성시 접근권한을 rw-rw-rw-로 지정하고 디렉토리 생성시에는 rwxrwxrwx로 지정하려고 함
touch 명령은 쉘을 이어받기에 rw 커미션만 주도록 작동을 합니다.
umask 값을 0022로 설정하고 다음 각 명령을 각각 수행한 후 생성된 파일 및 디렉토리의 접근 권한을 확인하라(ls-ld 명령을 사용하여 확인하면 편리함)
$touch file1
$mkdir dir3
여기서 umask 0022는 파일 생성 시 기본 권한이 -rw-r--r--로, 디렉토리 생성 시 기본권한이 drwxr-xr-x로 설정됩니다.
umask를 0033으로 설정하고 아래 명령을 수행한 후 생성된 파일 및 디렉토리의 접근권한을 확인하라
umask 0033을 사용하면 파일은 기본적으로 -rwxr----- 권한으로 생성되고, 디렉토리는 drwxr-x--- 권한으로 생성됩니다.
0033 = rwxr--r-- 입니다. 여기에다가 touch file의 기본 값은 rw-rw-rw-이기 때문에
기타
mkdir-m
디렉토리를 생성하면서 접근권한을 같이 부여할 수 있음
예) mkdir -m 775 public
파일복사(cp)를 하면서 복사본 파일의 변경시간을 원본과 동일하게 유지하려면 -p 옵션을 사용 (cp - p) 그렇지 않으면 복사본은 cp 명령실행 시점의 시간으로 설정됨
실습
1. Normal 사용자로 디렉토리와 파일 생성
2. root 소유의 파일 복사
3. root 사용자로 파일 생성
4. 파일 소유자 확인
5. 파일 소유권 변경
6.본인만 쓰기 권한, 다른 사용자들은 읽기 권한 부여
7. chmod 770과 rwxdrwx---가 같은가?
같은 것
8. chmod 664과 r-xr-xr--가 같은가?
6 = rw- 이므로 같지 않다
4는 r--가 맞음
9. chmod 400과 r--------가 같은가?
맞음
10. chmod 734와 rwxr-xr--가 같은가?
다름
7은 rwx가 맞지만 3은 -wx임, 4는 r--가 맞음
11
a) umask 값을 8진수와 심볼릭 형태로 표시
umask -s 하면 심볼릭으로 가능
b) umask를 077로 설정하고 심볼릭 방식으로 설정
12. root 사용자로 파일 생성, 읽기 권한만 부여
13
a) 일반 사용자로 파일 생성, 읽기 권한만 부여
b) root가 파일을 읽을 수 있는지, 쓸 수 있는지 테스트
14. 그룹에 있는 사람들이 파일을 생성하고 각자 자신의 파일만 삭제할 수 있는 디렉토리 생성
'IT 프로그래밍 > 오픈소스소프트웨어' 카테고리의 다른 글
[오픈소스소프트웨어] chap 9-2 쉘 변수 (0) | 2024.10.14 |
---|---|
[오픈소스소프트웨어] 9.1 쉘 프로그래밍 (0) | 2024.10.13 |
[오픈소스소프트웨어] 7.3 파일 접근 관리 (0) | 2024.10.13 |
[오픈소스소프트웨어] part7-1 (0) | 2024.10.12 |
[오픈소스소프트웨어] part6 사용자 정보 (0) | 2024.10.12 |