Passwd 파일에서 사용자 계정만 확인하기
~] # cat /etc/passwd | awk -F: '{if($3>=1000 && $3<=60000)print $0}'
doly:x:1000:1000:doly:/home/doly:/bin/bash
colt357:x:1001:1001:홍길동:/home/colt357:/bin/bash

cat 명령어를 사용하여 /etc/passwd 파일을 표준 출력(stdout)으로 출력하고 파이프(|)를 통해 awk(라인 단위 패턴 스캐닝 및 처리 언어) 명령의 표준 입력(stdin)으로 보낸다. -F 옵션을 사용하여 구분자를 “:”으로 지정한다. “:”으로 구분했을 때 3번째 항목($3)이 1000보다 크고 60000보다 적을 경우 라인의 모든내용($0)을 출력하라는 것이다. 
CentOS7 부터는 기본적으로 UID를 1000에서 60000까지 사용하도록 /etc/login.defs에 설정되어 있다



사용자 추가시 홈 디렉토리에 생성되는 파일
사용자 추가시 생성되는 홈디렉토리에는 다음과 같은 파일들이 생성되어 있을 것이다. 다음은 wyjung
 사용자의 홈디렉토리를 확인해 본 것이다.


~] # ls -Al /home/colt357/
합계 12
-rw-r--r--. 1 colt357 colt357  18  6월 10 13:31 .bash_logout
-rw-r--r--. 1 colt357 colt357 193  6월 10 13:31 .bash_profile
-rw-r--r--. 1 colt357 colt357 231  6월 10 13:31 .bashrc
...
ls 명령어에 -Al옵션을 사용하여 colt357 사용자의 홈디렉토리(/home/colt357/)의 파일 및 디렉토리를 확인하였다. 다음 파일들이 있다.
.bash_logout : 로그아웃 할 때 실행되는 파일이다.
.bash_profile : 로그인시 실행되는 파일이다. 
.bashrc : .bash_profile에 의해 실행되며 주로 alias나 함수등을 설정한다.

위 3개의 파일은 사용자를 추가할 때마다 생성된다. 시스템에 따라 위 3개의 파일보다 더 많은 파일, 디렉토리가 생성될 수 도 있다. 이는 사용자 생성시 기본적으로 복사되는 파일 및 디렉토리이며, /etc/skel/ 디렉토리에 파일 및 디렉토리가 사용된다. 

~] # ls -Al /etc/skel/
합계 12
-rw-r--r--. 1 root root  18  6월 10 13:31 .bash_logout
-rw-r--r--. 1 root root 193  6월 10 13:31 .bash_profile
-rw-r--r--. 1 root root 231  6월 10 13:31 .bashrc
...

위 3개 또는 그 이상의 파일 및 디렉토리를 열어보면 사용자 홈디렉토리에 존재하는 파일과 내용일 동일한 것을 확인할 수 있다.
위 3개의 파일을 수정하면 사용자 생성시 수정된 파일을 복사해 사용하게 될것이다.


계정 정보 확인
~] # chage -l colt357
마지막으로 암호를 바꾼 날                                       : 7월 16, 2014
암호 만료                                       :안함
암호가 비활성화 기간                                    :안함
계정 만료                                               :안함
...
chage 명령어에 -l 옵션을 사용하여 계정 만료일 등을 알 수 있다.

- 계정이 기간 만기되도록 함(E)
~] # usermod 
colt357 -e 2014-09-10
위와 같이 설정하면 wyjung 계정은 2014년 9월 10일에 만료되도록 하는 것이다.
- 계정을 잠금 / 해제
~] # passwd -l 
colt357
colt357 사용자의 비밀 번호 잠금
passwd: 성공
~] # passwd -u 
colt357
colt357 사용자의 비밀 번호 잠금 해제 중
passwd: 성공

위와 같이 passwd 명령어를 사용하여 -l 옵션으로 colt357 사용자를 로그인 못하도록 잠금거나 -u 옵션을 사용하여 해제 할 수 있다.


