-rw-r--r-- 1 root root 223 12월 7 21:37 /etc/hosts
- : 파일의 종류(- : 일반 파일, d : 디렉토리)rw-r--r-- : 접근 권한 표시
change 와 modify 의 차이?| 권한 | 파일 | 디렉토리 |
|---|---|---|
| 읽기 (read) | 파일을 읽거나 복사할 수 있다. | ls 명령으로 디렉토리 명령 확인(ls 명령의 옵션은 실행권한이 있어야 사용할 수 있다.) |
| 쓰기 (write) | 파일을 수정, 이동, 삭제할 수 있다(디렉토리에 쓰기 권한이 있어야 한다.) | 파일을 생성하거나 삭제할 수 있다. |
| 실행 (excute) | 파일을 실행할 수 있다.(셸 스크립트나 실행 파일의 경우) | cd 명령을 사용할 수 있다. 파일을 디렉토리로 이동하거나 복사할 수 있다. |
-rw-r--r-- 1 root root 223 12월 7 21:37 /etc/hosts
rw-: 소유자 root 가 read 와 write 권한이 있다r-- : 그룹에 속한 유저들은 이 파일에 대해서 read 권한만 있다r-- : 기타 사용자 다른 사람들은 이 파일에 대해서 read 권한만 있다u1 의 cat 명령어 실행은 read 권한이 있어야 출력을 할 수 있는데 누구의 권한에 의해서 cat 이 동작하는지?
- u1 이라는 유저가 어떤 그룹에 속해있는지에 따라 달라진다. 만약 소유자가 아닌 root 라고 하는 그룹안에 사용자 리스트에 속해 있다면 그룹 사용자의 read 권한으로 cat 명령어를 수행한다고 볼 수 있다.
chmodchmod [옵션] 권한 파일 (디렉토리)-R : 하위 디렉토리까지 모두 변경 가능chmod 의 기호모드 : 사용자 카테고리 문자, 연산자 기호, 접근 권한 문자
| 구분 | 문자/기호 | 의미 |
|---|---|---|
| u | 파일 소유자 | |
| 사용자 카테고리 문자 | g | 파일 소유자 그룹 |
| o | 소유자와 그룹 이외의 기타 사용자 | |
| a | 전체 사용자 | |
| + | 권한 부여 | |
| 연산자 기호 | - | 권한 제거 |
| = | 접근 권한 설정 (아예 바꾸겠다) | |
| r | 읽기 권한 | |
| 접근 권한 문자 | w | 쓰기 권한 |
| x | 실행 권한 |
ex) u-rwx : 파일 소유자에 대해서 r w x 권한을 를 뺴겠다
| 권한 표기 | 의미 |
|---|---|
| u+x | 소유자(u)에게 쓰기(w) 권한 부여(+) |
| o-r | 기타 사용자(o)의 읽기(r) 권한 제거(-) |
| +wx | 모든 사용자에게 쓰기(w) 와 실행(x) 권한 부여(+) |
| go=rwx | 그룹(g) 과 기타 사용자(o) 에게 읽기,쓰기,실행 권한부여(=) |
| u+x, go+w | 소유자(u) 에게 실행(x) 권한을 부여하고(+) 그룹(g) 과 기타 사용자(o) 에게 쓰기(w) 권한 부여(+) |

chmod [0~7] [0~7] [0~7] 파일명
chmod 444 text.txt # 소유자 그룹, 기타 모두 read 권한

