7.28 정리-허가권 및 소유권 2, 쿼터

HakJin Kim·2023년 7월 28일
0

허가권 및 소유권 실습

-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 file9cp file3 file10의 차이
    cp 명령어에 옵션 -a를 준다면 허가권+소유자/소유그룹 까지 복사가 되지만
    a 옵션을 주지 않는다면 단순히 허가권까지만 복사가 된다.

미션

  1. 사용자 생성 시 사용자와 관련된 파일을 모두 쓰기
/etc/passwd, shadow, group
/home
/var/mail
  1. 사용자 생성 시 최초로 참조하는 파일?
/etc/passwd
  1. 사용자 정보 등록 파일과 패스워드 저장 파일?(경로와 파일명)
/etc/passwd
/etc/shadow
  1. id1 계정을 생성하고, 패스워드 변경 과정을 상세히 쓰기 ???????????
useradd id1
passwd id1 -> (패스워드 변경)
  1. /etc/passwd, /etc/shadow 파일의 모든 필드 설명
<passwd>
[1. 계정명] : [2. 패스워드] : [3. 계정 식별자] : [4. 그룹 식별자] : [5. 코멘트/설명] : [6. 계정의 홈 디렉터리] : [7. 사용자 쉘 종류]
<shadow>
[1. 계정명] : [2. 암호화된 패스워드] : [3. 최초 패스워드 변경 후 지난 일 수] : [4. 최소 변경일] : [5. 최대 유효기간] : [6. 최대 유효기간] : [7. 만료 경고일] : [8. 비활성화 기간] : [9. 계정 만료일] : [10. 예약]
  1. /etc/shadow 파일의 암호화된 패스워드의 항목 설명
1) $1$sadjklfa$92jmiof02 -> $MD5$솔트값$암호화 된 패스워드
2) $5$sadjfl$9ujf2opfjs-d -> $SHA-256$솔트값$암호화 된 패스워드
3) $6$mnwpo$powngop224u90 -> $SHA-512$솔트값$암호화 된 패스워드
  1. 사용자 정보 변경, 패스워드 변경, 패스워드 정보 확인 명령어 각각 쓰기
usermod
<옵션>
-l : 계정명 변경
-u : UID 변경
-g : GID 변경
-c : 코멘트 추가
-d : 홈디렉터리 변경
-s : 쉘 변경

change
<옵션>
-l : 패스워드 정보 확인
-m : 최소 변경일
-M : 최대 유효일
-W : 패스워드 변경 만료일/경고일
-I : 비활성화 기간
-E : 계정 만료일
  1. 사용자 id1의 코멘트, 홈디렉터리, 쉘 변경 명령어 완성
usermod -c (코멘트) id1
usermod -d (홈디렉터리) id1
usermod -s (쉘) id1
  1. 일반 사용자의 패스워드 변경과정 상세 설명???????????
패스워드 변경이 된다면 passwd 파일 참조, shadow 파일에 암호화 된 패스워드가 저장된다.
  1. 패스워드의 최소 변경일, 경고일, 비활성화 기간 설정 명령어?
change -m (최소 변경일) id1
change -W (경고일) id1
change -I (비활성화 기간) id1
  1. group1 그룹 생성 명령어 완성
groupadd group1
  1. group1 / group2 그룹에 id1 사용자를 동시 등록하는 명령어
usermod -G group1,group2 id1
  1. group1 그룹에서 id1 사용자를 삭제하는 명령어 완성.
gpasswd -d id1 group1
  1. 계정 생성 시 사용자의 쉘 환경 설정 파일이 저장된 경로와 파일들을 모두 쓰기
/etc/skel 예하
.bash_logout
.bash_profile
.bashrc
  1. 리눅스 기본 umask 값?
0022
  1. 파일과 디렉터리의 기본 허가권을 각각 쓰기
파일 -> 666 / rw-rw-rw
디렉터리 -> 777 / rwxrwxrwx
  1. 파일과 디렉터리 생성 시 기본 허가권을 각각 쓰기
파일 -> 644
디렉터리 -> 755
  1. umask가 044일때 파일/디렉터리 생성 시 허가권 쓰기
파일 -> 622
디렉터리 -> 733
  1. file1 파일의 허가권을 사용자(읽기, 쓰기), 그룹(읽기, 실행), 제3자(읽기, 쓰기, 실행)의 허가권 설정 명령어
chmod 657 file1
  1. file2 파일에 모든 사용자에게 모든 허가권이 부여됐을때 모든 사용자에게 읽기 권한만 부여하는 명령어