[비밀번호 보안 정책]
많은 보안 권고사항을 보면 비밀번호는 적어도 3개월에 한번찍 변경하게 하고 있다. 여러 보안 점검에서 사용자 비밀번호를 3개월 마다 변경하게 강제하고 있고 모든 사용자에게 설정해야 한다. 앞에서 설명한 것은 사용자들 마다 비밀번호 강제 변경주기를 설정하였지만 다음과 같이 설정하여 기본적으로 적용할 수 있다.

/etc/login.defs 파일을 열어 다음과 같이 수정한다.

PASS_MAX_DAYS   90
PASS_MIN_DAYS   0
PASS_MIN_LEN    8
PASS_WARN_AGE   7

위 설정에 대한 의미는 다음과 같다.
PASS_MAX_DAYS : 암호를 변경하지 않고 사용할 수 있는 유효기간   기본 값은 99999일이며, 권장은 3개월(약 90일)이다. 
PASS_MIN_DAYS   : 암호를 변경할 수 있는 최소 기간이며   암호는 자주 변경해도 무관하니 제한이 없는 기본값 0으로 둔다.
PASS_MIN_LEN   : 암호 최소 길이이다.   암호 최소 길이는 기본 5자 이상이며, 권장은 8자 이상이다.
PASS_WARN_AGE   : 암호 유효기간이 끝나기 전에 경고 메시지를 보여줄  날수를 설정한다. 기본 7일이며 기본값을 유지한다.

그 밖에 /etc/login.defs 에는 메일관련(메일큐 디렉토리, 메일박스 디렉토리, 메일파일)설정과 사용자 UID범위, 시스템 사용자 UID범위, 그룹 GID범위, 시스템 그룹 GID범위, 사용자 삭제시 실행할 사용자 프로그램 지정, 사용자 생성시 사용자 홈디렉토리 생성 유무 및 UMASK등을 설정할 수 있다. 사용자 삭제시 사용자 그룹의 멤버가 없다면 그룹까지 삭제할지 유무도 여기서 설정한다. /etc/login.defs 파일을 열어보면 위 기능에 대해 상세히 설명되어 있다.

그룹(G) 탭을 확인해 보자.
시스템에 등록된 전체 그룹리스트가 나타나고 원하는 그룹을 선택하여 소속시킬 수 있다. 기본 그룹을 변경할 수 도 있다. 
위 설정을 명령어를 이용한다면 다음과 같이할 수 있다.

사용자가 속한 그룹 확인
다음 명령어로 특정 사용자가 속한 그룹을 확인할 수 있다.

~] # groups colt357
colt357 colt357 superuser

groups 명령어로 사용자가 속한 그룹을 확인하였다.

사용자가 속한 그룹 추가
다음 명령어로 사용자가 속한 그룹을 추가할 수 있다.

~] # usermod -a -G  master  colt357
~] # groups colt357
colt357 colt357 master  superuser

usermod의 -G 옵션을 사용하여 소속 그룹을 설정하였다. 만약 -G 옵션만 준다면 소속된 그룹이 “master"로 변경될 것이다. -a (추가) 옵션을 주어 기존 그룹은 유지하면서 "master"그룹에 추가하도록 한 것이다.


사용자가 속한 그룹 제거
사용자가 속한 그룹에서 특정 그룹만 제거하는 것은 아무리 찾아보아도 옵션을 제공하지 않았다. 다음과 같은 방법으로 제거할 수 있다.


~] # groups colt357
colt357 colt357 master superuser wheel
~] # usermod -G superuser,wheel colt357
~] # groups colt357
colt357 : colt357 superuser wheel

위 예는 groups 명령어를 이용하여 소속된 그룹을 확인하였고 usermod의 -G옵션을 이용하여 사용자의 소속그룹을 재설정한다. groups명령으로 확인한 소속그룹중 제거하고자 하는 그룹만을 빼고 “,”로 구분하여 모두 입력한다. 이러한 방법으로 소속 그룹을 제거할 수 밖에 없다. 

