Linux - 권한(permission)(2)

2021. 8. 1. 00:20Linux

이번 시간에는 전 시간에 이어서 지금까지 배운 권한에 대해 실습 해 보겠습니다.

전 내용을 안보신 분들은 보고 와주시길 바랍니다. Linux - 권한(permission)(1)

 

먼저 keum 사용자로 파일과 디렉터리를 생성하겠습니다. 

 

 

 

 

전 시간에 배운 chmod 접근 권한 변경 명령어로 권한을 부여하며 실습 해보겠습니다.

owner, group, other 모든 권한을 제거해보겠습니다. 또한 파일과 디렉터리를 담고 있는 상위 디렉터리의 권한 또한 모두 제거하겠습니다.  디렉터리파일의 owner인 keum 사용자가 이 상태에서 할 수 있는것이 있는지 확인 해보겠습니다.

* 주의 저희는 지금 연습을 위해 권한을 전부 제거한것입니다. 하지만 이럴경우 무한 로그인 상태가 될 수도 있습니다.

무한 로그인 해결하기

로그인이 무한으로 반복되는 현상을 해결하기 위해서는 다시 권한을 부여하면 됩니다.

이는 저희가 저번에 사용했던 ctrl + alt + f(2~6)으로 콘솔에 접속후 권한을 제 부여후 재 부팅을 하면 해결됩니다.

 

 

chmod -R 옵션을 사용하면 하위 디렉터리와 파일들의 권한 까지 한번에 변경할 수 있습니다.

 

 

이제 keum 사용자로 로그인 한 뒤 연습을 해보겠습니다.

 

keum 사용자로 로그인을 시도 했더니 /home/keum/.bashrc 파일로의 접근이 거부되어 bash-4.2$로 바뀐것을 볼 수 있습니다. 

.bashrc 파일은 일반 사용자의 환경설정 파일입니다.  

로그인에 대한 내용은 나중에 자세히 다루겠지만 지금 간단하게 설명 하겠습니다.

로그인 시 .bashrc 파일을 적용시키고 .bashrc에 의해 /etc/bashrc 파일을 불러드여 적용을 시켜야합니다.

그러므로 .bashrc을 읽을 수 있도록 권한을 바꿔야 사용자로의 로그인이 정상적으로 되는 것입니다.

 

.bashrc 파일을 읽을려면 r 권한이 필요하기 때문에 권한만 부여하면 .bashrc 파일에 접근 할 수 있다고 생각할 수도 있습니다. 하지만 파일을 읽던 열든 수정을 하기 위해선 1차적으로 우선 그 파일을 담고 있는 디렉터리에 x 권한이 필요합니다. 그렇기 때문에 .bashrc를 담고 있는 디렉터리 /home/keum, 즉 keum 홈 디렉터리에 x권한을 부여해주어야 합니다.

 

지금 저희가 연습할 파일과 디렉터리들은 keum 사용자로 생성한 것이기 때문에 파일과 디렉터리들의 소유자와 그룹명은 keum 사용자와 동일한 상태입니다. 그렇기 때문에 owner 부분의 권한만 살펴보면 됩니다.

 

정상적으로 로그인 되는 것을 확인 할 수 있습니다.

keum 홈디렉터리에 x 권한이 있기 때문에 keum 홈디렉터리로 이동을 할 수 있습니다. 하지만 디렉터리 내부 조회를 못하는 것을 볼 수 있습니다. 

 

/home 디렉터리를 조회할 수 있었던 것은 /home 디렉터리의 권한에 r 권한이 있었기 때문입니다.

/home 디렉터리의 소유자와 그룹은 root이며 keum 사용자와 uid명과 gid명 둘다 다르기 때문에 other에 대한 권한 부분을 확인 해야 합니다. r-x : 디렉터리를 조회 할 수 있고 디렉터리로 이동 또한 가능하게 해줍니다.

그럼 이와 같이 keum 홈디렉터리를 조회하기 위해서는 /home/keum 디렉터리의 owner에 대한 권한에 r권한을 부여해주면 됩니다.

 

이번에는 파일과 디렉터리에 권한을 부여해보겠습니다.

우선 이와 같이 읽고 조회할 수 없는 것을 볼 수 있습니다.

 

파일을 읽거나 열수 있도록 하기 위해서는 아까 .bashrc 파일에 부여 했던것처럼 r 권한을 부여 하면 되고 디렉터리로의 이동과 조회를 위해서는 keum 홈디렉터리 처럼 r과 x를 부여 하면 된다고 배웠습니다.

 

이제 다시 시도 해보겠습니다.

 

 

이번엔 파일 내용을 수정 해 보겠습니다.

 

파일에 r 권한밖에 없기 때문에 cat(읽기)와 vi(읽기 전용으로 열기)는 가능하지만 수정은 불가능합니다. 

파일 수정을 해주기 위해서는 w 권한을 부여 해줘야합니다.

파일들한테 w권한을 주고 다시 한번 vi로 열어 수정해보겠습니다.

 

파일을 열고 새로운 내용을 입력, 저장후 종료를 할려고 했으나 다음과 같은 에러들이 나옵니다.

이는 파일을 담고 있는 디렉터리에 w 권한이 없기 때문입니다.

디렉터리의 w 권한 

 

파일을 담고 있는 디렉터리 즉 keum 홈 디렉터리에 w 권한을 부여한뒤 다시 파일을 수정해 보겠습니다.

 

성공적으로 에러 없이 수정 했습니다.

디렉터리의 w 권한은 디렉터리 내부의 파일(디렉터리)들의 생성, 삭제, 이름 변경, 이동을 할 수 있게 해줍니다.

홈 디렉터리의 w 권한을 제거한뒤 연습해보겠습니다.

 

1. 파일과 디렉터리 생성(mkdir, touch) 실패

 

2. 파일과 디렉터리 제거(rm) 실패

 

3. 파일과 디렉터리 이름 변경 및 이동(mv) 실패

 

4. 파일과 디렉터리 복사(cp) 실패

 

이번엔 다시 keum 홈디렉터리에 w 권한을 부여한뒤 1-4 까지 다시 시도 해보겠습니다.

1. 파일과 디렉터리 생성(mkdir, touch) 성공

 

2. 파일과 디렉터리 제거(rm) 성공

 

3. 파일과 디렉터리 이름 변경 및 이동(mv) 성공

 

파일명을 testtxt 에서 testfile로 변경 

file 파일을 dir 디렉터리로 이동

4. 파일과 디렉터리 복사(cp) 성공

 

testfile 파일을 testfile2 이름으로 복사

dir 디렉터리를 dir2 이름으로 복사 (디렉터리는 -r 옵션을 사용합니다.)

 

잘 복사 되었는지 확인 해보겠습니다

 

 

지금까지 파일의 r, w 권한과 디렉터리의 r, w, x 권한에 대해 연습해 보았습니다.

다음시간에는

1. 파일의 x 권한

2. 파일과 디렉터리의 소유자인 keum 사용자가 아닌 다른 사용자가 접근 했을 경우에 대한 권한

3. umask

에 대해 공부 해보겠습니다. 

 

 

 

다음 내용

Linux - 권한(permission)(3)

'Linux' 카테고리의 다른 글

Linux - 패키지 관리 도구 rpm & yum  (0) 2021.08.02
Linux - 권한(permission)(3)  (0) 2021.08.01
Linux - 권한(permission)(1)  (0) 2021.07.31
Linux - 사용자 & 그룹 생성 및 제거  (0) 2021.07.29
리눅스 - 리다이렉션(redirection)  (0) 2021.07.28