< 파일의 접근권한 >
1. 파일이 속한 그룹 명령어 groups
- 사용자명 없으면 자신이 속한 그룹 이름 출력
- 사용자명 있으면 입력한 사용자가 속한 그룹 이름 출력
2. ls -l 결과
- 파일 종류
- : 일반 파일 d : 디렉토리 파일 l : 심볼릭 링크파일 b : 블록장치 특수파일 c : 문자장치 특수파일 s : 통신에 사용되는 특수파일 p : 소켓, 네트워크 통신에 사용되는 특수파일 |
- 위의 실습 예제
l rwxrwxrwx 1 root root 7 4월 9 13:31 bin 파일종류 파일접근권한 하드링크수 파일소유자ID 파일이속한그룹 파일크기 마지막으로 수정된 시간 파일이름 |
< 실습1 >
1. 홈디렉토리 밑에 study 디렉토리 만들고, 그 안에 test 파일 vi로 만들기 (파일 내용은 echo “Hello world”)
mkdir을 이용하여 study 디렉토리를 만든다.
vi로 test파일을 만들고 그 안에 파일 내용을 입력한다.
cat명령어를 이용하여 test파일을 보면 vi에 입력했던 파일 내용을 볼 수 있다.
2. ls –l 로 파일 속성 확인
ls -l로 파일 속성을 확인한다.
현재 test 파일은 일반 파일로 소유자는 읽기와 쓰기가 허가되어 있고 그룹과 기타사용자는 읽기만 허가된 상태이다.
3. chmod 로 권한 변경하기
1)test파일 소유자의 권한에 읽기,쓰기 추가
chmod로 소유자에게 읽기, 쓰기 권한을 추가한 것을 볼 수 있다.
2) 그룹과 기타 사용자에게 쓰기권한 추가
그룹과 기타 사용자는 읽기 권한만 있었는데 chmod로 쓰기 권한을 추가한 것을 볼 수 있다.
( 여러 사용자에게 같은 권한을 추가하는 것은 가능하다. )
3) 모든 권한 제거
chmod로 모든 사용자의 허가권을 제거하여 ----------로 나타나는 것을 볼 수 있다.
4) 소유자에게 읽기,실행권한만 지정
chmod로 소유자에게 읽기, 실행권한만 지정한 것을 볼 수 있다.
( 같은 사용자에게 여러 권한을 지정하는 것은 가능하다. )
5) test 실행
6) 그룹에겐 읽기권한을, 기타에게 쓰기권한만 주고 싶다. 한 번에 될까?
→ chmod는 하나씩밖에 사용을 못하기 때문에 한 번에 안된다.
< 실습2 >
1. chmod 646 test
8진수 646을 2진수로 변환하면 110 100 110이다.
따라서 소유자와 기타 사용자는 읽기와 쓰기 권한이 있고 그룹은 읽기 권한만 있음을 확인할 수 있다.
2. chmod 450 test
8진수 450을 2진수로 변환하면 100 101 000이다.
따라서 소유자는 읽기 권한, 그룹은 읽기와 실행 권한, 기타 사용자는 아무 권한이 없음을 확인할 수 있다.
3. chmod 777 test
8진수 777을 2진수로 변환하면 111 111 111이다.
따라서 모든 사용자가 읽기, 쓰기, 실행 권한이 모두 있음을 확인할 수 있다.
4. chmod 000 test
8진수 000을 2진수로 변환하면 000 000 000이다.
따라서 모든 사용자가 읽기, 쓰기, 실행 권한이 모두 없음을 확인할 수 있다.
5. 소유자에겐 읽기와 실행권한을, 그룹에겐 읽기권한을, 기타에게 쓰기권한만 주고 싶다. 한 번에 될까?
→ chmod는 하나씩밖에 사용을 못하기 때문에 한 번에 안된다.
< 실습3 >
1. swing 계정으로 /home/swing 디렉토리 접근 권한을 700으로 수정
→ apple 계정으로 접근
→ apple계정으로 cd ls 될까?
8진수 700은 2진수로 111 000 000이다.
cd와 ls를 하려면 기타 사용자에게 쓰기 권한을 부여해야한다.
현재 기타 사용자는 쓰기 권한이 없으므로 허가 거부 오류가 난다.
2. apple계정으로 /home/swing 디렉토리 접근권한으로 711로 수정
→ apple 계정으로 cd ls 될까?
기타 사용자는 수정권한이 없으므로 허가 거부 오류가 뜬다. ( 수정권한은 root에만 있음 )
8진수 711은 2진수로 111 001 001이다.
cd와 ls를 하려면 사용자에게 쓰기 권한을 부여해야한다.
현재 기타 사용자는 쓰기 권한이 없으므로 허가 거부 오류가 난다.
3. swing 계정으로 /home/swing 디렉토리 접근권한으로 744로 수정
→ apple 계정으로 cd ls 될까?
8진수 744은 2진수로 111 100 100이다.
cd와 ls를 하려면 사용자에게 쓰기 권한을 부여해야한다.
현재 기타 사용자는 쓰기 권한이 없으므로 허가 거부 오류가 난다.
< setuid >
1. /usr/bin/passwd
패스워드를 변경하는 명령어 실행파일로 /etc/passwd로 접근하여 비밀번호를 변경한다.
2. /etc/passwd
패스워드 보관 파일로 수정은 root만 변경 가능하다.
3. setuid 설정
1) setuid 파일 만들기
touch를 이용하여 setuid 파일을 만든다.
2) chmol로 setuid 설정해주기
- 기호를 이용한 파일접근권한
기호를 이용하여 권한을 부여한다. 소유자에게 setuid 권한이 추가된 것을 볼 수 있다.
대문자 S는 setuid 권한만 있고 실행권한은 없는 것을 의미한다.
- 숫자를 이용한 파일접근권한
숫자를 이용하여 권한을 부여한다. 소유자에게 setuid 권한이 추가된 것을 볼 수 있다.
소문자 s는 setuid 권한과 실행권한이 둘 다 있는 것을 의미한다.
'2020-1 STUDY > Linux Study' 카테고리의 다른 글
Linux Study Week 2 - 3 (0) | 2020.05.18 |
---|---|
Linux Study Week 2 - 2 (0) | 2020.05.18 |
Linux Study Week 1 - 4 (0) | 2020.04.13 |
Linux Study Week 1 - 3 (0) | 2020.04.13 |
Linux Study Week 1 - 2 (0) | 2020.04.13 |