허가권 및 소유권 실습
-rw-rw-r--. 1 khj khj 29 7월 28 10:00 file7 - 해당 file7 파일의 권한은 1. 소유자(khj) = 읽기, 쓰기 2. 소유그룹(khj) = 읽기, 쓰기 3. 제 3자 = 읽기만 가능하다.
khj1 계정이 file7을 읽는것까진 가능하지만 수정 및 저장을 하려고하면 해당 오류가 뜸
(이때 khj1은 제 3자)khj1 계정을 khj 그룹에 추가 시킨뒤 다시 수정 및 저장을 하면 정상적으로 수정내용을 저장할 수 있다.
(이때 khj1은 소유그룹 소속)
cp -a file3 file9
과cp file3 file10
의 차이
cp 명령어에 옵션-a
를 준다면허가권+소유자/소유그룹
까지 복사가 되지만
a 옵션을 주지 않는다면 단순히 허가권까지만 복사가 된다.
/etc/passwd, shadow, group
/home
/var/mail
/etc/passwd
/etc/passwd
/etc/shadow
useradd id1
passwd id1 -> (패스워드 변경)
<passwd>
[1. 계정명] : [2. 패스워드] : [3. 계정 식별자] : [4. 그룹 식별자] : [5. 코멘트/설명] : [6. 계정의 홈 디렉터리] : [7. 사용자 쉘 종류]
<shadow>
[1. 계정명] : [2. 암호화된 패스워드] : [3. 최초 패스워드 변경 후 지난 일 수] : [4. 최소 변경일] : [5. 최대 유효기간] : [6. 최대 유효기간] : [7. 만료 경고일] : [8. 비활성화 기간] : [9. 계정 만료일] : [10. 예약]
1) $1$sadjklfa$92jmiof02 -> $MD5$솔트값$암호화 된 패스워드
2) $5$sadjfl$9ujf2opfjs-d -> $SHA-256$솔트값$암호화 된 패스워드
3) $6$mnwpo$powngop224u90 -> $SHA-512$솔트값$암호화 된 패스워드
usermod
<옵션>
-l : 계정명 변경
-u : UID 변경
-g : GID 변경
-c : 코멘트 추가
-d : 홈디렉터리 변경
-s : 쉘 변경
change
<옵션>
-l : 패스워드 정보 확인
-m : 최소 변경일
-M : 최대 유효일
-W : 패스워드 변경 만료일/경고일
-I : 비활성화 기간
-E : 계정 만료일
usermod -c (코멘트) id1
usermod -d (홈디렉터리) id1
usermod -s (쉘) id1
패스워드 변경이 된다면 passwd 파일 참조, shadow 파일에 암호화 된 패스워드가 저장된다.
change -m (최소 변경일) id1
change -W (경고일) id1
change -I (비활성화 기간) id1
groupadd group1
usermod -G group1,group2 id1
gpasswd -d id1 group1
/etc/skel 예하
.bash_logout
.bash_profile
.bashrc
0022
파일 -> 666 / rw-rw-rw
디렉터리 -> 777 / rwxrwxrwx
파일 -> 644
디렉터리 -> 755
파일 -> 622
디렉터리 -> 733
chmod 657 file1
chmod a=r file2
소유자는 읽기 쓰기 권한
소유 그룹은 읽기 쓰기 실행 권한
제 3자는 읽기 권한
110111100
rw-rwxrwx
소유자는 읽기 쓰기 권한이 있고 해당 디렉터리 실행 시 root 권한을 갖지만 실행 권한이 없음
소유 그룹은 읽기 권한이 있고 해당 디렉터리 실행 시 root 권한을 가지며 실행 권한이 있다.
제 3자는 읽기 쓰기 실행 권한이 있지만 쓰기 기능 중
생성, 수정까지만 가능하며 다른 소유자의 파일/디렉터리에 대해선 삭제 불가능하다.
chmod 7657 file1
SetUID, SetGID
다른 사용자가 해당 파일 및 디렉터리를 실행할 때 root 권한을 얻는 허가권
Stick Bit
한 사용자가 다른 소유자/소유 그룹의 파일/디렉터리에 대해서
쓰기 권한 중 생성/수정 기능을 사용할 수 있지만 삭제가 불가능한 허가권
결국 해당 파일/디렉터리에 대해 온전한 쓰기 권한을 실행하려면
해당 파일/디렉터리의 소유자/소유그룹만 가능하다.
useradd test1
useradd test2
useradd test3
useradd test4
useradd test5
useradd test6
useradd test7
groupadd korea1
groupadd korea2
groupadd korea3
groupadd korea4
groupadd korea5
mkdir /home/dir1 /home/dir2 /home/dir3 /home/dir4 /home/dir5 /home/dir6 /home/dir7
touch /home/dir1/seoul1.txt /home/dir1/seoul2.txt
touch /home/dir2/daejoen1.txt /home/dir2/daejoen2.txt
touch /home/dir3/daegu1.txt /home/dir3/daegu2.txt
touch /home/dir4/busan1.txt /home/dir4/busan2.txt
usermod -G korea1 test1
usermod -G korea1 test2
chown root.korea1 dir5
chmod 710 dir5
usermod -G korea2 test3
chown root.korea2 dir6
chmod 710 dir6
usermod -G korea3 test4
usermod -G korea3 test5
usermod -G korea3 test6
chown root.korea3 dir7
chmod 730 dir7
chmod 705 dir4
(서울-dir1, 대전-dir2)
usermod -G korea1,korea4 test1
usermod -G korea1,korea4 test2
usermod -G korea2,korea4 test3
chown root.korea4 dir1/seoul1.txt
chown root.korea4 dir2/daejoen1.txt
chmod 760 dir1/seoul1.txt
chmod 760 dir2/daejoen1.txt
(대구-dir3)
usermod -G korea3,korea5 test4
usermod -G korea3,korea5 test5
usermod -G korea3,korea5 test6
chown root.korea5 dir3/daegu1.txt
chown root.korea5 dir3/daegu2.txt
chmod 710 dir3/daegu1.txt
chmod 710 dir3/daegu2.txt
(부산-dir4)
usermod -G korea1,korea4,korea6 test1
usermod -G korea2,korea4,korea6 test3
usermod -G korea3,korea5,korea6 test5
chown root.korea6 dir4/busan1.txt
chown root.korea6 dir4/busan2.txt
chmod 760 dir4/busan1.txt
chmod 760 dir4/busan2.txt
(서울-dir1, 대전-dir2)
usermod -G korea1,korea4,korea7 test2
usermod -G korea3,korea5,korea7 test4
usermod -G korea3,korea5,korea7 test6
chown root.korea7 dir1/seoul2.txt
chown root.korea7 dir2/daejoen2.txt
chmod 760 dir1/seoul2.txt
chmod 760 dir2/daejoen2.txt
(대구-dir3)
chown test7.root dir3/daegu2.txt
chmod 670 dir3/daegu2.txt
chmod o+t dir3
#passwd [옵션] [명령어]
<옵션>
- l : lock
- u : unlock
- S : 패스워드 설정 상태
passwd 옵션 사용
usermod -s /bin/false khj1
usermod -s /bin/nologin khj1
<설정 결과 확인>
cat /etc/passwd
/bin/false, /bin/nologin 설정
![]()
/bin/false
![]()
/bin/nologin
소프트 쿼터 vs 하드 쿼터
소프트 쿼터
- 정해진 용량을 조금 초과할 수 있다.
- grace time : 초과된 파일에 대한 유예기간.
하드 쿼터
- 절대적인 용량으로 초과할 수 없다.
- 디스크 사용량 제한
- 기본 상태는 두개의 디스크를 RAID 1으로 묶은 상태
<루트 디렉터리 이동> cd /
<디렉터리 내 data 디렉터리 생성> mkdir data
<etc 디렉터리 이동> cd /etc
<fatab 파일 수정-자동마운트 설정> vi fstab
레이드로 묶은 md1을 data 디렉터리에 자동 마운트
<마운트 상태 확인> mount
![]()
usrquota
상태 확인\
<쿼터 모드 실행> xfs_quota -x
<002 설정> path 002 - 쿼터를 설정하기 전에 '이곳에 설정하겠다'를 지정
<쿼터 설정> limit -u bsoft=0 bhard=0 isoft=3 ihard=5 test1 - test1 계정에 블록은 무제한(=0), inode의 갯수는 소프트3, 하드5로 설정
Raid 설정한 디스크를 마운트한 장소에서 실습
5개 파일까지는 생성 가능하지만 6개부터는 초과메세지가 뜨면서 생성이 안된다.
쿼터 확인
#edquota -u test1
inode의 갯수를 소프트 3, 하드 5로 설정
그 후 /data 디렉터리에 할당량까지 파일을 만들었다면?test1 계정에서 파일 5개를 만들었을때 inode가 올라간 모습
#edquota -u test2 (xfs_quota 진입 후 limit -u bsoft=20m bhard=30m test1 명령어 작성)
블록의 크기를 소프트 20m, 하드 30m로 설정
그 후 /data 디렉터리에 할당량까지 파일을 만들었다면?test2 계정에서 경고가 뜰때까지 파일을 만들었을때 inode와 blocks가 올라간 모습
#repquota -a *쿼터를 설정한 해당 계정에서 파일을 하나라도 만들어야 보임
# edquota -p test1 test2
test1의 쿼터 설정을 test2에 상속
유저쿼터와 그룹쿼터 중복 가능
그룹쿼터와 프로젝트쿼터(디렉터리별) 중복 불가능