-
[Linux/Ubuntu] 권한 관리 (파일, 디렉터리의 w 권한 중심으로)네이버클라우드 캠프 | BE/Linux 기초 2023. 4. 26. 13:53728x90
1. 리눅스의 권한 관리
리눅스에서의 권한 관리는 파일이나 디렉터리에 대한 접근 권한을 의미합니다.
권한에는 읽기, 쓰기, 실행이 있으며, 소유자(user), 소유 그룹(group), 일반 사용자(others)로 구분하여 설정할 수 있습니다.
*권한 확인 : ls -l (혹은 ls -al) 명령어를 통해 모든 파일의 권한 확인 가능
2. 권한 표기 방법
리눅스에서는 권한을 나타내기 위해 10자리의 문자열을 사용합니다. 아래의 예시를 통해 확인하도록 하겠습니다.
예시 설명 -rwxrwxrwx - rwx rwx rwx 파일 유형 소유자의 권한 소유 그룹의 권한 일반 사용자의 권한 <파일 유형 (일부)>
- : 일반 파일
d : 디렉터리권한 설명 r 읽기 권한 (파일 : 내용 읽기, 디렉터리 : 디렉터리에 포함된 파일/디렉터리 목록 보기) w 쓰기 권한 (파일 : 생성/삭제/수정, 디렉터리 : 내용 변경) x 실행 권한 (파일 : 읽기 + 실행, 디렉터리 : 목록 보기 + 파일/디렉터리의 실행/접근) - 권한 없음 3. 권한 변경
리눅스에서는 chmod 명령어를 사용해, 파일이나 디렉터리의 권한을 변경할 수 있습니다.
chmod 명령어는 아래와 같은 형식으로 사용합니다.
chmod [옵션] 권한 파일이나 디렉토리
<옵션 예시>
-R : 해당 디렉터리 내 모든 파일 및 하위 디렉터리에 대한 권한도 모두 변경명령어 예시 설명 chmod chmod 750 ~ 홈디렉터리에 대해 user에 rwx, group에 r-x, others에 --- 권한 부여 chmod o=r ~ 홈디렉터리에 대해 other의 read 권한(만) 설정 chmod a-w ~ 홈디렉터리에 대해 모두에게 w 권한 삭제
: 디렉터리에 대한 write이 없으므로, 디렉터리 내 파일 삭제 불가chmod ug+w temp temp에 대해 user와 group의 write 권한 추가 chmod go-r temp temp에 대해 group와 other의 read 권한 삭제 <권한 변경 용어>
a : all
u : user
g : group
o : otherschmod 750 ~
<750의 의미>
첫 번째 자리 7 : r(읽기), w(쓰기), x(실행) 권한 설정
두 번째 자리 5 : r(읽기), x(실행) 권한 설정
세 번째 자리 0 : 권한 미설정
첫 번째 자리는 user, 두 번째 자리는 group, 세 번째 자리는 others의 권한을 설정하는 것이라고 생각하면 됩니다.
r은 2의 2승(4), w는 2의 1승(2), x는 2의 0승(1)+ 파일에 대한 w 권한 vs 디렉터리에 대한 w 권한
아래 그림과 같이 디렉터리와 파일을 설정하여, 실습을 진행했습니다.
(0) 디렉터리 및 파일 생성
mkdir temp // 디렉터리 생성
cd temp // 디렉터리로 이동
touch test.txt // 0byte 파일 생성
ls -al // 디렉터리 내 파일 조회(1) 파일에 대해 w 권한 설정 시, 파일 삭제 여부
파일에 대해 w 권한이 설정되어 있을 경우 삭제할 것인지 되묻지 않고, 바로 삭제합니다.
(2) 파일에 대한 w 권한 미설정 시, 파일 삭제 여부
파일에 대해 w 권한을 설정하지 않을 경우에는 삭제할 것인지 되물으며, n 입력 시에는 삭제되지 않습니다.
만약 되묻는 과정에서 y를 입력한다면, 예상하는 바와 같이 파일이 삭제됩니다.
(3) 디렉터리에 대한 w 권한 미설정 시, 파일 삭제 여부
디렉터리에 대한 w 권한을 설정하지 않을 경우에는 디렉터리 내에 존재하는 어떠한 파일도 삭제할 수 없습니다.
"즉, 디렉터리에 대한 w 권한이 없다면 파일의 w 권한 여부와 상관없이, 디렉터리 내 파일을 삭제할 수 없다.
디렉터리에 대한 w 권한이 있고 파일에 대한 w 권한이 없다면, 삭제 여부를 되묻고 파일을 삭제할 수 있다.
디렉터리에 대한 w 권한이 있고 파일에 대한 w 권한이 있다면, 삭제 여부를 묻지 않고 파일을 삭제할 수 있다."
'네이버클라우드 캠프 | BE > Linux 기초' 카테고리의 다른 글
[Linux] 서버와 root(sudo), 웹 서버와 도메인 설치 (0) 2023.05.01 [Linux/Ubuntu] 백그라운드 프로세스 (0) 2023.04.30 [Linux/Ubuntu] Vi Editor 사용 방법 (Vi 에디터) (0) 2023.04.26 [Linux/Ubuntu] Divide and Conquer : Pipe, Redirect (0) 2023.04.26 [Linux/Ubuntu] 리눅스 용어 (0) 2023.04.25