chmod a=r file2
  1. '-rw-rwxr--' 설명
소유자는 읽기 쓰기 권한
소유 그룹은 읽기 쓰기 실행 권한
제 3자는 읽기 권한
  1. 21번 문제의 허가권 2진수 표현
110111100
  1. 2진수 110111111 허가권을 8진수 표현
rw-rwxrwx
  1. 'rwSr-srwt' 설명
소유자는 읽기 쓰기 권한이 있고 해당 디렉터리 실행 시 root 권한을 갖지만 실행 권한이 없음

소유 그룹은 읽기 권한이 있고 해당 디렉터리 실행 시 root 권한을 가지며  실행 권한이 있다.

제 3자는 읽기 쓰기 실행 권한이 있지만 쓰기 기능 중 
생성, 수정까지만 가능하며 다른 소유자의 파일/디렉터리에 대해선 삭제 불가능하다.
  1. 24번 문제의 허가권 설정 명령어 (파일명 : file1)
chmod 7657 file1
  1. 특수 허가권 Sticky Bit, SetUID, SetGID 상세 설명
SetUID, SetGID
다른 사용자가 해당 파일 및 디렉터리를 실행할 때 root 권한을 얻는 허가권

Stick Bit
한 사용자가 다른 소유자/소유 그룹의 파일/디렉터리에 대해서 
쓰기 권한 중 생성/수정 기능을 사용할 수 있지만 삭제가 불가능한 허가권
결국 해당 파일/디렉터리에 대해 온전한 쓰기 권한을 실행하려면 
해당 파일/디렉터리의 소유자/소유그룹만 가능하다.

미션 2

  1. 사용자 계정 생성
    (test1 test2 test3 test4 test5 test6 test7)
useradd test1
useradd test2
useradd test3
useradd test4
useradd test5
useradd test6
useradd test7
  1. 그룹 생성
    (korea1 korea2 korea3 korea4 korea5)
groupadd korea1
groupadd korea2
groupadd korea3
groupadd korea4
groupadd korea5
  1. 디렉터리 생성
    (/home/dir1 dir2 dir3 dir4 dir5 dir6 dir7)
mkdir /home/dir1 /home/dir2 /home/dir3 /home/dir4 /home/dir5 /home/dir6 /home/dir7
  1. 파일 생성
    (/home/dir1/seoul1.txt,seoul2.txt
    /home/dir2/daejoen1.txt,daejoen2.txt
    /home/dir3/daegu1.txt,daegu2.txt
    /home/dir4/busan1.txt,busan2.txt)
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
  1. test1, test2 사용자만 dir5 디렉터리에 진입 가능
usermod -G korea1 test1
usermod -G korea1 test2

chown root.korea1 dir5

chmod 710 dir5
  1. test3 사용자만 dir6 디렉터리 진입 가능, 파일/디렉터리 목록 출력 제한
usermod -G korea2 test3

chown root.korea2 dir6

chmod 710 dir6
  1. test4, test5, test6 사용자만 dir7 디렉터리 진입가능, 파일/디렉터리 생성 가능
usermod -G korea3 test4
usermod -G korea3 test5
usermod -G korea3 test6

chown root.korea3 dir7

chmod 730 dir7
  1. 모든 사용자는 dir4 디렉터리 진입 가능, 파일/디렉터리 생성 불가능
chmod 705 dir4
  1. test1, test2, test3 사용자만 seoul1.txt, daejoen1.txt 파일 읽기, 쓰기 가능
(서울-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
  1. test4, test5, test6 사용자만 daegu1.txt, daegu2.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
  1. test1, test3, test5 사용자만 busan1.txt, busan2.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
  1. test2, test4, test6 사용자만 seoul2.txt, daejoen2.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
  1. test7 사용자만 daegu2.txt 파일 수정 가능
(대구-dir3)
chown test7.root dir3/daegu2.txt

chmod 670 dir3/daegu2.txt
  1. dir3 디렉터리에 모든 사용자에게 쓰기 권한 부여, test7 사용자만 daegu2.txt 파일 삭제 가능
chmod o+t dir3

사용자 계정 일시 중지

1. 명령어

#passwd [옵션] [명령어]

<옵션>
- l : lock
- u : unlock
- S : 패스워드 설정 상태

passwd 옵션 사용

2. 쉘

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에 상속

유저쿼터와 그룹쿼터 중복 가능
그룹쿼터와 프로젝트쿼터(디렉터리별) 중복 불가능

profile
처음 시작하는 사람

0개의 댓글

관련 채용 정보