사용자의 기본(primary) 그룹 변경
사용자의 기본그룹은 다음과 같이 변경할 수 있다.

~] # groups colt357
colt357 : colt357 superuser
 ~] # usermod -g master colt357
 ~] # groups colt357
colt357 : master superuser

groups명령어 입력시 처음에 보여주는 것이 기본 그룹이다. 기본그룹을 바꾸기 위해 usermod의 -g 옵션을 사용하여 "master"로 변경하였다. 변경된 기본그룹을 groups 명령어로 확인하고 있다.



 [관리자 권한 전환]

앞에서 리눅스의 사용자 및 그룹을 관리하는 방법을 다루었다. 멀티유저 운영체제는 최고관리자라는 특별한 사용자가 있다. 윈도우즈의 경우는 Administrator이고 리눅스와 유닉스에서는 root를 최고관리자로 사용하고 있다. 
최근에는 보안상의 이유로 root 사용자로의 직접 로그인을 권장하지 않고 일반 사용자로 로그인한 다음 필요시 root권한으로 작업하게 하고 있다. CentOS7의 기본은 다음과 같다.

로컬 로그인 : root 로그인 가능 / 불가는 권장
telnet 로그인 : root 로그인 불가능 / 불가능 권장, telnet 사용 권장하지 않음
ssh 로그인 : root 로그인 가능 / 불가능 권장
ftp 로그인 : root 로그인 불가능 / 불가능 권장

CentOS7의 경우는 로컬 로그인시 root 사용이 가능하지만 최근에 등장하는 리눅스의 경우 기본적으로 로컬 root 로그인을 차단하는 경우가 많다.
보안 설정에서 다루겠지만, ssh의 경우 root 직접 접근을 차단하고 특정 그룹에 소속된 사용자만 ssh 접근이 가능하게 한다.
CentOS7은 설치과정에서 root이외의 관리자계정을 등록한다. 등록된 관리자 계정은 sudo 명령어를 통해 root 권한으로 작업이 가능하다. 이는 sudo 설정파일인 /etc/sudoers 파일에 wheel 그룹은 root 권한으로 모든 작업이 가능하게 설정되어 있고 관리자계정으로 등록된 사용자는 wheel 그룹에 등록되어 있었다. 이는 사용자 추가후 wheel 그룹에 등록을 한다면 sudo 명령어를 통해 root 권한으로 작업을 할 수 있다는 것이다.
앞에서 다루었던 여러 가지 방법으로 사용자를 wheel 그룹에 추가해 보자.

~] # groupmems -g wheel -l
doly
~] # usermod -G wheel wyjung
~] # groupmems -g wheel -l
doly wyjung

groupmems 명령어로 wheel 그룹의 사용자를 확인하고, usermod 명령어로 wyjung사용자를 wheel 그룹에 맴버로 추가하였다. 그리고 다시 groupmems 명령어로 wheel 그룹에 wyjung 사용자가 추가된 것을 확인하였다.


[root 권한으로 명령어 실행]

~] $id
uid=1001(wyjung) gid=1001(wyjung) groups=1001(wyjung),10(wheel) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
~] $ yum install system-config-users
Loaded plugins: fastestmirror, langpacks
You need to be root to perform this command.
~] $ sudo yum install system-config-users
[sudo] password for wyjung: 사용자암호
Loaded plugins: fastestmirror, langpacks
...

위 내용은 id 명령어로 사용자 아이디 및 UID, GUI, 소속된 그룹을 확인하였다. 현재 계정이 wyjung이고 wyjung는 wheel 그룹에 등록되어 있는 것을 확인할 수 있다. yum 명령어로 system-config-users 패키지를 설치하려 했으나 root가 아니면 실행할 수 없다는 메시지를 만나게 된다. 이 때 sudo 명령어를 사용하여 실행하였다. sudo를 사용하여 root권한을 얻기위해 사용자(여기서는 wyjung)의 암호 입력을 요구한다. 이 암호는 한번 입력하면 5분동안 sudo 명령어 입력시 사용자의 암호를 입력하지 않아도 된다. 사용자의 암호를 입력하면 sudo명령어 뒤에 작성한 내용(yum install system-config-users)가 root 권한으로 실행된다. 실행이 끝나면 다시 일반사용자 권한으로 돌아오게 된다.


