Notice
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

정보통신공학과 노선변경기

리눅스 관리 2일차 ACL, setfacl, getfacl, at, crontab, partitioning, mount 본문

Sub3_리눅스 관리

리눅스 관리 2일차 ACL, setfacl, getfacl, at, crontab, partitioning, mount

HEONPOLI 2021. 5. 11. 21:38

*ACL

파일마다 세부적인 권한을 주는 것

default ACL이 설정되어 있다면 하위 디렉토리가 상속받음

권한보기 : getfacl

권한추가 or 수정 : setfacl -m

setfacl -m u:user01:r fileA = user01 fileA에대한 권한 read로 설정   

mask 는 그룹사용자에 대한 최종적으로 적용되는 권한

 

더보기

user~ $ getfacl fileA

# file: fileA

# owner: user

# group: user

user::r-x

user:user01:-wx                         #effective:--x

group::rwx                               #effective:r-x

mask::r-x

other::r-x

 

chmod 555 fileA하면 mask가 바뀐다. r-x로 바뀌므로 user권한의 effective는 마스크에 따라 x만 가능

group r-x 가능

chmod로 권한을 주고 acl을 주면 테이블이 꼬이게된다..문제발생

chmod 주고 그 권한을 이어받아 acl로 해주는 순서로 해야 문제 덜 발생한다.

 

*setfacl 명령어

[options]

           -m: 수정

            -x: 삭제

[그 뒤에]

           u: user

           g: group

           m: mask

 

다음과 같이 만들라!

 

더보기

useradd student, groupadd controller만든다.

sudo chown student roster.txt         파일에대해 owner 변경

sudo chown :controller roster.txt

sudo chmod 770 roster.txt

sudo setfacl -m u:james:0 roster.txt

sudo setfacl -m u:1005:rwx roster.txt (계정은 없으면 셋팅이 안되는데 UID는 계정이 없어도 만들어진다, UID만 갖고 들어오는 사용자가 있으므로 그럴때 사용하는것)

sudo setfacl -m g:sodor:r roster.txt

sudo setfacl -m g:2210:rwx roster.txt

sudo setfacl -m m::rw roster.txt

 

****QUIZ*********

그룹 aclgroup

계정 user01

계정 user02  그룹 aclgroup

계정 user03

계정 user04

 

디렉토리 생성

/ptest

 - 777로 권한 재설정  (rwxrwxrwx로 만드시오.)         

 

1./ptest 안에 dir02 디렉토리 생성

dir02 디렉토리에 user03만 들어올 수 없도록 설정

dir02 안에  file01 생성                 

 

2.file01   user01은 읽기 쓰기가 가능하고                                           

aclgroup 구성원은 읽기만 가능하도록 설정하고 확인해보시오.

 

3.dir02 안에 dir03 디렉토리를 만들고 user01은 읽기만 가능하고

aclgroup은 읽기 쓰기가 가능하도록 설정하고 확인해보시오.

 

4.dir02 안에 dir04 디렉토리를 만들고 dir04 user04만 읽기 쓰기가 가능하고

나머지는 못들어오도록 설정하고 확인해보시오.

**************************************************

더보기

ANS1

sudo setfacl -m u:user03:0 /ptest/dir02

sudo touch ptestdir02/file01

sudo setfacl -m u:user01:rw,g:aclgroup:r /ptest/dir02/file01

 

더보기

ANS3

sudo mkdir /ptest/dir02/dir03

sudo setfacl -m u:user01:r-x,g:aclgroup:rwx /ptest/dir02/dir03 읽기뿐만 아니라 실행을 줘야 접근가능하다.

 

 

더보기

ANS4

sudo mkdir /ptest/dir02/dir04

sudo chmod 000 /ptest/dir02/dir04

sudo setfacl -m u:user04:7 /ptest/dir02/dir04

sudo setfacl -m m::7 /ptest/dir02/dir04     chmod 000 으로 마스크 다 날라갔으니 재설정

 

*작업예약

**at 명령어

at now +2min : 2분후에 다음으로 치는 명령어 수행

atq or at -l 로 예약된 작업확인 가능

daemon 프로그램 : 백그라운드에서 돌아가는..

crontab -e : crontab 설정해주는 곳으로 들어감

**crontab 명령어: at는 한번만 작업, 주기적 반복적으로 진행

