

1. 매월 1일 새벽 12시 30분 datefile1에 date 이어쓰기
30 0 1 * * date >> /home/vagrant/datefile1
2. 1분마다 datefile2에 date 이어쓰기
* * * * * date >> /home/vagrant/datefile2
3. 매년 1월 1일 오후 12시 datefile3에 date 덮어쓰기
0 12 1 1 * date > /home/vagrant/datefile3
4. vagrant 사용자가 크리스마스 자정 /tmp/christmas에 메시지 덮어쓰기
vagrant 사용자의 crontab (crontab -e)에서 설정crontab -e -u vagrant
0 0 25 12 * echo "Merry Christmas" > /tmp/christmas
또는
su - vagrant
crontab -e
0 0 25 12 * echo "Merry Christmas" > /tmp/christmas
또는
vim /etc/crontab
G
0 0 25 12 * vagrant echo "Merry Christmas" > /tmp/christmas
:w /etc/cron.d/vagrantcron
5. 1월 1일, 11일, 21일 오후 3시~5시까지 15분마다 datefile4에 이어쓰기
*/15 15-17 1,11,21 1 * date >> /home/vagrant/datefile4
6. 매주 월요일, 목요일 새벽 1시에 재부팅
0 1 * * 1,4 /sbin/reboot
7. 매월 첫 번째 화요일 오후 3시에 재부팅 (crontab 미사용, 시스템 cron 방식)
/etc/cron.d/에 스케줄 등록vim /etc/crontab
G
0 15 1-7 * 2 root reboot
:w /etc/cron.d/reboot
예: /etc/cron.d/reboot_first_tue
sudo vim /etc/cron.d/reboot_first_tue
내용
0 15 1-7 * 2 root [ "$(date +\%a)" = "Tue" ] && /sbin/reboot
1-7일 중에 요일이 화요일(2)이면 실행date +%a는 요일 이름 (Tue, Wed 등) 반환\%로 이스케이프 해야 함매월 1일 00:30: 30 0 1 * *
매분 실행: * * * * *
1월 1일 12:00: 0 12 1 1 *
크리스마스 자정: 0 0 25 12 *
특정일 15~17시 15분 간격: */15 15-17 1,11,21 1 *
매주 월,목 1시 재부팅: 0 1 * * 1,4
첫 화요일 15시 재부팅: /etc/cron.d에 등록 (조건 포함)
1. 디스크 초기화 및 파티션 생성
파티션 구성