[root 권한으로 전환 (sudo)]

~] $ sudo -s
[sudo] password for wyjung: 사용자암호입력
wyjung] #

sudo 명령어에 -s 옵션을 주어 실행하게 되면 사용자 암호 입력후 root 권한의 쉘으로 전환된다. 위와 같이 명령어 프롬프트에 "$"표시는 일반 사용자이고, "#" 표시는 root 사용자 프롬프트를 나타낸다.

[root 권한으로 전환 (su)]

~] $ su -
암호: root암호입력
마지막 로그인: 목  7월 17 18:58:04 KST 2014 일시 pts/1
~] #

su 명령어에 - 옵션을 주어 실행하고 root 사용자의 암호를 이력하게되면 root로 사용자로 전환된다. 여기서 - 옵션을 빼고 입력할 경우 root 사용자의 환경변수를 읽어오지 않아 root 전용 명령어를 찾지 못하는 경우가 발생된다. sudo로 전환했을 때와 다른것은 root 사용자로 전환과 동시에 root 사용자의 홈디렉토리로 현재 디렉토리가 바뀐다는 것이다.


[다른 사용자로 전환]

~] $ sudo -s -u doly
[sudo] password for wyjung: 사용자암호입력
wyjung] $ id
uid=1000(doly) gid=1000(doly) groups=1000(doly),10(wheel),1001(wyjung) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023


sudo명령어에 -u 옵션을 사용하여 전환 하고자 하는 사용자를 지정하면 지정된 사용자로 전환할 수 있다. 위 예는 wyjung 사용자가 doly 사용자로 전환한 것이다.
  사용자 전환 후 전환하기 전 사용자로 돌아오기 위해서는 exit를 입력하면 된다.

[디스크 쿼터 설정]

[쿼타(Quota)설정]
쿼타는 디스크의 용량 및 아이노드 수(파일 및 디렉토리 수)를 사용자, 그룹별로 제한하기 위해 사용된다. CentOS 7에서 기본파일시스템으로 제공되는 xfs의 경우 사용자, 그룹뿐만 아니라 프로젝트, 디렉토리별로 제안할 수 있어 유용하게 사용된다. 
홈페이지를 만들어 웹호스팅 서비스에 가입하면 디스크용량을 제한적으로 제공한다. 이 때 쿼타가 사용되는 것이다. 또, 여러 사용자가 파일 저장용도로 서버를 사용할 때 한 사용자가 모든 공간을 사용하지 못하도록 나누기위해 사용된다.


먼저 CentOS 7의 기본 파일시스템인 xfs에서 쿼타 설정에 대해 알아보고, 예전방식의 쿼타에 대해 알아보도록 하자.


[XFS 쿼타(Quota)]
CentOS7부터는 기본파일시스템으로 xfs가 사용된다. xfs에서 제공하는 쿼타는 사용자, 그룹뿐만 아니라 프로젝트, 디렉토리별로 제안할 수 있다. 하지만, 일반적인 쿼타 설정법과는 다르다.
예전방식에서 제공되는 쿼타는 사용자, 그룹을 기준으로 용량 및 파일수를 제안할 수 있었다. 그래서 웹서비스를 제공하기에 불편한점이 있었다. Apache 웹서버의 경우 nobody 또는 daemon 사용자권한으로 작동한다. 웹을 사용하여 파일을 업로드 하는 경우 nobody 또는 daemon 사용자 소유가 되어 쿼타에서 사용되는 용량으로 측정되지 않았다. 이러한 부분을 해결하기 위해 각 사용자의 권한으로 Apache 웹서버를 실행되도록 하였지만, 이는 보안에 취약하였다. xfs 쿼타의 디렉토리별 제한은 이러한 문제를 해결해 준다.

