3. fdisk 로 파티션을 1G를 만든 후 ext3파일 시스템으로 /data라는 디렉토리에 마운트되고 reboot후에도 자동으로 사용할 수 있게 만드시오.
#fdisk
-> n --> +1G --> w
#partprobe
#mkfs -t ext3 /dev/sda8
#mkdir /data
#mount /dev/sda8 /data
#vi /etc/fstab
------------------------------------------------------------
/dev/sda8 /data ext3 defaults 0 0
------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------
4. 2개의 파티션 (ext3, 1G)을 raid1로 구성하고 /raid1이란 디렉토리에 사용가능하게 설정 후 부팅 후에도 사용 가능하도록 설정하시오.
#fdisk
-> n --> +1G --> n --> +1G --> t --> fd -->w
#partprobe
#mdadm -C /dev/md1 -l 1 -n 2 /dev/sda9 /dev/sda10
#mkfs -t ext3 /dev/md1
#mkdir /raid1
#mount /dev/md1 /raid1
#vi /etc/fstab
------------------------------------------------------------
/dev/md1 /raid ext3 defaults 0 0
------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------
5. 2개의 파티션 (ext3, 1G)을 volume group lmv0으로 설정하고 logical volume 1.2G를 /backup 디렉토리에 사용 가능하게 하고 부팅후에도 사용가능하도록 설정하시오.
#fdisk
-> n --> +1G --> n --> +1G --> t --> 8e -->w
#partprobe
#pvcreate /dev/sda11 /dev/sda12
#pvscan
#vgcreate lmv0 /dev/sda11 /dev/sda12
#vgscan
#lvcreate -L +1.2G -n lvdata1 lmv0
#lvscan
#mkdir /backup
#mkfs -t ext3 /dev/lmv0/lvdata1
#mount /dev/lmv0/lvdata1 /backup
#vi /etc/fstab
------------------------------------------------------------
/dev/lmv0/lvdata1 /backup ext3 defaults 0 0
------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------
6. 500M swap 파티션을 생성하고 부팅후에도 사용가능하도록 설정하시오.
#fdisk
-> n --> +500M --> t --> 82 -->w
#partprobe
#mkswap /dev/sda13
#swapon /dev/sda13
#free -m
#vi /etc/fstab
------------------------------------------------------------
/dev/sda13 swap defaults 0 0
------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------
7. 사용자 추가 및 quota 설정
User | UID | GID(1차) |
2차그룹 | 계정위치 | 쉘 | quota | soft | hard |
scv | 610 | 610 | terran | /home/terran/scv | /bin/bash |
usrqouta |
10M | 20M |
drone | 620 | 620 |
zerg | /home/zerg/drone | /bin/ksh | usrquota | 10M | 20M |
probe | 630 | 630 | protoss | /home/protoss/probe | /bin/csh | usrquota | 10M | 20M |
lim | 670 | terran | /data/lim |
/bin/bash | grpquota | 10M | 20M | |
hong | 680 | zerg | /data/hong | /bin/bash | grpquota | 10M | 20M | |
kim | 690 | protoss | /data/kim | /bin/bash | grpquota | 10M | 20M | |
shin | 700 | 700(shin) | /data/shin | /bin/bash | grpquota | 10M | 20M |
# groupadd protoss
# groupadd -g 610 scv
# groupadd -g 620 drone
# groupadd -g 630 probe
# groupadd -g 700 shin
# mkdir /home/terran
# mkdir /home/zerg
# mkdir /home/protoss
# useradd -u 610 -g scv -G terran -d /home/terran/scv scv
# useradd -u 620 -g drone -G zerg -d /home/zerg/drone -s /bin/ksh drone
# useradd -u 630 -g probe -G protoss -d /home/protoss/probe -s /bin/csh probe
# useradd -u 670 -g terran -d /data/lim lim
# useradd -u 680 -g zerg -d /data/hong hong
# useradd -u 690 -g protoss -d /data/kim kim
# useradd -u 700 -g shin -d /data/shin shin
# vi /etc/fstab
------------------------------------------------------------
LABEL=/home1 /home ext3 defaults,usrquota 1 2
/dev/sda8 /data ext3 defaults,grpquota 0 0
------------------------------------------------------------
userquota
# mount -o remount /home
# quotacheck -u /home
# edquota -u probe
---------------------------------------------------------------------------
Disk quotas for user probe (uid 630):
Filesystem blocks soft hard inodes soft hard
/dev/sda7 32 10240 20480 8 0 0
---------------------------------------------------------------------------
# edquota -p probe scv
# edquota -p probe drone
groupquota
# mount -o remount /data
# quotacheck -g /data
# edquota -g zerg
---------------------------------------------------------------------------
Disk quotas for group zerg (gid 501):
Filesystem blocks soft hard inodes soft hard
/dev/sda8 32 10240 20480 8 0 0
---------------------------------------------------------------------------
# edquota -g protoss
# edquota -g terran
# edquota -g shin
----------------------------------------------------------------------------------------------------------------------------------------------
8. shin 사용자가 파일 생성시 600 디렉토리 생성시 700 이 되도록 umask를 설정하시오.
# vi /etc/bashrc - root의 bashrc에서 umask부분을 복사한다.(여기는 root의 환경이다.)
------------------------------------------------
if [ $UID -gt 99 ] && [ "`id -gn`" = "`id -un`" ]; then
umask 002
else
umask 022
fi
------------------------------------------------
# cd /data/shin - shin 의 홈폴더로 이동한다.
# ls -al
-rw-r--r-- 1 shin shin 310 11월 19 15:56 .bashrc
# vi .bashrc - shin의 bashrc에서 umask 설정을 변경하고 붙여놓는다.(여기는 shin의 환경이다.)
------------------------------------------------
if [ $UID -gt 99 ] && [ "`id -gn`" = "`id -un`" ]; then
umask 077 - 파일 생성시 600, 디렉토리 생성시 700 이 되도록 하기 위한 umask값
else
umask 022
fi
------------------------------------------------
# mkdir shin
# touch shin.txt
# ls -l - 파일 및 디렉토리 생성 후 퍼미션 확인
drwx------ 2 shin shin 4096 11월 19 16:00 shin
-rw------- 1 shin shin 0 11월 19 16:00 shin.txt
----------------------------------------------------------------------------------------------------------------------------------------------
9. hong 사용자는 로그인 할수 없도록 설정하시오.
# passwd hong - hong의 패스워드를 입력한다.
Changing password for user hong.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
# passwd -l hong - hong의 패스워드에 락을 건다.
Locking password for user hong.
passwd: Success
- hong의 패스워드 상태확인
# passwd -S hong
hong LK 2008-11-19 0 99999 7 -1 (Password locked.)
또는
# vi /etc/shadow
hong:!!$1$M890~~~:7::: - 패스워드 앞에 !!가 붙어 있다.(수동으로도 입력가능)
----------------------------------------------------------------------------------------------------------------------------------------------
10. /data/lim 디렉토리에 only 디렉토리를 생성 후 그 디렉토리에서 shin 사용자가 파일 및 디렉토리 생성과 리스트를 볼 수 있도록 설정하시오.
# cd /data
# ls -l
drwx------ 3 lim terran 4096 11월 19 23:40 lim
drwx------ 3 shin shin 4096 11월 19 23:40 shin
# chmod 770 lim - 그룹을 이용하기 위해 lim 폴더의 퍼미션을 바꾼다.
# ls -l
drwxrwx--- 3 lim terran 4096 11월 19 23:40 lim
drwx------ 3 shin shin 4096 11월 19 23:40 shin
# usermod -G terran shin - lim폴더에 접근하기 위해 terran그룹에 shin을 추가한다.
# vi /etc/group - terran그룹에 shin이 잘 추가되었는지 확인한다.
-----------------------
terran:x:601:scv,shin
-----------------------
# cd lim
# mkdir only
# ls -l
drwxr-xr-x 2 root root 4096 11월 19 23:44 only
# chown root.shin only - shin이 only폴더접근 할 수있디록 shin을 그룹에 추가해준다.
# chmod 770 only - 그룹만(shin포함) 이용가능하도록 퍼미션을 바꾼다.
# ls -l
drwxrwx--- 2 root shin 4096 11월 19 23:44 only
----------------------------------------------------------------------------------------------------------------------------------------------
11. /data2 디렉토리를 생성 후 누구나 생성 및 삭제가 가능한 디렉토리로 생성하되 파일을 생성한 사람만 삭제 가능한 디렉토리로 설정하시오.
- Sticky bit에 관한 내용이다.
# mkdir data2
# ls -l
drwxrwxrwx 2 root root 4096 11월 19 19:36 data2
# chmod 1777 data2
# ls -l
drwxrwxrwt 2 root root 4096 11월 19 19:37 data2
[사용자 - test1]
$ cd /data2
$ vi test1.txt
$ ls -l
-rw-rw-r-- 1 test1 test1 18 11월 19 19:40 test1.txt
[사용자 - test2]
$ cd /data2
$ vi test2.txt
$ ls -l
-rw-rw-r-- 1 test1 test1 18 11월 19 19:40 test1.txt
-rw-rw-r-- 1 test2 test2 12 11월 19 19:43 test2.txt
$ rm -rf test1.txt
rm: cannot remove `test1.txt': 명령이 허용되지 않음 - 사용자 2가 사용자 1이 만든 파일을 삭제해 보려고 하지만 권한이 없어 삭제가 불가능하다.
----------------------------------------------------------------------------------------------------------------------------------------------
12. 일요일 오전 4시 30분에 tar zcvf home.tar.gz /home 명령이 실행되어 /backup폴더에 백업되도록 설정하시오.
# crontab -e - 작업스케줄 등록
crontab: installing new crontab
---------------------------------------------
30 4 * * 0 tar zcvf /backup/home.tar.gz /home
---------------------------------------------
# crontab -l - 작업스케줄 확인
30 4 * * 0 tar zcvf /backup/home.tar.gz /home
----------------------------------------------------------------------------------------------------------------------------------------------
15. rsync를 사용하여 매주 일요일 오전 4시에 /home 디렉토리와 /data 디렉토리가 /backup 디렉토리에 백업되도록 설정하시오.
# vi /etc/xinetd.d/rsync
------------------------------------------------------------------------
# default: off
# description: The rsync server is a good addition to an ftp server, as it \
# allows crc checksumming etc.
service rsync
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
-------------------------------------------------------------------------
# vi /etc/rsyncd.conf - rsyncd.conf파일을 생성해준다.
---------------------------------------------
[server3]
path=/
host allow = 10.10.33.1, 10.10.33.2, 10.10.33.100
host deny = 10.10.33.0, 255.255.0.0
uid=0
gid=0
---------------------------------------------
# crontab -e - 작업스케줄 등록
crontab: installing new crontab
--------------------------------------------------------------------------------------------------
0 4 * * 0 rsync -avz 10.10.33.2::server2/home /backup
0 4 * * 0 rsync -avz 10.10.33.2::server2/data /backup
또는
00 4 * * 0 rsync -avz 10.10.33.3::server3/home /backup && rsync -avz 10.10.33.3::server3/data /backup
---------------------------------------------------------------------------------------------------
# crontab -l - 작업스케줄 확인
0 4 * * 0 rsync -avz 10.10.33.2::server2/home /backup
0 4 * * 0 rsync -avz 10.10.33.2::server2/data /backup
----------------------------------------------------------------------------------------------------------------------------------------------
16. boot loader에 패스워드를 md5로 "리눅스"로 설정하시오.
# grub-md5-crypt
Password:
Retype password:
$1$T8t7n$C/ZFFMbcIcQrD0iUUzuQY1 - 암호화된 패스워드
# vi /etc/grub.conf
----------------------------------------------------------------------
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/sda2
# initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
password --md5 $1$T8t7n$C/ZFFMbcIcQrD0iUUzuQY1
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-92.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-92.el5 ro root=LABEL=/ rhgb quiet
initrd /initrd-2.6.18-92.el5.img
-----------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------
17. httpd-2.2.10 소스를 다운 받아 설치한 후 자동으로 구동되도록 설정한 후
로그파일이 일주일에 한번씩 4번 로테이트 되도록 설정하시오.
www.apche.org -> http server -> download -> ver.2.2.10.tar.gz 다운로드
#cd /root/Desktop - 파일을 다운 받은 폴더로 이동
#cp httpd-2.2.10.tar.gz /usr/local/src - /usr/local/src 폴더에 프로그램이 설치됨(대부분의 리눅스 시스템)
#tar -zxvf httpd-2.2.10.tar.gz - httpd-2.2.10.tar.gz 폴더를 압축해제
#cd httpd-2.2.10 -압축이 풀린 폴더로 이동
#./configure - 설치 기본 환경설정
#make - 컴파일
#make install - 설치
#cd /usr/local/apache2 - 기본적으로 설치되는 폴더
#cd bin - 실행파일이 있는 폴더
#./apachectl start -아파치 서버 시작
// #./apachectl stop -아파치 서버 종료 //
#cp apachectl /etc/rc.d/init.d/ - 실행파일 복사
#cd /etc/rc.d/init.d
#vi httpd
--------------- ------------------------------------------------------
#!/bin/bash
#
# httpd Startup script for the Apache HTTP Server
#
# chkconfig: - 35 85 15
# description: Apache is a World Wide Web server. It is used to serve \
# HTML files and CGI.
----------------------------------------------------------------------
#vi apachectl
- 전 단계에서 복사한 내용을 맨 위에 복사한다.
- 여기의 경로는 /etc/rc.d/init.d/apachectl
#chkconfig --add apachectl - 서비스를 추가한다.
#ntsysv - 서비스 항목에서 apachectl을 선택한다.
#reboot - 재부팅한다.
---------------------------------------------------------------------------------
아파치의 로그파일이 일주일에 한번씩 4번 로테이트 되도록 설정하는 방법
- 소스파일로 설치한 경우에는 설치 폴더 하위폴더로 logs폴더가 생긴다.
이것을 logrotate를 이용해 로그 파일을 백업한다.
#vi /etc/logrotate.conf -logrotate.conf 내용에 추가한다.
------------------------------------------------------------
# system-specific logs may be also be configured here.
/usr/local/apache2/logs/*_log { - apache2/logs의 하위에 있는 모든 로그파일들을 뜻함
weekly
rotate 4
}
------------------------------------------------------------------------------------------------------
# cd /usr/local/apache2/logs
# logrotate -f /etc/logrotate.conf - 제대로 백업이 되는지 확인하기 위해 logrotate을 강제로 실행
# ls
access_log error_log httpd.pid httpd.pid.1.1 httpd.pid.1.2 httpd.pid.2.1
access_log.1 error_log.1 httpd.pid.1 httpd.pid.1.1.1 httpd.pid.2 httpd.pid.3
----------------------------------------------------------------------------------------------------------------------------------------------
18. 시스템이 runlrvel 3번으로 부팅하도록 설정하시오.
# vi /etc/inittab
---------------------------------------------------------------------------
# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault: - runlevel 을 3으로 바꿔준다.
---------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------
19. shin 사용자만 su 명령이 가능하게 설정하시오.
- SUID (Set User ID)에 관한 내용이다.
# whereis su - su 명령어의 위치를 찾는다.
su: /bin/su /usr/share/man/man1/su.1.gz
# ls -l /bin/su - su의 퍼미션을 확인한다.
-rwsr-xr-x 1 root root 24120 5월 25 00:19 /bin/su
# chmod 4750 /bin/su - 다른 사용자들의 접근을 막기 위해 Other 사용자를 제거한다.
# ls -ld /bin/su
-rwsr-x--- 1 root root 24120 5월 25 00:19 /bin/su
# chown root.shin /bin/su - shin사용자가 su 명령어를 사용할 수 있도록 그룹에 추가시켜준다.
# ls -ld /bin/su
-rwxr-x--- 1 root shin 24120 5월 25 00:19 /bin/su
# chmod 4750 /bin/su - SUID 퍼미션을 위해 퍼미션을 변경한다.
# ls -ld /bin/su
-rwsr-x--- 1 root shin 24120 5월 25 00:19 /bin/su
'Linux > Exercise' 카테고리의 다른 글
쉘프로그래밍 기초 3 - 연습용 (0) | 2008.11.24 |
---|---|
쉘프로그래밍 기초 2 - 연습용 (0) | 2008.11.21 |
쉘프로그래밍 기초 - 연습용 (0) | 2008.11.20 |
리눅스 시스템 1차 테스트 - 연습용 (0) | 2008.11.19 |
원격 서버에 로그 남기기 - 연습용 (0) | 2008.11.17 |
YUM을 이용한 패키지 설치 및 삭제 - 연습용 (0) | 2008.11.16 |