fdisk /dev/sdb
# n → primary → +2G
# n → primary → +3G
# n → primary → +4G
# n → extended → Enter
# n → logical → +2G
# n → logical → +2G
w
partprobe /dev/sdb
2. 파일시스템 생성 및 마운트
mkfs.xfs /dev/sdb1
mkfs.ext4 /dev/sdb2
mkfs.xfs /dev/sdb3
mkdir -p /ptest /stest /home1
mount /dev/sdb1 /ptest
mount /dev/sdb2 /stest
mount /dev/sdb3 /home1
3. /home1에 영구 마운트 설정
vim /etc/fstab
추가
/dev/sdb3 /home1 xfs defaults 0 0
mount -a
4. 사용자 생성
useradd -u 1001 -g 1001 -c "user1" -d /home1/user01 -s /bin/bash user01
useradd -u 2000 -g 1000 -d /home/user2 -s /bin/sh user02
useradd -u 3000 -g 3000 -c "user3" -d /home/user03 -s /bin/sh user03
useradd -u 3001 -g 1000 -d /home1/user04 -s /bin/bash user04
5. 사용자 정보 수정
usermod -d /home1/user01 -c "" user01
usermod -u 1002 -g 1002 -d /home1/user02 -s /bin/bash user02
usermod -u 1003 -g 1003 -s /bin/bash user03
usermod -u 1004 -g 1004 user04
6. 사용자 활성화
usermod -U user01
usermod -U user02
usermod -U user03
usermod -U user04
7. user03에 sudo 권한 추가
usermod -aG wheel user03
wheel 그룹이 /etc/sudoers에 있어야 함8. 기본값 HOME을 /home으로 설정
vim /etc/default/useradd
HOME=/home 로 변경9. 그룹 생성 및 ACL 설정
groupadd aclgroup
usermod -aG aclgroup user02
usermod -aG aclgroup user04
getent group aclgroup
10. /ptest에 ACL 소유 설정
chmod 2777 /ptest
chown :aclgroup /ptest
확인
ls -ld /ptest
drwxrwsrwx. root aclgroup ...11. test 파일 vi 편집 가능하게 설정
touch /ptest/test
chmod 000 /ptest/test
setfacl -m u::rw /ptest/test
setfacl -m g::rw /ptest/test
vi 편집 허용: 쓰기 권한만 있으면 됨12. user02의 크론 작업
조건
crontab -e # (user02로 접속 후)
58 23 8-21 1,3,5,9 5 [ "$(date +\%U)" = "01" ] || [ "$(date +\%U)" = "02" ] && date >> /tmp/user02datefile
설명
+%U: 주차 계산 → 둘째, 셋째 금요일 = 2~3번째 주513. 마운트 해제 후 user01 테스트
umount /home1
su - user01
"No home directory" 오류 발생 → 정상/home1 마운트가 되어 있어야 로그인 가능파티션 생성: fdisk /dev/sdb
파일시스템 생성: mkfs.xfs mkfs.ext4
마운트: mount, fstab
사용자 추가: useradd
사용자 수정: usermod
그룹 생성: groupadd, usermod -aG
sudo 권한 부여: usermod -aG wheel user
ACL 설정: chmod 2777, chown, setfacl
cron 설정: crontab -e
1. /dev/sdb5, /dev/sdb6을 스왑 파일시스템으로 포맷
mkswap /dev/sdb5
mkswap /dev/sdb6
확인
blkid | grep sdb
2. /dev/sdb5를 수동 스왑 마운트
swapon /dev/sdb5
스왑 확인
free -h
swapon -s
3. /dev/sdb6를 영구 마운트 설정
① UUID 확인
blkid /dev/sdb6
예시 결과
/dev/sdb6: UUID="abcd-1234" TYPE="swap"
② /etc/fstab에 등록
vim /etc/fstab
추가
UUID=abcd-1234 swap swap defaults 0 0
또는 장치명 방식
/dev/sdb6 swap swap defaults 0 0
③ 스왑 자동 마운트 실행
swapon -a
4. 최종 스왑 상태 확인
free -h
swapon -s
lsblk | grep swap
mkswap /dev/sdbXswapon /dev/sdbX/etc/fstab + swapon -afree -h, swapon -s, lsblk1. 파티션 준비
fdisk /dev/sdb # 4G, 6G, 4G, 6G 순으로 나누기
2. 물리 볼륨(PV) 생성
pvcreate /dev/sdb[1-4]
3. 볼륨 그룹(VG) 생성
vgcreate vg0 /dev/sdb[1,4] -s 16M
4. 논리 볼륨(LV) 생성
lvcreate -L 4G -n lv01 vg0
lvcreate -l 256 -n lv02 vg0
lvcreate -l 100%FREE -n lv03 vg0
5. 파일시스템 생성 및 마운트
mkfs.xfs /dev/vg0/lv01
mkfs.ext4 /dev/vg0/lv02
mkfs.xfs /dev/vg0/lv03
mkdir -p /mnt/disk{1..3}
mount /dev/vg0/lv01 /mnt/disk1
mount /dev/vg0/lv02 /mnt/disk2
mount /dev/vg0/lv03 /mnt/disk3
VG 확장
vgextend vg0 /dev/sdb3
LV 확장 + 파일시스템 확장 (수동)
lvextend -L +1G /dev/vg0/lv01
xfs_growfs /mnt/disk1
lvextend -L 6G /dev/vg0/lv02
resize2fs /dev/vg0/lv02
1. 바로 제거 시도 → 실패
vgreduce vg0 /dev/sdb4 # 실패
2. 데이터 이동 (용량 부족 발생)
pvmove /dev/sdb4 # 실패
3. 용량 확보 → sdb2 추가
vgextend vg0 /dev/sdb2
pvmove /dev/sdb4
vgreduce vg0 /dev/sdb4
pvmove 실패 (용량 부족) -> 다른 PV 추가해서 용량 확보
vgreduce 실패 -> 해당 PV 안의 데이터가 아직 남아있음
-r 옵션 없이 FS 확장 시 -> xfs_growfs, resize2fs 수동 실행 필수
pvcreate 전에 파티션 꼭 설정 -> fdisk or parted로 GPT/MBR에 맞게 파티션 작성 필요
lvextend -r 옵션은 LV + 파일시스템 동시에 확장할 때 유용함pvmove는 시간이 오래 걸릴 수 있고, 데이터 손실 위험 없도록 백업 권장lsblk, df -Th, lvs, vgs, pvs는 항상 상태 확인용으로 반복 사용start: 서비스 실행 (PID 부여됨)
enable: 부팅 시 자동 실행 등록
stop: 서비스 중단 (PID 제거됨)
disable: 부팅 시 자동 실행 해제
mask: 완전 차단 (/dev/null로 symlink 연결됨)
unmask: 차단 해제
reload: 설정 파일만 다시 읽기 (PID 유지)
restart: 중지 후 다시 시작 (PID 바뀜)

systemctl mask sshd
sshd.service 유닛이 /dev/null로 symlink 되어 절대 실행되지 않음enable, start 명령도 작동 안 함 → 완전 차단풀려면?
systemctl unmask sshd
# 1. 중지 + 비활성화
systemctl disable sshd --now
systemctl status sshd
# 2. 시작
systemctl start sshd
systemctl status sshd
# 3. 부팅 자동 등록
systemctl enable sshd
# 4. 리로드 vs 재시작 비교
systemctl reload sshd # pid 유지됨
systemctl restart sshd # pid 바뀜
systemctl is-active sshd # active/inactive
systemctl is-enabled sshd # enabled/disabled/masked