[마운트 옵션 설정 : /etc/fstab]
쿼터를 사용하기 위해서는 파일시스템 마운트 과정에서 옵션을 넣어야 한다. 마운트 옵션은 다음과 같다. 


xfs 쿼타관련 마운트옵션은 제한는 하는 경우와 제한은 하지 않고 모니터링을 위해 사용하는 각 2가지 옵션을 제공한다. 웹호스팅의 경우 제한을 하게되면 웹사이트 장애까지 유발할 수 있어 제한은 하지 않고 모니터링만 하기도 한다. 그룹쿼타와 프로젝트 쿼타는 동시에 사용할 수 없다.

서버 부팅될 때 파일시스템 마운트옵션을 넣기 위해 /etc/fstab에 다음 내용을 추가한다.

/dev/mapper/centos-data /data          xfs     uquota,pquota,defaults      0 0

위 내용은 이미 생성된 /dev/mapper/centos-data 볼륨을 /data 디렉토리에 마운트한다. /dev/mapper/centos-data 볼륨은 xfs 파일시스템으로 포맷되어 있어야 한다. 마운트 옵션으로 사용자쿼타(uquota), 프로젝트쿼타(pquota)옵션을 추가하였다.
/data 디렉토리르 생성하고 /etc/fstab 설정 내역에 따라 마운트 해보자.

~] # mkdir /data
~] # mount /data

만약 이미 마운트가 되어 있다면 다음과 같이 다시 마운트를 한다.

~] # mount -o remount /data

마운된 내용을 확인한다.

~] # mount |grep data
/dev/mapper/centos-data on /data type xfs (rw,relatime,attr2,inode64,usrquota,prjquota)

앞에서 설정한 uquota(usrquota), pquota(prjquota)옵션이 설정된 것을 확인하였다.

[사용자 쿼타 설정]
앞에서 쿼타를 사용할 파티션이 준비되었다면 사용자 쿼타를 설정해 보자. xfs 파일시스템의 쿼타는 xfs_quota 명령어를 이용하여 설정하거나 확인한다. xfs_quota는 기본적으로 대화형 환경을 제공한다. 다음은 xfs_quota 명령어 실행 후 help를 입력하여 사용법을 확인한 것이다.

~] # xfs_quota
xfs_quota> help
df [-bir] [-hn] [-f file] -- show free and used counts for blocks and inodes
help [command] -- help for one or all commands
print -- list known mount points and projects
quit -- exit the program
quota [-bir] [-gpu] [-hnNv] [-f file] [id|name]... -- show usage and limits

Use 'help commandname' for extended help.

사용법을 확인해 보아도 별 내용이 없어 보인다. xfs_quota 명령은 일반 사용자도 사용할 수 있다. 기본적으로 쿼타 설정된 내용을 각 사용자가 확인하기 위해 사용하며, 설정을 하기 위해서는 -x 옵션을 사용하여 전문가 모드로 접근하여 설정한다. 일반 사용자도 -x 옵션을 사용할 수 있지만 대부분의 명령이 실행되지 않는다.

~] # xfs_quota   -x
xfs_quota> help
df [-bir] [-hn] [-f file] -- show free and used counts for blocks and inodes
disable [-gpu] [-v] -- disable quota enforcement
dump [-gpu] [-f file] -- dump quota information for backup utilities
enable [-gpu] [-v] -- enable quota enforcement
help [command] -- help for one or all commands
limit [-gpu] bsoft|bhard|isoft|ihard|rtbsoft|rtbhard=N -d|id|name -- modify quota limits
off [-gpu] [-v] -- permanently switch quota off for a path
path [N] -- set current path, or show the list of paths
print -- list known mount points and projects
project [-c|-s|-C|-d <depth>|-p <path>] project ... -- check, setup or clear project quota trees
quit -- exit the program
quot [-bir] [-gpu] [-acv] [-f file] -- summarize filesystem ownership
quota [-bir] [-gpu] [-hnNv] [-f file] [id|name]... -- show usage and limits
remove [-gpu] [-v] -- remove quota extents from a filesystem
report [-bir] [-gpu] [-ahnt] [-f file] -- report filesystem quota information
restore [-gpu] [-f file] -- restore quota limits from a backup file
state [-gpu] [-a] [-v] [-f file] -- get overall quota state information
timer [-bir] [-gpu] value -d|id|name -- get/set quota enforcement timeouts
warn [-bir] [-gpu] value -d|id|name -- get/set enforcement warning counter