-rw-rw-r--drwxrwxr-xumaskumask [옵션] [마스크 값]-S : 마스크 값을 문자로 출력한다.
- 만들고 나서 바꾸려면 chmod 로 작성해야하고 처음부터 umask 값을 설정해두면 이후 파일을 생성할 때
접근 권한이 파일이든 디렉토리든 최대권한에서 내가 설정한 umask 만큼 뺸값이 적용되어 파일, 디렉토리가 생성되는것이다
rw-rw-rw- rwxrwxrwx
마스크 값의 의미
| 마스크 값 | 일반 파일 | 디렉토리 | 의미 |
|---|---|---|---|
| 022 | 644 | 755 | 그룹과 기타 사용자는 읽기만 가능하다. |
| 077 | 600 | 700 | 그룹과 기타 사용자의 접근 권한을 모두 제거한다. |
| 027 | 640 | 750 | 그룹은 읽기와 실행만 가능하고 기타 사용자의 접근 권한을 모두 제거한다. |
touch set.exe
chmod 755 set.exe # 실행 권한을 부여
ls -l set.exe
# 결과 : -rwxr-xr-x 1 user1 user1 0 12월 12 16:46 set.exe
# SetUID 설정
chmod 4755 set.exe
ls -l set.exe # 소유자 rws
# 결과 : -rwsr-xr-x 1 user1 user1 0 12월 12 16:46 set.exe
ls -l /usr/bin/passwd
# 결과 : -rwsr-xr-x 1 root root 59976 6월 18 04:35 /usr/bin/passwd
/etc/shadoww 라는 파일에 내가 passwd 라는 명령어를 통해서 변경한 비밀번호의 값을 저장할 수 있다
그렇다면 내가 shadoww 파일을 vi 로 열어서 수정할 수 있을까? 불가능
chsh 라는 명령어를 통해 bash 쉘이 로그인 쉘로 바뀌어 지게 되고 그 정보가 /etc/passwd 라는 파일에 저장되는데
/etc/passwd 또는 /etc/shadow 라는 파일의 권한은 -rwsr-xr-x 이다. 따라서 일반 유저들은 그룹에 대한 접근 권한인 r 과 x 만 있기 떄문에 읽고 실행시킬 순 있지만 수정이 불가
-rws 가 붙어있는 파일 : u1 이 실행파일을 시키면 u1 이 실행을 시켜도 이 실행파일이 root 권한으로 실행이 된다
chmod 2775 set.exe
ls -l set.exe # 그룹 r-s
# 결과 : -rwxr-sr-x 1 user1 user1 0 12월 12 16:46 set.exe
ls -ld /tmp
# 결과 : drwxrwxrwt 19 root root 4096 12월 12 16:18 /tmp
chmod 1775 temp
ls -ld temp # others : rwt
# 결과 : drwxrwxr-t 2 user1 user1 4096 12월 12 16:44 /tmp
tmp 라는 디렉토리는 누구나 다 접근을 해서 rwx 가 가능.
그렇지만 tmp 라는 파일은 다른 사람이 만든것은 w 할 수 없다.
- 내가 쓴것은 나만 지울 수있고 다른 사람은 읽을 수 만 있다 -> 그렇게 하기 위해서 스티키 비트를 설정한다.
1) text.txt 파일의 현재 접근 권한이 다음과 같다. 여기서 사용자와 그룹에 실행 권한을 부여하기 위한 명령으로 맞지 않은 것은 무엇인가?
-r--r--r-- 1 user1 user1 223 7월 10 17:41 test.txt
정답 : 4번
2) text.txt 파일의 접근 권한을 소유자는 읽을 수만 있고, 그룹과 기타 사용자에게는 아무 권한도 주지 않으려 한다. 이를 숫자 모드로 바르게 수행한 것은 무엇인가?
정답 : 3번
3) 현재 umask 값이 022다. 이 상태에서 a.txt 파일과 linux 디렉터리를 생성했다. 이들의 접근 권한은 어떻게 생성되는가?
정답 : 2번
4) 리눅스는 사용자를 세 카테고리로 구분한다. 이 카테고리에 해당하지 않는 것은 무엇인가?
정답 : 3번
5) 다음 중 파일의 속성은 어떤 명령으로 확인할 수 있는가?
정답 : 4번
6) 다음 접근 권한을 숫자로 표기하시오.
rwxr-xr-x
정답 : 755
7) 파일의 접근 권한을 확인했더니 ‘rwsr-xr-x'이었다. s가 의미하는 것은 무엇인가?
정답 : SetUID : 그 해당 파일을 실행하면 그 파일이 실행되는 동안에는 소유자의 권한으로 실행된다.
8) /bin 디렉터리에서 SetUID가 설정된 명령의 예를 세 개만 제시하시오.
정답 : /bin/passwd, /bin/su, /bin/sudo