*/7 : 7분마다 라는뜻

분 시 일 월 요일 command 순서로 crontab 작성

일의 기준 (1~~~ 일요일)

57 13 * * * touch ~/filecron : 57 13시에 touch 명령어 수행

 

******quiz*****

1.매월 오후 1시부터 5시까지 10분마다 date명령어를 datefile01에 이어쓰기

ANS. */10 13-17 * * * date >> datefile01

 

2.매년 3 6 9 2번째 화요일 14 20분에 /etc/passwd 파일의 내용을 userfile에 덮어쓰기 하시오

ANS. 20 14 8-14 3,6,9 2 cat /etc/passwd > userfile         2주차 = 8~14일 의 두번째

3.3분 뒤에 ps -ef 명령어를 실행해서 psfile01에 저장되도록 설정

ANS. at now +3min ,,,,,ps -ef > psfile01

4.21 8 3일에 date 명령어를 실행해서 메일로 오도록 설정

at 080321 ,,,, date

5.오늘 오후 18시에 cal 명령어를 실행해서 메일로 오도록 설정

at 18:00 today ,,,,, cal

6.내일 오후 4시에 ps -ef 명령어를 실행해서 psfile02에 저정하도록 설정

at 16:00 tomorrow ,,,, ps -ef > psfile02

 

sytemd-tmpfiles를 사용하여 임시 파일 관리

 

*디스크관리

디스크 구매 =>연결=> 파티션=>포맷

**디스크 파티션

MBR방식 : 파티션 레이아웃을 파티션 테이블에 저장, 부팅할 수 있는 파티션 정보를 갖고있다.

                  섹터주소를 4byte로 저장=최대2TB까지 저장가능, fdisk 명령어로 수행

GPT방식  : 파티션 테이블을 128개까지 가능

           64bit => 8ZB까지저장, gdisk 명령어로 수행

 

e-ide : 핫 플러깅X,

sata : 핫 플러깅 된다.

scsi : 핫 플러깅 된다. 

 

*fdisk, gdisk : 파티션 생성

fdisk ==> mbr 방식, gdisk ==> gpt 방식

sudo fdisk /dev/vdb ==> 파티션 설정해주는 곳

n : add new partition

p : primary, e : extended

lsblk 가상머신 파티션된거 확인

partprobe /dev/vdb  파티션 인식이 바로 안될 경우에 이 명령어 쳐서 바로인식가능하게 해줌

 

디스크를 파티셔닝 해준 이후 사용하기 위해 포맷

**파일 형식, 파일 시스템 만들기

명령어: mkfs(make file system)

ext4 방식을 제일 많이 사용하는 파일시스템.(inode table이 저장될 수 있기때문에 inode 이용할 수 있는 파일시스템), 윈도우에서는 NTFS 주로 사용

mkfs.ext4 : ext4 파일시스템 생성

mkfs.ext3 : ext3 파일시스템 생성

mkfs.ext2 : ext2 파일시스템 생성

==== /dev/vdb2 의 파일시스템 ext4 로 해주고싶다 == mkfs -t ext4 /dev/vdb2

blkid: 파일시스템 확인, df: 파일시스템확인(-Th), lsblk: 파일시스템확인 ,,,, 3개의 용도가 다르다.
file -s /dev/vdb1 == /dev/vdb1
의 파일시스템 확인

 

*마운트, mount
생성된 파티션에대해 디렉토리 형태로 접근할 수 있도록 연결하는 작업
mount /dev/vdb1 /mnt/new   == /mnt/new
/dev/vdb1 을 마운트한다

mount : 마운팅 포인트에 디스크를 마운트시킨다

           -a  /etc/fstable에 있는 장치 모두 마운트

umount: 마운트 해제

           -a  모든 장치 마운트 해제

 

*****실습**********************

파티션생성

주 파티션 2G 2G 2G ext4로 포맷        

확장 파티션 2G 2G 2G 2G xfs로 포맷         

/dev/vdb1 mount /mnt/disk1

/dev/vdb2 mount /mnt/disk2

/dev/vdb3 mount /mnt/disk3

*********************************************************************
20G
배정된 디스크 안에서의 파티션..
3
개 주파티션을 써주고, 남은 모든 용량을 extended로 설정해주고 그 안에서 나눠야한다.

<3일차에 계속>