Use 'help commandname' for extended help.

전문가 모드에서는 설정할 수 있는 부분이 보인다. 

또는 다음과 같이 -c 옵션을 사용하여 비대화형 모드로 명령을 내릴 수 있다.

[root@localhost ~]# xfs_quota -x -c 'df' /data
Filesystem           1K-blocks       Used  Available  Use% Pathname
/dev/mapper/centos-data
                      31441920      32940   31408980    0% /data

다음과 같이 설정해 보자.

1. 사용자 쿼타 설정
먼저 설정할 파일시스템을 선택한다. path를 입력하여 파일시스템 리스트를 확인하고, path 아이디를 입력하여 파일시스템을 선택한다. 우리는 /data 파일 시스템을 선택하기 위해 path 001을 입력한다.

~] # xfs_quota -x
xfs_quota> path
      Filesystem          Pathname
[000] /                   /dev/mapper/centos-root
 001  /data               /dev/mapper/centos-data (uquota, pquota)
 002  /boot               /dev/vda1
xfs_quota> path 001
      Filesystem          Pathname
 000  /                   /dev/mapper/centos-root
[001] /data               /dev/mapper/centos-data (uquota, pquota)
 002  /boot               /dev/vda1
xfs_quota> limit  -u  bsoft=1g  bhard=1126m  isoft=1000  ihard=1100   doly

다음으로 limit 를 입력하여 각 항목에 대해 설정한다.
  -u : 사용자 쿼타 설정
  bsoft : 블록 soft 제한 용량 (단위는 k, m, g, t 사용가능, 정수만 가능)
  bhard : 블록 hard 제한 용량
  isoft : 아이노드 soft 제한
  ihard : 아이노드 hard 제한
  doly : 제한 할 사용자 

쿼타 설정을 하기위해서는 limit를 사용한다. 다음과 같이 help limit로 사용법을 확인할 수 있다.

~] # xfs_quota -x
xfs_quota> help limit
limit [-gpu] bsoft|bhard|isoft|ihard|rtbsoft|rtbhard=N -d|id|name -- modify quota limits

 modify quota limits for the specified user

 Example:
 'limit bsoft=100m bhard=110m tanya

 Changes the soft and/or hard block limits, inode limits and/or realtime
 block limits that are currently being used for the specified user, group,
 or project.  The filesystem identified by the current path is modified.
 -d -- set the default values, used the first time a file is created
 -g -- modify group quota limits
 -p -- modify project quota limits
 -u -- modify user quota limits
 The block limit values can be specified with a units suffix - accepted
 units are: k (kilobytes), m (megabytes), g (gigabytes), and t (terabytes).
 The user/group/project can be specified either by name or by number.

제한을 할 수 있는 항목은 블록, 아이노드, 실시간 블록 제한이 있다. 실시간 블록 제한(rtbsoft, rtbhard)는 CentOS 7에는 구현되지 않아 사용될 수 없다.

2. 설정내역을 확인

[root@localhost ~]# xfs_quota  -x  -c   'report -b'   /data
User quota on /data (/dev/mapper/centos-data)
                               Blocks
User ID          Used       Soft       Hard    Warn/Grace
---------- --------------------------------------------------
root                0          0          0     00 [--------]
doly                0    1048576    1153024     00 [--------]

[root@localhost ~]# xfs_quota -x -c 'report -i' /data
User quota on /data (/dev/mapper/centos-data)
                               Inodes
User ID          Used       Soft       Hard    Warn/ Grace
---------- --------------------------------------------------
root                3          0          0     00 [--------]
doly                0       1000       1100     00 [--------]

