< 파일의 접근권한 > 

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

+ Recent posts