반응형
- 소유권(Ownership) 관련 명령어
[chown]
- 파일과 디렉터리의 사용자 소유권과 그룹 소유권을 변경
- 형식 : #chown [옵션] 소유자[:그룹명] 파일명
- -R : 하위 디렉터리를 포함하여 디렉터리 내부의 모든 파일의 소유권 변경
[chgrp]
- change group을 줄인 명령어로 파일이나 디렉터리의 그룹 소유권을 변경
- chown은 소유자와 소유 그룹을 모두 변경할 수 있지만 chgrp는 그룹 소유권만 변경할 수 있다
- 형식 : #chgrp [옵션] 그룹명 파일명
- -R : 하위 디렉터리를 포함하여 디렉터리 내부의 모든 파일의 그룹 소유권 변경
2. 허가권(permission)과 관련된 명령어
- ls -l로 파일 유형과 허가권을 알 수 있다
- 파일 허가권의 첫 번째 자리는 파일 유형을 기호로 나타낸다
- 파일은 일반 파일, 디렉터리 파일, 특수 파일로 나뉜다
- 명령어 ls -l /dev를 실행하면 파일 유형이 b나 c인 파일들을 확인할 수 있다.
|
기호
|
파일 유형
|
|
|
-
|
일반파일
|
|
|
d
|
디렉터리 파일
|
|
|
특
수 파 일 |
b
|
|
|
c
|
|
|
|
l
|
|
|
|
p
|
파이프
|
|
|
s
|
소켓
|
|
- 파일 허가권의 두 번째 자리에서 열 번째 자리는 파일 접근 권한을 정의한다.
- 리눅스는 사용자별로 파일 권한을 부여한다.
- 파일 사용자는 파일 소유자(owner), 그룹 소속자(group), 기타 사용자(others 또는 public)으로 구분한다
- 파일 권한을 읽기(read), 쓰기(write), 실행(execute)이 있다
- 읽기, 쓰기 또는 실행의 접근 제한 표시는 하이픈(-)으로 나타낸다
- 사용자별 권한은 기호 모드(symbolic mode) 또는 8진수 숫자 모드(numeric mode)로 표시 한다
- r(4), w(2), x(1)
|
|
일반 파일
|
디렉터리 파일
|
특수 파일
|
|
읽기(r)
|
파일 내용 읽기
|
디렉터리 내 파일 목록 읽기
|
read()로 파일 읽기
|
|
쓰기(w)
|
파일 수정/삭제
|
디렉터리 내 파일 생성/삭제 기능
|
write()로 파일 내용 변경
|
|
실행(x)
|
파일 실행
|
cd 명령을 이용하여 디렉터리로 이동 가능
|
권한 의미 없음
|
[chmod]
- 파일이나 디렉터리의 접근 허가권을 변경하는 명령어이다
- 형식 : #chmod [옵션] 파일명
- -R : 하위 디렉터리에 포함되어 있는 모든 디렉터리 및 파일의 권한 변경
- 권한 변경은 숫자 or 기호로 변경할 수 있다
|
기호 모드
|
의미
|
|
|
사용자
|
u
|
소유자
|
|
g
|
그룹
|
|
|
o
|
기타 사용자
|
|
|
a
|
모든 사용자
|
|
|
연산자
|
+
|
허가권 부여
|
|
-
|
허가권 제거
|
|
|
=
|
특정 사용자에게 허가권 지정
|
|
|
권한
|
r
|
읽기
|
|
w
|
쓰기
|
|
|
x
|
실행
|
|
[umask]
- 명령어 umask는 새로 생성되는 파일이나 디렉터리의 기본 허가권 값을 지정한다
- 파일의 기본 권한은 666, 디렉터리의 기본 권한은 777 이다.
- 명령어 umask는 디폴트 권한 값을 변경한다
- 형식 : umask[옵션][값]
- - S : umask 값을 문자로 표기
- 파일이나 디렉터리 생성 시 디폴트 권한 값에서 설정한 umask 값을 뺀 값을 기본 허가권을 설정한다
- 예를 들어, umask가 022인 경우 디폴트 파일 권한은 644(666-022), 디폴트 디렉터리 권한은 755(777-022)로 변경된다
3. 특수 권한
[SetUID와 SetGID]
- 프로세스가 실행되는 동안 해당 프로세스의 root 권한을 임시로 가져오는 기능이다
- 프로세스가 사용자보다 높은 수준의 접근을 요구할 때 파일 접근 제한으로 인해 원활한 기능을 제공할 수 없기 때문에 이러한 문제점을 해결하기 위한 방법이다
- SetUID의 경우 사용자가 사용할 때만 소유자 권한으로 파일을 실행시키고, SetGID의 경우 사용자가 사용할 때만 그룹 권한으로 파일을 실행한다
- SetUID는 프로그램을 실행하는 동안 프로세스는 파일의 소유자과 같은 권한으로 실행된다
- SetGID는 프로그램을 실행하는 동안 프로세스는 파일의 그룹과 같은 권한으로 실행된다
- SetGID 권한이 명시된 디렉터리에 생성되는 모든 하위 디렉터리나 파일도 SetGID 권한을 가진다
- 특수 권한의 절대적인 표기 방법은 4자리로 나타낸다
|
|
코드
|
절대값
|
설명
|
|
SetUID
|
s
|
4000
|
프로세스 실행 당시 UID로 설정
|
|
SetGID
|
s
|
2000
|
프로세스 실행 당시 GID로 설정
|
|
Sticky bit
|
t
|
1000
|
실행 후에도 메모리를 점유하도록 설정
|
- SetUID 소문자 s와 대문자S
- 실행 파일에 setuid를 설정하면 소문자s가 되고 정상적으로 실행할 수 있다
- 실행 파일이 아닌데 setuid를 설정하면 대문자S가 되고 실행할 수 없다
[Sticky bit]
- 일반적으로 공용 디렉터리를 사용할 때 sticky bit를 설정하여 사용한다
- sticky bit가 설정되어 있는 디렉터리 안의 내용은 해당 파일의 소유자나 root만이 변경이 가능하게 하여 공용 디렉터리라도 권한에 제약을 두어 다른 사용자들의 파일을 보호하기 위한 목적으로 만든 것이다
- 사용자 권한을 지정하기 어려운 프로그램들이 일시적으로 특정 디렉터리에 파일을 생성하고 삭제하도록 이용된다
- 특정 응용 프로그램이 다른 응용 프로그램에서 생성한 파일을 삭제하지 못하는 권한 설정을 한다
- 설정된 디렉터리에는 누구든 접근 가능하고 파일을 생성할 수 있다
- 생성된 sticky bit 파일을 삭제 시에는 소유자(파일 생성자)와 관리자만 지울 수 있다. 다른 사용자는 자신의 소유가 아닌 파일을 삭제할 수 없다
- sticky bit가 적용된 디렉터리 내에 파일을 생성하는 것은 누구나 가능하지만 삭제는 생성자 본인과 관리자만 가능하다
- 일반적으로 sticky bit로 설정되는 디렉터리는 /tmp 안에 생성한다.
4. 디스크 쿼터
- 파일 시스템마다 사용자나 그룹이 생성할 수 있는 파일의 용량 및 개수를 제한하는 것이다. 보통 블록 단위의 용량 제한과 inode의 개수를 제한한다
- 사용자나 그룹이 가질 수 있는 inode의 수, 사용자나 그룹에게 할당된 디스크 블록 수를 제한한다
- 쿼터는 사용자별, 파일 시스템별로 동작된다
- 그룹 단위로도 용량을 제한할 수 있으며 웹호스팅 서비스를 하는 경우에 유용하다
[1단계]
- 파일 /etc/fstab에 디스크 쿼터 관련 설정
|
옵션
|
적용 대상
|
설명
|
|
quota
|
fsfold, vfsv0
|
사용자 할당량 사용
|
|
gquota
|
xfs
|
그룹 할당량 사용
|
|
usrquota
|
모든 유형
|
사용자 할당량 사용
|
|
grpquota
|
모든 유형
|
그룹 할당량 사용
|
|
usrjquota=파일명
|
vfsv0
|
|
|
grpjquota=파일명
|
vfsv0
|
|
|
jpfmt=format
|
vfsv0
|
|
[2단계]
- 재마운팅(remounting) 실행 후 확인
- mount -o remount /QUOTA
[3단계]
- 마운트된 쿼터를 끄고 생성된 파일 삭제
- quotaoff -augp : 디스크 쿼터 기능 해제
- quotacheck -augmn : 파일 시스템의 쿼터 관련 점검
- rm -rf aquota.* : 생성된 쿼터 파일 삭제
[4단계]
- 쿼터 데이터베이스 생성
- touch aquota.user aquota.group : 디스크 쿼터 파일 생성 후 권한 설정
- quotaon -avug : 쿼터 관련 점검 후 쿼터 서비스 개시
[5단계]
- 사용자별 쿼터 지정
|
필드
|
설명
|
|
|
Filesystem
|
사용자별 쿼터는 할당하는 파일 시스템
|
|
|
blocks
|
|
|
|
soft
|
|
|
|
hard
|
|
|
|
inodes
|
현재 사용자가 사용하는 inode(파일과 디렉터리) 개수
|
|
|
soft
|
사용자에게 지정된 파일과 디렉터리 생성 개수
|
|
- 유예 기간(grace period)
- 사용자의 사용량이 soft limit 용량을 넘은 후부터 적용되는 시작 제한이다
- 시간은 sec(onds), min(utes), hour(s), day(s), week(s), month(s) 단위이다
- edquota -t 명령을 실행하면 유예 기간을 보거나 수정할 수 있다
[6단계]
- 쿼터 현재 상황 점검
- used : 현재 사용량
- soft : 현재 설정된 soft limit
- hard : 현재 설정된 hard limit
- grace : soft limit에 지정된 용량 초과 시 남은 유예기간 표시
[디스크 쿼터 관련 명령어]
- quotaoff : 쿼터 서비스를 비활성화한다
- -a : 파티션 정보 출력
- -u : 사용자 쿼터 비활성화
- -g : 그룹 쿼터 비활성화
- -v : 메시지 출력
- quotacheck : 파일 시스템의 디스크 사용 상태를 검색한다
- -a : 모든 파일 시스템을 체크(all)
- -u : 사용자 쿼터 관련 체크(user)
- -g : 그룹 쿼터 관련 체크(group)
- -m : 재마운트를 생략(no-remount)
- -n : 첫 번째 검색된 것을 사용(use-frist)
- -p : 처리 결과를 출력(print-state)
- -v : 파일 시스템의 상태를 보여줌(verse)
- edquota : 편집기를 이용하여 사용자나 그룹에 디스크 사용량을 할당하는 명령어이다
- 형식 : #edquota [옵션] [계정명 또는 그룹명]
- -u : 사용자 디스크 할당량 설정
- -g : 그룹 디스크 할당량 설정
- -t : 디스크 할당량 유예기간 설정
- -p : 디스크 할당량 설정을 다른 사용자와 동일하게 설정
- setquota : 편집기가 기반이 아닌 명령행에서 직접 사용자나 그룹에 디스크 사용량을 할당하는 명령어이다
- -u : 사용자 디스크 할당량 설정
- -g : 그룹 디스크 할당량 설정
- -a : 해당 시스템의 모든 설정
- -t : 유예기간을 초(sec) 단위로 설정
반응형
'Linux' 카테고리의 다른 글
| [Linux] 부트로더와 GRUB (1) | 2024.12.08 |
|---|---|
| [Linux] RAID (0) | 2024.12.08 |
| [Linux] 파티션의 특징과 종류 (0) | 2024.12.08 |
| [Linux] 디렉터리 별 저장 내용 (0) | 2024.11.14 |