report를 사용하여 블록 및 아이노드 사용량 제한설정을 확인할 수 있다.


[프로젝트 쿼타 설정]
원하는 디렉토리를 묶어 특정 디렉토리 단위로 쿼타설정을 할 수 있는 프로젝트 쿼타를 설정해 보도록 하자. 

위와 같이 2개의 디렉토리를 proj1이라는 이름으로 프로젝트 쿼타 설정을 해보도록 하자.

1. /etc/projects 파일 생성
  /etc/projects 파일은 존재하지 않으며, 생성하여야 한다. 다음과 같이 프로젝트에 사용될 디렉토리를 작성작성한다.

1:/data/proj1
1:/data/proj2

숫자:디렉토리 형식으로 작성한다. 위 설정은 1이라는 프로젝트 ID에 2개의 디렉토리를 할당하는 것이다.

2. /etc/projid 파일 생성
  /etc/projid 파일은 존재하지 않으며, 생성하여야 한다. 다음과 같이 프로젝트에 ID와 이름을 매핑한다.

proj1:1

프로젝트이름:숫자 형식으로 작성한다. 위 설정은 프로젝트 ID 1의 이름을 proj1으로 할당하는 것이다.

3. 프로젝트 쿼타 설정

[root@localhost ~]# xfs_quota -x -c 'project -s proj1' /data
Setting up project proj1 (path /data/proj1)...
Setting up project proj1 (path /data/proj2)...
Processed 2 (/etc/projects and cmdline) paths for project proj1 with recursion depth infinite (-1).

앞에서 설정한 프로젝트 이름(proj1)으로 프로젝트를 생성하였다. 생성 과정에서 앞에서 등록한 디렉토리가 설정되는 것을 확인할 수 있다.

4. 프로젝트 제한 설정

[root@localhost ~]#  xfs_quota -x -c 'limit -p bsoft=1g bhard=1126m isoft=1000 ihard=1100 proj1' /data

사용자 쿼타와 비슷하게 쿼타 설정을 한다. 단, 프로젝트 쿼타는 -u 대신 -p 옵션을 사용하였고, 사용자 이름 대신 프로젝트 이름이 사용되었다.

5. 쿼타 설정 확인

[root@localhost ~]# xfs_quota -x -c 'report -p' /data
Project quota on /data (/dev/mapper/centos-data)
                               Blocks
Project ID       Used       Soft       Hard    Warn/Grace
---------- --------------------------------------------------
proj1               0    1048576    1153024     00 [--------]


[root@localhost ~]# xfs_quota -x -c 'report -p -i' /data
Project quota on /data (/dev/mapper/centos-data)
                               Inodes
Project ID       Used       Soft       Hard    Warn/ Grace
---------- --------------------------------------------------
proj1               2       1000       1100     00 [--------]

report를 사용하여 쿼타 설정 내역 및 사용 내역을 확인할 수 있다.

6. 프로젝트 쿼타 디렉토리 확인

[root@localhost ~]# xfs_quota -x -c 'path'
      Filesystem          Pathname
[000] /                   /dev/mapper/centos-root
 001  /data               /dev/mapper/centos-data (uquota, pquota)
 002  /boot               /dev/vda1
 003  /data/proj1         /dev/mapper/centos-data (project 1, proj1)
 004  /data/proj2         /dev/mapper/centos-data (project 1, proj1)

등록된 프로젝트의 디렉토리는 위와 같이 path 명령어로 쉽게 확인할 수 있다.

다음과 같은 방법으로 각 디렉토리 사용량을 확인할 수 있다.

[root@localhost proj1]# xfs_quota -x -c 'df' /data
Filesystem           1K-blocks       Used  Available  Use% Pathname
/dev/mapper/centos-data
                      31441920     557180   30884740    2% /data
/dev/mapper/centos-data
                       1048576     524224     524352   50% /data/proj1
/dev/mapper/centos-data
                       1048576     524224     524352   50% /data/proj2


+ Recent posts