▶▷ 계정 만들기 ◁◀
◎ vi add,id ==> ./ad
▶▷ MySQL 계정 만들기 ◁◀
◎ mysqladmin -u아이디 -p비밀번호 create ID
로드 데이타 삽입 mysql -u user -p***** --local-infile DB
▶▷ MySQL 계정 유저 연결 하기 ◁◀
◎ my <Enter> ◎ GRANT ALL PRIVILEGES ON 아이디.* TO 아이디@localhost IDENTIFIED by '비밀번호'; ◎ myrelod
▶▷ - 가 있는 MySQL 계정 만들기 ◁◀
◎ my <enter> ◎ use mysql <enter> ◎ insert into user (host,user,password) values('localhost','아이디',password('비밀번호')); ◎ insert into db values('localhost','아이디','아이디','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'); ◎ myrelod
▶▷ mysql 루트 비번 바꾸기 ◁◀ [root@ns root]# // 루트로 접속한다. [root@ns root]# /etc/rc.d/rc3.d/./S90mysqld stop // mysql 프로세스를 죽인다. [root@ns root]# /usr/local/mysql/bin/./mysqld_safe --skip-grant-tables& // 임시모드로 mysql 실행 [root@ns root]# mysql // mysql 접속 mysql> use mysql; mysql> update user set password=password('newpw') where user = 'root'; // 루트 암호를 변경한다. mysql> flush privileges [root@ns root]# /usr/local/mysql/bin/./S90mysqld start& // mysql 재실행
▶▷ mysql ◁◀ mysql --local-infile=1 -u root -p 3.23.52 이상 load data infile 'post_num.txt' into table address fields terminated by '/t';
▶▷ 디비 체크하기/디비 복구 하기 ◁◀ myisamchk -r -q zetyx_division_freeboard mysqlcheck -uroot -p55 --auto-repair -A
▶▷ 디비 체크후 정정/복구 하기 ◁◀ mysqlcheck -uroot -p55 --auto-repair -A
▶▷ 계정 삭제하기 ◁◀
◎ userdel -r 아이디
▶▷ MySQL 계정 삭제하기 ◁◀
◎ mysqladmin -u아이디 -p비밀번호 creat ID
▶▷ nalove.org 서버 셋팅하기 ◁◀
◎ ln -s /free3/아이디 /free/아이디
▶▷ 초기 인덱스 변경 ◁◀
◎ vi /etc/skel/html/home.htm (무료) ◎ vi /etc/skel/html/index.htm (유료)
▶▷ - 가 있는 파일 삭제하기 ◁◀
◎ rm ./-f
================================================================================
▶▷ 도메인 포워딩 하기 ◁◀
◎ vi /etc/named.conf //----- 도메인 추가포워딩 해당서버 ◎ /etc/rc.d/init.d/named restart //----- 네임서버 재시작
◎ vi /usr/local/apache/conf/httpd.conf //----- 도메인 셋팅하기 <VirtualHost 서버아이피> DocumentRoot 절대경로 ServerName 도메인 ServerAlias www.도메인 CustomLog logs/access_log vcommon env=!CodeRed </VirtualHost> ◎ apachectl restart //----- 아파치 재시작
================================================================================
▶▷ 메일 셋팅 하기 ◁◀
◎ cd /etc/mail ◎ vi /local-host-names //----- 도메인이 있는 경우 설정 ◎ vi /virtusertable //----- 메일포워딩 계정설정 ◎ make all //----- 저장하기 ◎ /etc/rc.d/init.d/sendmail restart //----- 센드메일 재시작
▶▷ 메일추가 셋팅법 ◁◀
◎ vi /etc/mail/virtusertable //----- 메일포워딩 계정설정 ◎ adduser -M 아이디 -s /bin/false -g free //----- 메일 아이디 추가 ◎ make all //----- 저장하기 ◎ /etc/rc.d/init.d/sendmail restart //----- 센드메일 재시작
================================================================================
▶▷ jsp 계정 셋팅과 버추얼호스트 설정 ◁◀
html 폴더에 ROOT, webapps 생성 ※ 반드시 폴더 먼저 생성할것 drwxr-xr-x 2 root root 4096 8월 21 18:52 ROOT drwxr-xr-x 2 root root 4096 8월 21 18:52 WEB-INF drwxr-xr-x 4 root root 4096 8월 24 19:16 webapps [root@jsp1 html]# cd webapps drwxr-xr-x 4 root root 4096 8월 22 10:18 WEB-INF drwxrwxrwx 3 root root 4096 12월 19 2002 manager/web.xml
- 아파치 설정
<VirtualHost 211.110.17.171> DocumentRoot /free/home/seleven/html ServerName s11.co.kr ServerAlias www.s11.co.kr JkMount /*.jsp ajp13 JkMount /webapps/* ajp13 jkMount /ROOT/* ajp13 JkMount /servlet/* ajp13 JkMount /manager ajp13 JkMount /manager/* ajp13 CustomLog logs/access_log vcommon </VirtualHost>
- 톰캣 설정 vi /usr/local/jakarta-tomcat/conf/server.xml
<!--epnosamo.org--> <Host name="epnosamo.org" debug="0" appBase="/free/home/ryune/html" unpackWars="true"> <Context path="/webapps" docBase="webapps" reloadable="true"/> <Context path="/ROOT" docBase="ROOT" reloadable="true"/> <Context path="/manager" docBase="/free/home/ryune/html/webapps/manager" debug="0" privileged="true"></Context> <Alias>www.epnosamo.org</Alias> </Host> <!--fauction.co.kr--> <Host name="fauction.co.kr" debug="0" appBase="/free/home/winbass/html" unpackWars="true"> <Context path="/webapps" docBase="webapps" reloadable="true"/> <Context path="/ROOT" docBase="ROOT" reloadable="true"/> <Context path="/manager" docBase="/free/home/winbass/html/webapps/manager" debug="0" privileged="true"></Context> <Alias>www.fauction.co.kr</Alias> </Host>
</Engine>
</Service>
- admin tools manager 설정 vi /usr/local/tomcat/conf/tomcat-users.xml <?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="manager"/> <role rolename="admin"/> <user username="nayana" password="xxxxxx" roles="admin"/> <user username="gn5066" password="xxxxx" roles="manager"/> <user username="ryune" password="xxxxxx" roles="manager"/> <user username="joungjo" password="xxxxx" roles="manager"/> <user username="winbass" password="xxxxxx" roles="manager"/> </tomcat-users>
- admin tools manager 설정후 보안 설정 chmod 400 /usr/local/tomcat/conf/tomcat-users.xml chown -R gn5066.free /free/home/gn5066/html/webapps/work/gnwater.net/webapps chown -R ryune.free /free/home/ryune/html/webapps/work/epnosamo.org/webapps chown -R winbass.free /free/home/winbass/html/webapps/work/fauction.co.kr/webapps
- 서블릿 설정 vi /etc/profile JAVA_HOME=/usr/local/java CATALINA_HOME=/usr/local/tomcat PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin CLASSPATH=.:/usr/local/tomcat/common/lib/servlet.jar <--- 추가 export JAVA_HOME CATALINA_HOME CLASSPATH
vi /usr/local/jakarta-tomcat/conf/web.xml <!-- The mapping for the invoker servlet -->
<servlet-mapping> <servlet-name>invoker</servlet-name> <url-pattern>/servlet/*</url-pattern> </servlet-mapping>
- 톰캣 정지/실행 [root@sph3 bin]# ./shutdown.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JAVA_HOME: /usr/local/jdk [root@sph3 bin]# ./startup.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JAVA_HOME: /usr/local/jdk [root@sph3 bin]# /etc/rc.d/init.d/tomcat restart|stop|start
▶▷ 자바톰켓 리스트 출력 막는 것과 에러 페이지 지정 ◀
conf/web.xml 에서요
<init-param> <param-name>listings</param-name> <param-value>false</param-value> </init-param>
param-value 를 true 에서 false 로 바꾸고 http://okjsp.pe.kr/ 로 들어오면
404 not found 에러 메시지 페이지가 뜨게 됩니다.
그리고 이 404 페이지를 자신이 지정한 페이지로 가게 하려면
/conf/web.xml 에 <error-page> <error-code>404<error-code> <location>/error.jsp(지정한 페이지)</location> </error-page> 위에 부분을 추가하시면 됩니다...
jsp 기타 환경설정.
===============================================================================
▶▷ 메일 호스팅을 받을 경우 메일 포워딩 설정 ◁◀
-> dainco.com
www6. 번의 네임서버에서 설정 /etc/named.conf
zone "dainco.com"{ type master; file "maildainco.zone"; }; zone "scriptschool.co.kr"{ type master; file "www14.icomis.com.zone"; }; zone "dogeshop.com"{ type master; file "www14.icomis.com.zone"; }; zone "hebronj.com"{ type master; file "www14.icomis.com.zone"; };
/var/named/
zone 파일 따로 하나 생성(www14. zone 복사 호스팅 받고 있는 서버)
-rw-r--r-- 1 named named 195 2월 14 2002 localhost.zone -rw-r--r-- 1 root root 553 7월 11 12:18 lomo.sarang.net.zone -rw-r--r-- 1 root root 527 11월 26 12:15 maildainco.zone <----------
maildainco.zone 파일 내용 $TTL 86400 @ IN SOA xp.icomis.net. root.xp.icomis.net. ( 2000122101 ; serial 28800 ; refresh 14400 ; retry 3600000 ; expire 86400 ; default_ttl ) IN NS xp.icomis.net. IN MX 10 mail.dainco.com.
; @ IN A 211.110.17.159 www IN A 211.110.17.159 mail IN A 211.39.130.158 <-----
▶▷ jsp 자바메일러 중 spambot 인 경우 sendmail.cf 주석처리◁◀
################################################### ######### Headers to be checked ################### ###################################################
HSubject: $>check_subject HContent-Type: $>check_ct HDate: $>check_date HX-Mailer: $>check_mailer HX-MimeOLE: $>check_ole #HMessage-Id: $>check_msgid <--------------------이부분 처리 HErrors-To: $>check_errto
#### If any of these fields #### shows up, It is bogus.
# it's virus HX-Spanska: $>check_happy99 HContent-Disposition: $>check_sircam
# it's spam bot HResent-Date: $>check_all HX-PMFLAGS: $>check_all HX-Reply-To: $>check_all HX-AD2000-Serial: $>check_all HX-AD2000-Register: $>check_all HX-Topica-Id: $>check_all HX-Company-Info: $>check_all HX-EM-Registration: $>check_all HX-User: $>check_all HComments: $>check_all HX-Library: $>check_all
## Error messages definition ## Error codes refer to RFC821.
D{Msg_mailer}"553 SPAMBOT is not allowed here." D{Msg_adv}"553 ADV mail not accepted." D{Msg_virus}"553 Your message may contain the" D{Msg_master}"If you have questions, please email admin@$j." D{Msg_date}"553 Bogus date format - SPAMMER - " DMsg_to}"501 Bogus recipient address." D{Msg_from}"553 Must exist sender mail address" D{DENYPRON}"553 Deny Porno spam mail!!!" [1]+ Killed sendmail -bt [root@sph4 mail]# vi sendmail.cf
#### If any of these fields #### shows up, It is bogus.
# it's virus HX-Spanska: $>check_happy99 HContent-Disposition: $>check_sircam
# it's spam bot HResent-Date: $>check_all HX-PMFLAGS: $>check_all HX-Reply-To: $>check_all HX-AD2000-Serial: $>check_all HX-AD2000-Register: $>check_all HX-Topica-Id: $>check_all HX-Company-Info: $>check_all HX-EM-Registration: $>check_all HX-User: $>check_all HComments: $>check_all HX-Library: $>check_all
## Error messages definition ## Error codes refer to RFC821.
D{Msg_mailer}"553 SPAMBOT is not allowed here." D{Msg_adv}"553 ADV mail not accepted." D{Msg_virus}"553 Your message may contain the" D{Msg_master}"If you have questions, please email admin@$j." D{Msg_date}"553 Bogus date format - SPAMMER - " DMsg_to}"501 Bogus recipient address." D{Msg_from}"553 Must exist sender mail address" D{DENYPRON}"553 Deny Porno spam mail!!!"
################################################################## # Additional Rulesets for spam, virus mail # by JoungKyun Kim <http://www.oops.org> # Original : http://quanta.khu.ac.kr/~dacapo/sendmail/rulesets/ # Modified : JoungKyun Kim <admin@oops.org> ##################################################################
▶▷ sendmail.cf 필터링 ◁◀
################################################### ######### REGEX MAP ################### ###################################################
KAD2000check regex -aAD2000 ....._NextPart_000_0..._01C0F..A\.93A..... Kadvkchk regex -aADKSUB .*(광고|홍보|광.고|홍.보|바스트메일|廣.*告).* Kadvechk regex -aADESUB .*(ADV|성인|SEX|PORN|YOUNG|STAR|STRIP|NAMED|NUDE|CELEBRIT|casino|business|congratulation|see transcript).* Kblankworm regex -aBLWORM \-\-VE.+
################################################### ######### Headers to be checked ################### ###################################################
HSubject: $>check_subject HContent-Type: $>check_ct HDate: $>check_date HX-Mailer: $>check_mailer HX-MimeOLE: $>check_ole HMessage-Id: $>check_msgid HErrors-To: $>check_errto
#### If any of these fields #### shows up, It is bogus.
================================================================================
▶▷ zone 파일 만들기 ◁◀
◎ cd /var/named //--- zone 파일이 있는 폴더로 가기 ◎ cp -a www2.xp.zone sph1.icomis.zone //--- zone 카피하기 ◎ vi sph1.icomis.zone //--- 카피한 파일열기
$TTL 86400 @ IN SOA ns.yerocity.com. root.ns.yerocity.com. ( 1997022700 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN NS ns.yerocity.com. IN MX 10 sph1.icomis.com. ; @ IN A 211.189.18.102 www IN CNAME @ ftp IN CNAME @ * IN CNAME @
================================================================================ ▶▷ 네임서버 중복 체크하기 ◁◀ named-checkconf
================================================================================ ▶▷ 네임서버 리로딩 ◁◀ rndc reload
================================================================================ ▶▷ 랜카드에 여러 ip 할당 사용하기 ◁◀ ifconfig eth0:0 192.168.0.243 255.255.255.0 up ifcfg-eth0:0 을 만드시든지 또는 /etc/rc.d/rc.local 에 해당 명령을기입하시면 됩니다. 네임서버와 아파치 네임서버에 해당 아이피 설정하면된다.
ifconfig eth1 up
================================================================================ ▶▷ 실시간 이상유무 로그 보기(네임서버 이상유무시 사용했음) ◁◀ tail -f /var/log/messages
================================================================================ ▶▷ 입출력 신호 보기 ◁◀ vmstat 1
================================================================================ ▶▷ 하드 디스크 이상유무 로그 보기 ◁◀ dmesg
================================================================================
▶▷ php 업로드 제한 설정하기 ◁◀
◎ vi /usr/local/apache/conf/php.ini ◎ upload_max_filesize = 5M
================================================================================
▶▷ 계정용량 설정하기 ◁◀
◎ repquota -a //----- (모든 사용자 사용공간 알아보기) ◎ edquota -p 아이디 같게할 아이디 //----- ( 앞 사용자와 용량을 같게 적용 ) ◎ quotacheck -avug //----- (쿼터체크하기-구서버-) ◎ quotacheck -augm //----- (쿼터체크하기-신서버-) ◎ edquota 아이디 //----- (수동으로 쿼터 설정하기) ◎ edquota -p 설정된아이디 `awk -F: '$3 > 513 {print $1}' /etc/passwd` Quotas for user lanobia: /dev/sdb1: blocks in use: 280000, limits (soft = 290000, hard = 290000) inodes in use: 1619, limits (soft = 200000, hard = 200000)
================================================================================
▶▷ 특정 파일 찾기 ◁◀
◎ 문서안에서 grep 찾을 거 -r 폴더 ◎ ex) grep zboard.php -r /free/home
◎ 폴더안에서 find 경로 옵션 찾을거 ◎ ex) find /free/home/ -name zboard.php
◎ 특정 사용자 소유의 모든 파일을 찾을때는? ◎ find / -user "사용자 ID" -print
▶▷ 서버 다운 원인제공자 찾기 ◁◀
◎ cd /proc //------ 프로세서 ID 있는 폴더임 ◎ ps aux | grep httpd ◎ ls -al 프로세서ID
▶▷ 현재 Mysql 사용자 확인 ◁◀
◎ my <Enter> ◎ show processlist;
▶▷ 파일 시스템 점검및 복원 ◁◀
◎ e2fsck /dev/hda0
▶▷ 실시간 로그보기 ◁◀
◎ tail -f /usr/local/apache/logs/access_log //----- 실시간으로 보기 ◎ tail -f /usr/local/apache/logs/access_log > 파일명 //----- 실시간으로 저장 ◎ head --lines=20 access_log // 헤더부분에서 20줄 보기
▶▷ 아파치 이상유무 ◁◀
◎ httpd -t
================================================================================
▶▷ 특정파일 차단하기 ◁◀
<Files "차단할 파일"> Order allow,deny Deny from all </Files>
================================================================================
▶▷ 결제시스템 500 오류시 서버에 데몬확인 ◁◀
◎ icomis(211.172.226.22 서버)로 접속 ◎ cd /home/icom/html/unic/UniCredit ◎ ./start.sh [아이디 nayana 암호 na119]
================================================================================
▶▷ MySQL stop / start ◁◀
◎ mysql.server stop ◎ mysql.server start
▶▷ 아파치 stop / start ◁◀
◎ apachectl restart (재시작) ◎ apachectl stop (중지) ◎ apachectl start (시작)
▶▷ 센드메일 stop / start ◁◀
◎ /etc/rc.d/init.d/sendmail restart (재시작) ◎ /etc/rc.d/init.d/sendmail stop (중지) ◎ /etc/rc.d/init.d/sendmail start (시작)
▶▷ 네임서버 stop / start ◁◀
(www.icomis.com / www6,icomis,com / www7.icomis.com) ◎ /etc/rc.d/init.d/named restart (재시작) ◎ /etc/rc.d/init.d/named stop (중지) ◎ /etc/rc.d/init.d/named start (시작)
▶▷ SSH stop / start ◁◀
◎ 다른서버에서 해당서버로 telnet으로 접속 ◎ /etc/rc.d/init.d/sshd2 restart (재시작) ◎ /etc/rc.d/init.d/sshd2 stop (중지) ◎ /etc/rc.d/init.d/sshd2 start (시작)
▶▷ 방화벽 stop / start ◁◀
◎ /etc/rc.d/init.d/oops_firewall stop (정지) ◎ /etc/rc.d/init.d/oops_firewall start (시작)
================================================================================
▶▷ 도메인이 있는 경우 트래픽 볼수 있도록 셋팅 하기 ◁◀
<IfModule mod_throttle.c> ThrottlePolicy None <Location /throttle_status_nayana_of_korea> //----- 서버 전체 SetHandler throttle-status </Location> <Location /trafic_mysite> //----- 개인 SetHandler throttle-me </Location> </IfModule>
어플리케이션 다운로드 URL http://www.snert.com/Software/mod_throttle/ http://www.snert.com/Software/mod_throttle/mod_throttle312.tgz
설치 --------------------------------------------------------------------- STATIC (APACHE mod_throttle 부분) ---------------------------------------------------------------------
./configure --disable-shared=throttle \ --add-module=/usr/local/mod_throttle-3.1/mod_throttle.c
--------------------------------------------------------------------- DSO --------------------------------------------------------------------- cd /usr/local/mod_throttle-3.1 make install mod_throttle.so를 apache디렉토리 libexec안에 복사해줍니다. 그런후 httpd.conf에 mod_throttle부분을 수정. (compile시 apxs에 위치를 Makefile안에 전체경로로 변경후 make하세요.) LoadModule throttle_module libexec/mod_throttle.so AddModule mod_throttle.c ---------------------------------------------------------------------
throttle에 대한 httpd설정.
#[모듈 설정부분] <IfModule mod_throttle.c> ThrottlePolicy none <Location /throttle-status> SetHandler throttle-status </Location> <Location /throttle-me> SetHandler throttle-me </Location> <Location /~*/throttle-me> SetHandler throttle-me </Location> </IfModule>
#[버츄얼 호스팅 부분] <VirtualHost xxx.xx.xxx.xxx> ServerName xxx.com DocumentRoot /home/xxx ThrottlePolicy Volume 1000M 1d # 1일 1G ThrottlePolicy Request 1000 1d # 1일 1000번 </VirtualHost>
<IfModule mod_throttle.c> ThrottlePolicy Volume 300M 1d <Location /throttle-status> SetHandler throttle-status </Location>
<Location /throttle-me> SetHandler throttle-me </Location>
<Location /~*/throttle-me> SetHandler throttle-me </Location> <Location /throttle-status> Order deny,allow Deny from all Allow from all #원래 Allow가 가능 한지역만 설정 해야 함... #로그 기록을 관리하는 IP... </Location> </IfModule>
Virtual 도메인 별로 다음과 같이 설정해 주세요.
<VirtualHost www.domain.com> ServerAdmin root at www.domain.com ServerName www.domain.com DocumentRoot /usr/local/apache/www Options ExecCgi Includes ThrottlePolicy Volume 100M 1d //하루 100M ThrottlePolicy Request 1000 1d //하루 천번 ThrottleClientIP 1100 volume 2 10 //로그 1100k ErrorLog /usr/local/apache/logs/error_log TransferLog /usr/local/apache/logs/access_log </VirtualHost>
mod_gzip과 같이 사용해 볼려고 했는대... throttle_status에서 에러가 발생 했음.
로그기록은 http://www.domain.com/throttle-status 도메인당 로그기록 열람할수 있고, 리셋할수도 있어요.... 그럼..
▶▷ Apache 에서 DoS 공격 막기 (apache 1.3x, 2.x 모두) ◁◀ =============================================================================
--------------------------------------------------------------------------------------- 1. mod_dosevasive 설치 --------------------------------------------------------------------------------------- 다운로드 : http://www.rootman.co.kr/bbs/zboard.php?category=4&id=dataroom http://www.nuclearelephant.com/projects/dosevasive/
[ root@rootman root]# tar xvfz mod_dosevasive.1.8.tar.gz [ root@rootman root]# cd /usr/local/apache/bin [ root@rootman bin]# ./apxs -iac ../mod_dosevasive/mod_dosevasive.c [ root@rootman bin]# ./apxs -iac ../mod_dosevasive/mod_dosevasive.c gcc -DLINUX=22 -DUSE_HSREGEX -fpic -DSHARED_CORE -DSHARED_MODULE -I/usr/local/apache/include -c ../mod_dosevasive/mod_dosevasive.c gcc -shared -o ../mod_dosevasive/mod_dosevasive.so mod_dosevasive.o [activating module `dosevasive' in /usr/local/apache/conf/httpd.conf] cp ../mod_dosevasive/mod_dosevasive.so /usr/local/apache/libexec/mod_dosevasive.so chmod 755 /usr/local/apache/libexec/mod_dosevasive.so cp /usr/local/apache/conf/httpd.conf /usr/local/apache/conf/httpd.conf.bak cp /usr/local/apache/conf/httpd.conf.new /usr/local/apache/conf/httpd.conf rm /usr/local/apache/conf/httpd.conf.new
[ root@rootman root]# vi /usr/local/apache/conf/httpd.conf <--- 아래두줄이 추가되었나 확인한다. LoadModule dosevasive_module libexec/mod_dosevasive.so AddModule mod_dosevasive.c
[ root@rootman /root]# /usr/local/apache/bin/apachectl graceful <--- 아파치재가동시킨다.
※ apache_1.3.28/src/modules/extra <---- 신규 설치시 mod_dosevasive.c 파일을 복사
--------------------------------------------------------------------------------------- 2. httpd.conf에는 다음과 같이 설정을 추가한다. --------------------------------------------------------------------------------------- <IfModule mod_dosevasive.c> DOSHashTableSize 3097 DOSPageCount 3 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 3600 </IfModule>
---------------------------------------------- 추가적으로 지시자를 추가하실 수 있습니다. ---------------------------------------------- DOSEmailNotify master@rootman.co.kr DOSSystemCommand "su - someuser -c '/sbin/... %s ...'"
- DOSHashTableSize 각 자식 해쉬테이블 마다 탑레벨 노드의 수를 지정합니다. 수치가 높으면 높을수록 더 많은 퍼포먼스가 나타나지만 테이블스페이스에 메모리를 남기게 된다
접속량이 많으면 이 수치를 높혀도 된다.
- DOSPageCount 이것은 같은 페이지 또는 URI, 인터벌당 요청수에 대한 카운트 수이다. 지정된 값이 초과되면 클라이언트에 대한 IP 정보가 블러킹리스트에 추가된다.
- DOSSiteCount 지정된 시간동안 같은 페이지를 지정된 수 보다 초과될경우 IP 정보가 블러킹리스트에 추가된다.
- DOSPageInterval 페이지 카운트 시발점, 디폴트는 1초이다.
- DOSSiteInterval 사이트 카운트 시발점, 디폴트는 역시 1초이다.
- DOSBlockingPeriod 클라이언트가 블랙리스트에 추가되어 블러킹되는 총 시간. 이때 클라이언트는 403 (Forbidden) 에러를 출력하게 된다.
- DOSEmailNotify 이 값이 지정되면, IP가 블러킹될때마다 지정된 이메일로 발동된다.
주의 : 메일러는 mod_dosevasive.c 에 정확하게 지정되야 한다. 디폴트는 "/bin/mail -t %s" 이다.
- DOSSystemCommand 이 값이 지정되면, 시스템은 아이피가 블러킹될때마다 명령행을 실행한다. 이것은 아이피 필터링이나 다른 도구를 사용하도록 설계되었습니다.
--------------------------------------------------------------------------------------- 3. 인가된 IP 주소 할당 --------------------------------------------------------------------------------------- 버전 1.8에서는 아이피가 블러킹되더라도 인가된 클라이언트 아이피에 대해서는 적용되지 않습니다. 인가시키는 목적은 소프트웨어, 스크립트, 로컬서치로봇, 해당 서버로부터의 많은 요청인한 웹거부로 부터의 또다른 프로그램을 보호하는데 있습니다.
아파치에서 설정하는 방법은 다음과 같습니다.
DOSWhitelist 127.0.0.1 DOSWhitelist 127.0.0.*
와일드카드는(*) 필요하다면 최대 8진수(xxx.*.*.*)까지 사용할 수 있습니다.
================================================================================
▶▷ 시간조정하기 ◁◀
◎ cd /etc/cron.hourly ◎ ./time
================================================================================
▶▷ 리눅스버전확인 ◁◀
◎ cd /etc ◎ vi redhat-release
================================================================================
▶▷ vi에서 한번에 바꾸기 ◁◀
◎ .,$s/바꿀내용/바뀔내용/g
================================================================================ 1073,2507d
▶▷ 패킷이 지나가는 경로추적 ◁◀
◎ traceroute nayana.com
▶▷ 도메인 검색 ◁◀
◎ nslookup nayana.com
▶▷ 현재 디렉토리 퍼미션 파일찾기 ◁◀ ◎ find -type d -maxdepth 1 -perm 000
▶▷ ttmall 설치 전 서버 세팅 작업 ◁◀ [gjsuhyup@webhost8 ttmall]$ ./admin.cgi ./admin.cgi: error while loading shared libraries: libmysqlclient.so.10: cannot open shared object file: No such file or directory [gjsuhyup@webhost8 ttmall]$
해결방법
시스템 관리자(root) 권한이 있을 경우
/etc/ld.so.conf 파일을 편집하여, mysql library의 경로를 추가. 쉘상에서 ldconfig 을 실행하여 변경된 ld.so.conf를 적용.
▶▷ 서버 계정 백업하기 ◁◀ cp -auvf /home/* /backup/home 이런식으로 하면 증가분 백업만 되고. 그리고 이 증가분 백업을 네트워크로 연결하여 똑같이 만드는게... cpbk 또는 mirrordir 이 있어..
▶▷ 퍼미션 100 가져온기 ◁◀ find -type d -maxdepth 1 ! \( -perm 100 -or -perm 777 -or -perm 755 -or -perm 701 -or -user root -or -user icomis \) > you_dir.cgi find / -user "nobody" -print
▶▷ 현재 디렉토리 퍼미션 파일찾기 ◁◀ ◎ find -type d -maxdepth 1 -perm 000 find /free5/* -type d -maxdepth 1 -perm 000 -or -perm 100
▶▷ 현재 디렉토리 퍼미션 파일찾아와 삭제 ^^;◁◀ find /free4/* -type d -maxdepth 1 -perm 000 -or -perm 100 -exec rm -rf {} \; find /free5/* -type d -maxdepth 1 -perm 000 -o -perm 100 -exec rm -rf {} \;
find /free5/* -type d -maxdepth 1 -perm 000 -exec rm -rf {} \; -perm 100 -exec rm -rf {} \;
▶▷ 현재 디렉토리 그룹권한이 root인것만 파일찾아와 삭제 ^^;◁◀ find -group root -type d -maxdepth 1 -exec rm -rf {} \;
▶▷ 몇일간 이전의 자료만 삭제 ◁◀ find /home -type f -maxdepth 1 ! \( -mtime -30 \) -exec rm -rf {} \;
▶▷ find 명령을 이용해서 하위 디렉토리까지 검색해서 특정파일의 내용을 replace하기 ◁◀ 예를 들어 내 계정에서 확장자가 php인 파일에서 특정문자열을 교체하고 싶으시다면,
# find /home/myid/ -name *.php | awk '{ print "cat "$1" | sed \"s/찾을문자열/바꿀문자열/g\" >"$1 }' | sh 또는 # find /home/myid/ -name '*.php' -exec perl -pi -e 's/찾을문자열/바꿀문자열/g' {} \; 하시면 됩니다.
▶▷ 파일시스템 모두 복사하기 ◁◀ 파일 시스템 전체나 디렉토리 트리 구조를 동일하게 복사하기 위해서는 다음의 명령어를 쓴다. # mkdir /home/bc/destination # cd /targetdir # find . -depth -print | cpio -pmdvl home/bc/destination 이러면 /targetdir의 모든 것이 /home/bc/destination으로 복사된다.
▶▷ 그룹 유저에 추가 ◁◀ usermod -g free user-id
▶▷ 아파치 에러페이지 유저별 설정하기 ◁◀
계정에서 .htaccess ErrorDocument 404 /경로명
▶▷ 아파치 디렉토리 인증 .htaccess ◁◀ 설정파일에 httpd.conf 파일에 600라인쯤에 보면 AllowOverride none 이라는 구문이 있는데요.. 그부분의 none을 All로 수정하세욤..그리고 아파치 제시작하시구..
#cat /home/httpd/html/member/.htaccess <-- 요기서 /home/httpd/html/member는 보호할 디렉토리이름 AuthType Basic <----- 인증방식..기본값.. Authname "특정회원에게만 허락합니다?" AuthUserFile /home/httpd/.htmemuser <---- .htmemuser(사용자정보가 들어있는 파일)가 있는 위치. Require valid-user
#htpasswd -c /home/httpd/.htmemuser 인증할ID <--- -c 옵션은 처음에 .htmemuser 파일이 존해하지 않을때 파일을 만드는 옵션입니다.
#htpasswd .htmemuser 인증할ID <---- 추가 인증 아이디시 -c 옵션하지 말것
▶▷ 메일 여러개로 포워딩하기 다른 곳으로◀ /free/home/test/.forward \getto kohkoh@yumc.yonsei.ac.kr tklee@coexkorea.co.kr lee@coexkorea.co.kr cmc@coexkorea.co.kr sayme502@korea.com
▶▷ 젠드옵디마 설치 ◁◀ tar xvfz ZendOptimizer-2\[1\].1.0-Linux_glibc21-i386.tar.gz dir cd ZendOptimizer-2 cd ZendOptimizer-2.1.0-Linux_glibc21-i386/ dir ./install
php.ini [Zend] zend_optimizer.optimization_level=15 zend_extension=/usr/local/Zend/lib/ZendOptimizer.so
▶▷ netstat -na 각 상태 명칭 ◁◀ netstat -na 로 확인해 보면 Local Address, Foreign Address, State 등의 정보가 출력되는데, 이 중 State 부분에 보이는 메시지를 주목하면 된다.
### 참고 : State 부분에 가능한 연결상태 ################################### LISTEN : 서버의 데몬이 떠서 접속 요청을 기다리는 상태 SYS-SENT : 로컬의 클라이언트 어플리케이션이 원격 호스트에 연결을 요청한 상태 SYN_RECEIVED : 서버가 원격 클라이언트로부터 접속 요구를 받아 클라이언트에게 응답을 하였지만 아직 클라이언트에게 확인 메시지는 받지 않은 상태 ESTABLISHED : 3 Way-Handshaking 이 완료된 후 서로 연결된 상태 FIN-WAIT1 , CLOSE-WAIT , FIN-WAIT2 : 서버에서 연결을 종료하기 위해 클라이언트에게 종결을 요청하고 회신을 받아 종료하는 과정의 상태 CLOSING : 흔하지 않지만 주로 확인 메시지가 전송도중 분실된 상태 TIME-WAIT : 연결은 종료되었지만 분실되었을지 모를 느린 세그먼트를 위해 당분간 소켓을 열어놓은 상태 CLOSED : 완전히 종료 ################################################################################
▶▷ ip 포워딩 MASQUERADE◁◀ iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
▶▷ 열려 있는 포트 확인 ◁◀ netstat -anp | grep LISTEN
▶▷ 웹서버 사용자 측정 ◁◀ Unix / Linux : netstat -n | grep 80 | grep EST | wc -l
▶▷ 네트워크 싱그 공격 보기 ◁◀ netstat -a -n|grep SYN
▶▷ 외부로부터 ping 막기 ◁◀ /proc/sys/net/ipv4/icmp_echo_ignore_all
▶▷ 도스 ping 으로 라이터 경로 알기 ◁◀ ping ntsql1.icomis.com -t -i 9
▶▷ 섹터 에러시 파티션 정보보기 ◁◀ cat /proc/partitions
▶▷ 서버 포트 스캔 ◁◀ nmap -v -sS -O 220.95.232.25
▶▷ 설정된 크론 보기 ◁◀ crontab -l ▶▷ rpm 실행 경로 ◁◀ /var/lib/rpm
▶▷ 표준 시간 설정 ◁◀ rdate -s time.bora.net rdate -s time.kriss.re.kr
▶▷ 쉘 ftp 전송 ◁◀ /usr/bin/ftp -n 111.222.333.444 <<EOF user account password cd /home/logs/ ascii hash get logfile bye EOF
▶▷ rpm 설처프로그램 퍼미션 재 조정 ◁◀ /etc/rc.d/init.d/network restart ifconfig rpm --setperms -a /etc/rc.d/init.d/network restart cd dir rm -f * df ps -ef vi sec chmod 700 sec ./sec rm sec
▶▷ 아무문제 없는 컴파일 에러날때 ◁◀ configure: error: C preprocessor "/lib/cpp" fails sanity check /usr/src 커널이 없을때임..
▶▷ etc 복구시 복사할 파일들 ◁◀ vi /etc/hosts vi /etc/sysconfig/network vi /etc/passwd vi /etc/shadow vi /etc/group vi /etc/gshadow vi /etc/named.conf vi /etc/named/* vi /etc/mail/local-host-name vi /etc/mail/virtable--- vi /usr/local/apache/conf vi /etc/rsyncd.conf crontab -e /shell/* vi /etc/oops-firewall/filter.conf /etc/rc.local /var/mail vi /etc/fstab chmod 400 /etc/shadow chmod 400 /etc/gshadow
▶▷ 2U intel l440gx+ scsi 설정 ◁◀ boot: linux apic resuce
▶▷ perl-5.8.0 설치 및 Encode 모듈 설치 ◁◀ - 모듈 설치 유무 검사 아래 명령을 실행해서 아무런 메세지 없이 실행되면 모듈이 설치되어 있는 것입니다. $ perl -e "use Encode" - 모듈 설치 일반적으로 Perl 모듈은 각 모듈 소스를 다운로드 받아 직접 설치과정을 거쳐야합니다. 하지만, CPAN 모듈이 설치되어 사용할 수 있다면, 아래 명령으로 보다 쉽게 관련 모듈을 설치할 수 있습니다. # perl -MCPAN -e "install Encode"
# gzip -dc stable_tar.gz | tar xf - # cd perl-5.8.0 # sh Configure -Dcc=gcc -de # make # make test # make install Do you wish to have /usr/bin/perl be the same as /usr/local/bin/perl? [y] at installperl line 483. y # perl -v
▶▷ src.rpm 설치 sendmail(샌드메일) ◁◀ rpm -qa | grep send rz vi /etc/redhat-release dir rpm --rebuild --target i686 sendmail-8.12.10-1kr.src.rpm ----------------------------------------------------------------------- libsasl........ ----------------------------------------------------------------------- rpm -Uvh sendmail-8.12.10-1kr.src.rpm cd /usr/src/redhat/SPECS/ dir rpm -qa | grep sasl rpm -qa | grep ssl vi sendmail.spec ------------------------------------------------------------------------- Requires: cyrus-sasl >= 1.5.24-20 openssl >= 0.9.6b BuildRequires: cyrus-sasl-devel >= 1.5.24-20 openssl-devel >= 0.9.6b # -------------------------------------------------------------------------
rpm -bb --target i686 sendmail.spec rpmbuild -bb --target i686 sendmail.spec cd ../RPMS/i686/ dir rpm -Uvh sendmail-cf-8.12.10-1kr.i686.rpm rpm -qa | grep send* rpm -qa | grep send cd /etc/mail dir vi virtusertable ps -ef /etc/rc.d/init.d/sendmail restart /etc/rc.d/init.d/sendmail restart
▶▷ 한라인 쉘 sendmail 보내기 ◁◀ echo -ne "Subject: databases\nasdfasdf\n" | sendmail -t -f hd0658@hotmail.com webpd@nayana.com
▶▷ redhat 9.0, fedora sendmail.mc, sendmail.cf 수정 ◁◀ - localhost에서만 보내는 메일에 대한 relay가 디폴트일 경우가 많으므로 메일 서버로의 사용을 위해서 해당 부분 설정 DAEMON_OPTIONS('Port=smtp, Addr=127.0.0.1, Name=MTA')dnl 위의 설정 내용에서 앞에 dnl을 추가함(주석 처리 효과)
이렇게 수정 완료후, 아래의 명령어를 통해 sendmail.cf 파일을 재생성 m4 sendmail.mc > sendmail.cf - 그 다음에 sendmail 리스타트
▶▷ 스위치 snmp, mrtg 설치 ◁◀ cd /home/icom/html/mrtg2/ ll cd s211-130/ dir vi s201.cfg cd s211-130/ pwd cd ../bin/ dir ./cfgmaker --global 'WorkDir: /home/icom/html/mrtg2/s211-130' --global 'Options[_]: bits,growright' --output /home/icom/html/mrtg2/s211-130.cfg nayana@211.218.126.130 vi ../s211-130.cfg dir ll ./indexmaker ../s211-130.cfg > index.html mv index.html ../s211-130 cd ../s211-130 dir ll pwd ll ll -al vi /etc/crontab perl /home/icom/html/mrtg2/bin/mrtg /home/icom/html/mrtg2/s211-130.cfg ll vi /etc/crontab
▶▷ intel Pro/100 랜카드 에러 잡기 ◁◀ OS: Red Hat 8.0 Hardware: IBM Thinkpad T23 Intel Pro/100 VE Issue: There is an apparent issue with the internal network card that is built-in on the IBM Thinkpad T-23 when used with Red Hat 8.0 (maybe other distros also, but I have only had Red Hat installed on that model of laptop). The card that comes with the laptop is an Intel Pro/100 VE. Apparently when sleep mode is enabled it can cause PCI bus errors which cause the network functions to stop working until you restart the network services. Symptoms: -- You will intermittantly lose network connectivity although the interface reports itself in the up state. -- Additionally you may see the following error listed in /var/log/messages kernel: eepro100: wait_for_cmd_done timeout! Resolution: -- First you will need to download and compile the eepro100-diag tool. (this tool was written by Donald Becker). You can download the version I used from here or check http://www.scyld.com/diag/ for the most recent version. -- Once you have the source downloaded you will need to compile it. To compile it type the following command: cc -O -Wall -o eepro100-diag eepro100-diag.c This will leave you with a binary file named eepro100-diag -- Run the following command as root eepro100-diag -ee Look for a line telling you sleep mode is enabled: Sleep mode is enabled. This is not recommended. Under high load the card may not respond to PCI requests, and thus cause a master abort. To clear sleep mode use the '-G 0 -w -w -f' options. -- To turn of sleep mode run the command stated above (as root), i.e.: eepro100-diag -G 0 -w -w -f -- Once you have run the command you will need to cold boot the computer. The above steps should resolve the issue of the Intel Pro/100 VE periodically failing to work with Red Hat 8.0 Comments? If you have any questions or comments you can email me at linux@tadlocks.net. -------------------------------------------------------------------------------- December 2002; ver. 1.01
▶▷ 영조 전용 웹서버 셋팅 및 apm 설치 컴파일 하기 ◁◀
bios 셋팅 다시 초기화 및 플로피 등 설정
w ls -al vi install.log w ps -ef rm -f * vi .bash_profile ------------------------------------------------------------------------------------------------------------ PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/apache/bin BASH_ENV=$HOME/.bashrc USERNAME="root" ------------------------------------------------------------------------------------------------------------
vi /etc/hosts vi /etc/default/useradd ------------------------------------------------------------------------------------------------------------ # useradd defaults file GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel -----------------------------------------------------------------------------------------------------------
vi /etc/login.defs ------------------------------------------------------------------------------------------------------------- # *REQUIRED* # Directory where mailboxes reside, _or_ name of file, relative to the # home directory. If you _do_ define both, MAIL_DIR takes precedence. # QMAIL_DIR is for Qmail # #QMAIL_DIR Maildir MAIL_DIR /var/spool/mail #MAIL_FILE .mail
# Password aging controls: # # PASS_MAX_DAYS Maximum number of days a password may be used. # PASS_MIN_DAYS Minimum number of days allowed between password changes. # PASS_MIN_LEN Minimum acceptable password length. # PASS_WARN_AGE Number of days warning given before a password expires. # PASS_MAX_DAYS 99999 PASS_MIN_DAYS 0 PASS_MIN_LEN 5 PASS_WARN_AGE 7
# # Min/max values for automatic uid selection in useradd # UID_MIN 500 UID_MAX 60000
# # Min/max values for automatic gid selection in groupadd # GID_MIN 500 GID_MAX 60000
# # If defined, this command is run when removing a user. # It should remove any at/cron/print jobs etc. owned by # the user to be removed (passed as the first argument). # #USERDEL_CMD /usr/sbin/userdel_local
# # If useradd should create home directories for users by default # On RH systems, we do. This option is ORed with the -m flag on # useradd command line. # CREATE_HOME yes
UMASK 076 ------------------------------------------------------------------------------------------------------------
vi /etc/group ---------------------------------------------------------------------------------------- root:x:0:root bin:x:1:root,bin,daemon daemon:x:2:root,bin,daemon sys:x:3:root,bin tty:x:5: disk:x:6:root mem:x:8: kmem:x:9: wheel:x:10:root,icomis mail:x:12:mail man:x:15: lock:x:54: nobody:x:99: users:x:100: slocate:x:21: floppy:x:19: vcsa:x:69: utmp:x:22: mailnull:x:47: rpm:x:37: rpc:x:32: xfs:x:43: rpcuser:x:29: nfsnobody:x:65534: nscd:x:28: ident:x:98: radvd:x:75: pcap:x:77: icomis:x:500: mysql:x:501: popusers:x:45: joungjo:x:502: realnike:x:503: ------------------------------------------------------------------------------------------------------------
vi /etc/pam.d/su ------------------------------------------------------------------------------------------------------------ #%PAM-1.0 auth required /lib/security/pam_wheel.so debug group=wheel auth sufficient /lib/security/pam_rootok.so # Uncomment the following line to implicitly trust users in the "wheel" group. #auth sufficient /lib/security/pam_wheel.so trust use_uid # Uncomment the following line to require a user to be in the "wheel" group. #auth required /lib/security/pam_wheel.so use_uid auth required /lib/security/pam_stack.so service=system-auth account required /lib/security/pam_stack.so service=system-auth password required /lib/security/pam_stack.so service=system-auth session required /lib/security/pam_stack.so service=system-auth session optional /lib/security/pam_xauth.so -------------------------------------------------------------------------------------------------------------~
vi /etc/inittab ------------------------------------------------------------------------------------------------------------- # Run gettys in standard runlevels 1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 3:2345:respawn:/sbin/mingetty tty3 #4:2345:respawn:/sbin/mingetty tty4 #5:2345:respawn:/sbin/mingetty tty5 #6:2345:respawn:/sbin/mingetty tty6
# Run xdm in runlevel 5 # xdm is now a separate service x:5:respawn:/etc/X11/prefdm -nodaemon --------------------------------------------------------------------------------------------------------------
vi /etc/fstab ----------------------------------------------------------------------------------------------------- LABEL=/boot /boot ext3 defaults 1 2 none /dev/pts devpts gid=5,mode=620 0 0 LABEL=/home /home ext3 defaults,usrquota,grpquota,data=journal 1 2 none /proc proc defaults 0 0 none /dev/shm tmpfs defaults 0 0 LABEL=/tmp /tmp ext3 defaults 1 2 LABEL=/usr /usr ext3 defaults 1 2 LABEL=/var /var ext3 defaults 1 2 /dev/hda5 swap swap defaults 0 0 /dev/cdrom /mnt/cdrom iso9660 noauto,owner,kudzu,ro 0 0 ------------------------------------------------------------------------------------------------------
ntsysv mkdir -p /etc/skel/html ps -ef vi /etc/inittab reboot ps -ef
cd /usr/src/ dir rz cd /home touch quota.user;chmod 600 quota.user touch quota.group;chmod 600 quota.group groupadd free vi /etc/ssh/sshd_config
#커널 업 튜닝 cd /usr/src/ tar xvfz linux-2.4.19.tar.gz;rm -f *;chown -R root.root linux-2.4.19;ln -sf linux-2.4.19 linux cd /usr/include;rm -rf linux;rm -rf asm;ln -sf ../src/linux/include/linux linux;ln -sf ../src/linux/include/asm-i386 asm vi /usr/src/linux/include/linux/fs.h >>>#define INR_OPEN 32767 /* Initial setting for nfile rlimits */ >>>#define NR_FILE 32768 /* this can well be larger on a larger system */ vi /usr/src/linux/include/linux/limits.h >>>NR_OPEN 1024 -> 32767 vi /usr/src/linux/include/net/tcp.h >>>TCP_TIMEWAIT_LEN (60*HZ) -> (15*HZ)
cd linux make menuconfig make dep make bzImage make modules;make modules_install make install vi /etc/lilo.conf lilo reboot
quotacheck -avugm convertquota -u /free quotaon -a quotacheck -avugm
rpm -Uvh * --force dir /etc/rc.d/init.d/named start ps -ef ps -ef ps -ef ntsysv ps -ef vi /etc/named.conf ps -ef ll dir vi /etc/proftpd/proftpd.conf vi /etc/xinetd.d/ipop3 dir vi /etc/oops-firewall/filter.conf dir vi /etc/openssh/sshd_config ------------------------------------------------------------------------ PermitRootLogin no
# 로그인 전(Banner) 과 로그인 후의(motd) banner 출력 여부 # #Banner /etc/issue.net #PrintMotd yes
# 거절할 User 나 Group 을 지정 (* 사용가능) # #DenyUser #DenyGroup -----------------------------------------------------------------
vi /etc/openssh/sshusers
dir vi /etc/pam.d/opensshd ------------------------------------------------------------------------ #%PAM-1.0 auth required /lib/security/pam_listfile.so item=user sense=allow \ file=/etc/openssh/sshusers onerr=succeed auth required /lib/security/pam_stack.so service=system-auth auth required /lib/security/pam_nologin.so account required /lib/security/pam_stack.so service=system-auth password required /lib/security/pam_stack.so service=system-auth session required /lib/security/pam_stack.so service=system-auth session required /lib/security/pam_limits.so session optional /lib/security/pam_console.so ------------------------------------------------------------------------------- df reboot adduser -M mysql cd mysql-4.0.20/ ./configure --prefix=/usr/local/mysql --with-unix-soket-path=/usr/local/mysql/tmp --with-charset=latin1 --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --without-debug --with-innodb --with-berkeley-db --without-bench --with-extra-charsets=complex --with-charset=euc_kr --localstatedir=/free/mysql_data make; make install cd /usr/local/mysql/bin;./mysql_install_db;cd /usr/local/mysql/share/mysql;vi mysql.server chmod 700 mysql.server;cp -p ./mysql.server /usr/bin;cp -a /usr/local/mysql/share/mysql/mysql.server /etc/rc.d/init.d/mysql;ln -s /etc/rc.d/init.d/mysql /etc/rc.d/rc3.d/S97mysql chown -R root /usr/local/mysql;chown -R mysql /free/mysql_data;chgrp -R mysql /usr/local/mysql cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf;vi /etc/my.cnf w ps -ef mysql.server start cd apache_1.3.31/ ./configure --prefix=/usr/local/apache --enable-module=so --enable-module=all cd ../libiconv-1.9.2 ./configure --prefix=/usr/local make;make install cd ../mod_perl-1.29/ perl Makefile.PL APACHE_SRC=../apache_1.3.31/src DO_HTTPD=1 USE_APACI=1 PREP_HTTPD=1 EVERYTHING=1;make;make install ################################################ #php-4.3.3에서는 할 필요없음. #cd ../gd-2.0.15/ #./configure --prefix=/usr/local/gd-2.0.15 #make;make install ################################################ cd libidn-0.5.4 ll ./configure --prefix=/usr/local --with-libidn=/usr/local --with-libidn --enable-idn make;make install ################################################ cd ../php-4.3.7/ ./configure --with-mcrypt --with-mhash --with-mysql=/usr/local/mysql --enable-modules=so --with-apache=../apache_1.3.31 --with-png-dir=/usr/lib --with-zlib-dir=/usr/lib --with-iconv=/usr/local --with-gettext --with-ldap --with-ttf --with-kerberos --with-imap-ssl --with-libidn=/usr/local --with-curl --enable-idn --enable-exif --enable-trans-sid --enable-wddx --with-imap --with-gdbm=/usr/lib --with-db --enable-dbx --enable-dbase --with-gd --with-gif-dir=/usr/local/lib --with-freetype-dir=/usr --with-jpeg-dir=/usr --with-png --with-zlib --with-config-file-path=/usr/local/apache/conf --with-mod-charset --with-language=korean --with-charset=euc_kr --with-xml --enable-mbstr-enc-trans --enable-mbregex --enable-mbstring --enable-magic-quotes --enable-calendar --enable-sockets --enable-ftp --enable-gd-imgstrttf --enable-track-vars --enable-bcmath --enable-force-cgi-redirect --disable-debug --enable-sigchild --with-idn --with-openssl=/usr/local/ssl ./configure --with-mysql=/usr/local/mysql --enable-modules=so --with-apache=../apache_1.3.31 --with-png-dir=/usr/lib --with-zlib-dir=/usr/lib --with-iconv=/usr/local --with-gettext --with-ldap --with-ttf --with-kerberos --with-imap-ssl --with-libidn=/usr/local --with-curl=Shared,/usr/local --enable-idn --enable-exif --enable-trans-sid --enable-wddx --with-imap --with-gdbm=/usr/lib --with-db --enable-dbx --enable-dbase --with-gd --with-gif-dir=/usr/local/lib --with-freetype-dir=/usr --with-jpeg-dir=/usr --with-png --with-zlib --with-config-file-path=/usr/local/apache/conf --with-mod-charset --with-language=korean --with-charset=euc_kr --with-xml --enable-mbstr-enc-trans --enable-mbregex --enable-mbstring --enable-magic-quotes --enable-calendar --enable-sockets --enable-ftp --enable-gd-imgstrttf --enable-track-vars --enable-bcmath --enable-force-cgi-redirect --disable-debug --enable-sigchild --with-idn ./configure --with-mysql --with-pgsql --with-apxs --with-gd=/usr/local --with-png-dir=/usr/local --with-zlib-dir=/usr --with-jpeg-dir=/usr/local --with-freetype-dir=/usr/local --enable-trans-sid --enable-exif --with-xml --with-curl=/usr/local --with-pdflib=/usr/local --with-t1lib=/usr/local --enable-ftp --enable-bcmath --enable-mbstring --enable-mbstr-enc-trans --with-ldap --with-iconv=/usr/local --enable-xslt --with-xslt-sablot=/usr/local --with-imap=../imap-2001a --enable-dbx --enable-dbase --with-gettext=/usr/local < /dev/null make;make install cd ../apache_1.3.31/ ./configure --prefix=/usr/local/apache --add-module=src/modules/extra/mod_become.c --add-module=src/modules/extra/mod_dosevasive.c --add-module=src/modules/extra/mod_throttle.c --add-module=src/modules/extra/mod_bandwidth.c --add-module=src/modules/extra/mod_url.c --add-module=src/modules/extra/mod_gzip.c --activate-module=src/modules/perl/libperl.a --activate-module=src/modules/php4/libphp4.a --enable-suexec --suexec-caller=nobody --suexec-docroot=/free/home --suexec-logfile=/usr/local/apache/logs/suexec_log --suexec-userdir=html --suexec-uidmin=500 --suexec-gidmin=500 --suexec-safepath=/usr/local/bin:/usr/bin:/bin --enable-module=all make;make install cd ../php-4.3.7/ vi php.ini-dist cp php.ini-dist /usr/local/apache/conf/php.ini cd ../ZendOptimizer-2.1.0a-Linux_glibc21-i386/ ./install ps -ef vi /etc/rc.d/rc.local ---------------------------------------------------------------------------------------------------------------- #!/bin/sh # # This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in here if you don't # want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
/usr/bin/rdate -s time.bora.net /usr/local/apache/bin/apachectl start ---------------------------------------------------------------------------------------------------------------
cd /usr/local/apache/bin/ mv suexec suexec.old cd vi sec chmod 755 sec ./sec ps -ef
crontab -e ------------------------------------------------------ 0 6 * * 0 /usr/bin/rdate -s time.bora.net 0 10 * * 6 /shell/server_userdir_check ------------------------------------------------------
mysql test 계정삭제 halt
새로운거 컴파일(gd2-0), nawow.net, www8.icomis.com ----------------------------------------------------------------------------------------------------- tar xvfz apm.09.16.tar.gz cd ################################################ # php-4.3.3에서는 할 필요없음. #cd ../gd-2.0.15/ #./configure --prefix=/usr/local/gd-2.0.15 #make;make install ################################################ cd ../apache_1.3.28/ ./configure --prefix=/usr/local/apache --enable-module=so --enable-module=all cd ../libiconv-1.9.1 ./configure --prefix=/usr/local make;make install cd ../mod_perl-1.27/ perl Makefile.PL APACHE_SRC=../apache_1.3.28/src DO_HTTPD=1 USE_APACI=1 PREP_HTTPD=1 EVERYTHING=1;make;make install
################################# # ssl 설치 cd ../openssl-0.9.7a ./config make;make install cd ../mm-1.2.2 ./configure --prefix=/usr/local/mm-1.1.3 make;make install cd ../mod_ssl-2.8.15-1.3.28 ./configure --with-apache=../apache_1.3.28 --with-ssl=/usr/local/ssl --enable-shared=ssl --with-mm=/usr/local/mm-1.1.3 apache ./configure --prefix=/usr/local/apache --enable-module=ssl --add-module=src/modules/extra/mod_become.c --add-module=src/modules/extra/mod_dosevasive.c --add-module=src/modules/extra/mod_throttle.c --add-module=src/modules/extra/mod_bandwidth.c --add-module=src/modules/extra/mod_url.c --add-module=src/modules/extra/mod_gzip.c --activate-module=src/modules/perl/libperl.a --activate-module=src/modules/php4/libphp4.a --enable-suexec --suexec-caller=nobody --suexec-docroot=/free/home --suexec-logfile=/usr/local/apache/logs/suexec_log --suexec-userdir=html --suexec-uidmin=500 --suexec-gidmin=500 --suexec-safepath=/usr/local/bin:/usr/bin:/bin --enable-module=all ###################################
cd ../php-4.3.3/ ./configure --with-mysql=/usr/local/mysql --with-apache=../apache_1.3.28 --with-png-dir=/usr/lib --with-zlib-dir=/usr/lib --with-gettext --with-ldap --with-ttf --with-kerberos --with-imap-ssl --with-imap --with-gdbm=/usr/lib --with-db --enable-dbx --enable-dbase --with-gd --with-gif-dir=/usr/local/lib --with-freetype-dir=/usr/include/freetype2 --with-jpeg-dir=/usr --with-png --with-zlib --with-config-file-path=/usr/local/apache/conf --with-mod-charset --with-language=korean --with-charset=euc_kr --with-xml --enable-mbstr-enc-trans --enable-mbregex --enable-mbstring --enable-magic-quotes --enable-calendar --enable-sockets --enable-exif --enable-ftp --enable-gd-imgstrttf --enable-track-vars --enable-force-cgi-redirect --enable-bcmath --disable-debug --with-iconv=/usr/local make;make install cd ../apache_1.3.28/ ./configure --prefix=/usr/local/apache --add-module=src/modules/extra/mod_become.c --add-module=src/modules/extra/mod_dosevasive.c --add-module=src/modules/extra/mod_throttle.c --add-module=src/modules/extra/mod_bandwidth.c --add-module=src/modules/extra/mod_url.c --add-module=src/modules/extra/mod_gzip.c --activate-module=src/modules/perl/libperl.a --activate-module=src/modules/php4/libphp4.a --enable-suexec --suexec-caller=nobody --suexec-docroot=/free/home --suexec-logfile=/usr/local/apache/logs/suexec_log --suexec-userdir=html --suexec-uidmin=500 --suexec-gidmin=500 --suexec-safepath=/usr/local/bin:/usr/bin:/bin --enable-module=all make cd /usr/local/ mv apache apache.old;mv Zend Zend.old cd - make install cd ../php-4.3.3 cp php.ini-dist /usr/local/apache/conf/php.ini cd ../ZendOptimizer-2.1.0b-Linux_glibc21-i386/ ./install #아파치 재시작 하지말것 cd /usr/local/apache/conf/ vi php.ini # allow_url_fopen = Off ===== register_globals = On dir mv httpd.conf httpd.conf.old cp -a ../../apache.old/conf/httpd.conf ./ cp -a ../../apache.old/conf/tm.conf ./ cd ../logs/ mv ../../apache.old/logs/* ./ cd ../bin/ mv suexec suexec.ols apachectl stop apachectl start
▶▷ linux, apm, mssql connect 설정◁◀ # tar zxvf freetds-0.61.tgz # cd freetds-0.61 # ./configure --prefix=설치할 경로(/usr/local/freetds) --with-tdsver=8.0 --enable-msdblib --enable-dbmfix --with-gnu-ld --enable-shared --enable-static
--with-tdsver=8.0 --> 연결할 mssql server가 mssql 2000 일때 8.0, mssql 7 은 7.0 이다 # make; make install # cd /usr/local/freetds # cp ./lib/* /usr/lib 라이브러리 파일을 복사한다 # vi ./etc/freetds.conf 설정파일 수정
이부분을 주석을 제거 [MyServer70] host = mssql server ip port = 1433 tds version = 8.0 --à mssql 7 은 7.0
2. apache 설치
기존 설치상의 변경할 내용 없다. 그냥 기존 대로 설치하면 된다
3. php설치
소스 컴파일 시 #./configure --with-sybase=/usr/local/freetds 옵션을 추가해서 컴파일 한다.
4. apache 재시작 apachectl restart --------> 사용하지 않는다. 이전 설정이 그대로 적용 # apachectl stop # apachectl start
※ NT 2003 SQL2000 서버 세팅 : Using MSSQL 2000 and Windows Server 2003 Enterprise running on a separate machine from the web server, I was unable to get PHP to connect to MSSQL with default Windows Server 2003 settings. I got it working the following way:
From the Windows Server 2003 machine: Control Panel -> Local Security Settings -> Security Settings -> Local Policies -> Security Options Set "Network access: Let Everyone permissions apply to anonymous users" to Enabled
There is probably a better way, but this works
<? $conn=mssql_connect("MyServer70","joungjo",'alaldlsgud'); if ($conn) { echo "Yeah i'm the best"; mssql_select_db("joungjo"); $query = "select * from urim_member_table";
$result = mssql_query( $query );
$imsi = mssql_num_rows( $result ); echo "$imsi"; } ?>
▶▷ 파일 복구 ext2 file system◁◀
리눅스 화일시스템의 성격상 일단 삭제한 화일을 복구한다는 건 굉장히 어려운 것으로 알려져 있습니다. 최근에 와서는 삭제복구 유틸리티들이 여러가지 나오고 있지만 막상 시스템에서 작업을 하다가 중요한 화일을 자기도 모르게 삭제했을 때 당장 쓸 수 있는 방법은 거의 없는 것이 사실이죠. 아마 많은 분들이 이미 당하신 일일 겁니다. 저도 실제로 곤경에 처해서 황당해 하다가 이 팁을 발견하게 되었습니다. 알고보면 아주 간단합니다. 저도 외국사람이 알려준 방법을 그대로 쓴 것인데 아래 그 요령을 기술합니다.
1) /sbin/debugfs /dev/hda7 2) debug: lsdel 1 deleted inodes found. Inode Owner Mode Size Blocks Time deleted 25 0 100644 5 1/ 1 Fri Mar 30 19:37:53 2001
3) debug: dump <25> /root/testing.dump
1) 우선 슈퍼유저가 되어야 debugfs 를 쓸 수 있습니다. 2) 지금 어떤 화일을 삭제했는데 그것이 /dev/hda7 파티션상에 있던 화일이라고 하면 1번과 같은 명령을 내립니다. 3) 그럼 "debug : " 프롬프트가 나타나는데 거기에서 lsdel이라는 명령을 내립니다. (이것은 delete한 것을 ls하라는 것입니다.) 4) 그러면 그 아래 나오는 것과 같은 결과값이 나오는데 만일 삭제한 화일이 여럿이라면 이를 추정해서 살리는 것 외에는 다른 방법이 없습니다. 대충 화일의 사이즈를 알 수 있다면 살리는 데 큰 문제는 없습니다. 5) 어떤 inode 번호에 해당하는 것을 살려야 겠다고 결정하면 3번과 같은 명령을 내려 덤프시킵니다. 이 때 덤프해서 저장할 화일은 반드시 원래 삭제된 화일이 있던 곳과는 다른 파티션으로 옮겨서 저장해야 합니다. 혹시 다른 화일을 복구한 것이라면 자칫하면 원래 복구해야 할 화일을 덮어쓰는 경우가 있을 수 있으니까요.
제 경우는 아주 중요한 화일을 다른 것들과 함께 삭제해 버리고 나서 그 중요한 화일이 사라진 것을 알게 되어 바로 이 방법을 써서 성공적으로 복구할 수 있었습니다. 다행히 문제의 화일 사이즈가 삭제한 화일중에서 가장 컸기 때문에 쉽게 복구할 수 있었지요. 혹시 비슷한 어려움에 빠진 분들에게 도움이 되기 바랍니다.
우연히 알게되어 나름대로 제 방식대로 글을 쓰고 혹시나 해서 kltp.kldp.org 에서 찾아보니 있더군요.. 에고 팔 아퍼... ^^;;
▶▷ 파일 복구 ext3 file system◁◀
아래는 제 방식대로의 Tip&Tech 입니다. ---------------------------------------------------------------------- 리눅스에서의 파일 삭제는 신중을 기해야 한다. 왜냐면 삭제된 파일은 복구 할 수 없기 때문이다. 이것이 정석이였습니다.
물론 rm 의 소프트링크나 다른 삭제 프로그램으로 대체하는 프로그램들도 있습니다 만 rm 자체의 복구는 없다고 알고 있으신 분들이 대부분 일 겁니다.
해답은
debugfs 라는 명령어 입니다. (man page 참조)
실제 사용예를 들어 설명하겠습니다.
가정1) /home/pds/portsentry.tar.gz 라는 파일이 있음. 가정2) /home 파티션은 hda8 입니다. (df -h 로 확인) 가정3) rm -f /home/pds/portsentry.tar.gz 명령으로 지웠음. 가정4) root 로 작업.
복구 절차.
1. #debugfs /dev/hda8
=> 설명 : hda8 파티션에 대해서 검사를 한다.
2. debugfs:
=> 대기상태를 뜻함. 이곳에서 lsdel 을 입력하고 엔터. 계속...
debugfs: lsdel 99 deleted inodes found. Inode Owner Mode Size Blocks Time deleted 108123 0 100644 239 1/ 1 Thu Jan 3 01:25:33 2002 18417 0 100644 426625 420/ 420 Thu Jan 3 01:26:34 2002 45007 0 100644 343 1/ 1 Thu Jan 3 01:29:59 2002 28691 0 100400 879 1/ 1 Thu Jan 3 01:38:29 2002 18394 0 40755 0 1/ 1 Thu Jan 3 01:58:54 2002 .. . 14356 0 100644 2325 3/ 3 Fri Jan 25 16:13:24 2002 61239 0 100644 43034 44/ 44 Fri Jan 25 16:13:31 2002 debugfs:
위와 같은 상태로 나오고 다시 대기상태로 됩니다. 실제로는 너무 많이 나오더군 요.. (내가 그렇게 많이 지웠었나? '.'a)
이제 이 목록중에서 하나를 선택해서 살려야 합니다. 다행히도 살리고자 하는 파일 은 가장 최근에 지운 파일이므로 가장 아래쪽에 있는 것이겠죠.
debugfs: dump <61239> /home/debugfs/portsentry.tar.gz
=> Inode 값을 <> 안에 적어줍니다. 뒤에는 복구할 파일 이름을 적어주시면 됩니다. => 복구할 파일은 다른 디렉토리로 지정해 주시는게 좋습니다. 별 상관은 없지만...
#cd /home/debugfs #tar -zxvf portsentry.tar.gz // 정상적으로 압축이 풀리더군요.
=> 아주 훌륭하게 복구가 되었더군요. ^^v
임의로 portsentry.tar.gz 를 지워서 테스트를 한 것입니다.
debugfs: 상태에서 사용할 수 있는 명령어는 help 를 쳐보면 알 수 있습니다. 끝내는 것은 q, quit 입니다.
아래는 debugfs: 에서 사용가능한 명령어들 입니다. ---------------------------------------------------------------------
Available debugfs requests:
show_debugfs_params, params Show debugfs parameters open_filesys, open Open a filesystem close_filesys, close Close the filesystem feature, features Set/print superblock features dirty_filesys, dirty Mark the filesystem as dirty init_filesys Initalize a filesystem (DESTROYS DATA) show_super_stats, stats Show superblock statistics ncheck Do inode->name translation icheck Do block->inode translation change_root_directory, chroot Change root directory change_working_directory, cd Change working directory list_directory, ls List directory show_inode_info, stat Show inode information link, ln Create directory link unlink Delete a directory link mkdir Create a directory rmdir Remove a directory rm Remove a file (unlink and kill_file, if appropriate) kill_file Deallocate an inode and its blocks clri Clear an inode's contents freei Clear an inode's in-use flag seti Set an inode's in-use flag testi Test an inode's in-use flag freeb Clear a block's in-use flag setb Set a block's in-use flag testb Test a block's in-use flag modify_inode, mi Modify an inode by structure find_free_block, ffb Find free block(s) find_free_inode, ffi Find free inode(s) print_working_directory, pwd Print current working directory expand_dir, expand Expand directory mknod Create a special file list_deleted_inodes, lsdel List deleted inodes write Copy a file from your native filesystem dump_inode, dump Dump an inode out to a file cat Dump an inode out to stdout lcd Change the current directory on your native filesystem rdump Recursively dump a directory to the native filesystem help Display info on command or topic. list_requests, lr, ? List available commands. quit, q Leave the subsystem.
▶▷ 씨디로 비번 복구/ lilo 복구 ◁◀ 1. LILO 프로프트 상태에서 #boot :linux single (run level1 부팅) * bash # - #etc/passwd #passwd root 변경
2부팅시디 를 이용하여 루트 패스워드 복구
1. CD-ROM 을 넣고 부팅
2. F5 키를 누르거나 LILO 프폼프트에서 "linux rescue" 입력
3. 언어설정 , 키보드 설정
4. #chroot /mnt/sysimage
5. #passwd 재설정
6. #reboot
-----------------------------------------------------------------------------------------------------------------
기본적인 명령어 #ls (-l,-a):각 루트상에서 디렉토리 및 파일을 출력한다. 도스의 dir과 같은 명령.. #pwd 현재 디렉토리에서 최상위 폴더로 이동 #df :리눅스파티션을 보고자할 때 사용. #cd ..상위디렉토리로 이동 #cd 폴더/해당디렉토리로 이동 #vi 편집명령어 #cat 내용출력 #du -sh 남은 용량확인법 #chmod 권한설정 #tar :압축명령(옵션) #gzip :이중압축명령(옵션)
디렉토리 이동명령
일반적으로 디렉토리나 파일이 많을 경우 자신이 어디에 위치에 있는지 그리고 직접적으로 디렉토리로 다이렉트로 이동해야 하는경우가 많아진다... 디렉토리 이동명령을 통해 바로이동할수있는 것이 숙제 예) # cd /home 홈디렉토리로 바로이동하기..... # ls -l 홈디렉토리 내용살피기 # cd master1 마스터1의 디렉토리안으로 이동하기...
목록보기
목록보기에는 대부분 ls를 사용하는데 여기에도 다양한 옵션으로 다양한 결과물을 볼수가 있다....가장많이 쓰는 명령이니만큼 다양한 특징을 안다면 작업하는데 굉장히 편리할 것이다.
#ls -l 세로배열로 결과물을 출력해준다.... #ls -al 가능모든 파일을 결과물로 통해 세로배열로 보여준다. #ls -al |more:파일의 내용이 많을 때 한단계씩 보여준다(dos:dir/p)와 같은 효과이다. 스페이스바를 누르면 다음결과물을 보여주고 Q를 누르면 빠져나간다. #ls -l /etc/group:특정파일을 다음과 같은 명령으로 찾아볼 수 있다. #ls -F :이명령은 실일파일여부를 확인하는 명령이다. 실행파일일 경우 *이붙어서 나온다 그밖에 많은 옵션이 있지만 생략한다.(#ls --help)를 보면 여러 가지 옵션을 볼 수 있다.
디렉토리생성과 삭제
디렉토리를 생성과 또 삭제하는데 필요한 명령을 알아보자 대체적으로 생성하는 명령은 mkdir명령을 쓴다. 특정디렉토리에서 #mkdir kkk라치면 그특정디렉토리하위에 kkk라는 디렉토리가 생성이 된다. ls로 확인을 하여보자. 또한 특정한 곳에 디렉토리를 생성하고싶은면 이렇게 하면된다. #mkdir /home/webmaster/kkk라치면 홈밑에 웹마스터란 방밑에 kkk를 생성한다는 뜻이다. 디렉토리를 삭제하는 명령또한 동일하다. 홈디렉토리밑에 kkk란 디렉토리가 있다면 이디렉토리를 삭제하는 방법이다. #rmdir kkk라치면 kkk란 디렉토리가 삭제된다. #rmdir /home/webmaster/kkk라치면 홈밑에 웹마스터란 방밑에 kkk를 삭제한다는 뜻이다. 하지만 하위디렉토리에 내용이나 또다른 디렉토리가 있다면 삭제가 되질않는다... 이때는 rm이란 명령으로 삭제를 한다....옵션 또한 여러 가지가 있지만.... 가장많이 쓰는 명령만 간단히 소개한다. #rm -r kkk라치면 먼저 하위디렉토리로 들어가서 지울지여부를 물어본다....삭제하고자한다면 y(yes)를치면 그해당파일은 삭제가 된다. 하지만 이과정을 모두 생략하기를 원한다면 다음과 같이 입력하면 삭제가 된다. #rm -rf kkk이렇게 치면 깨끗이 삭제가 된다.... 하지만 지우면 복귀할수 없으므로 정말 신중에 신중을 기하여 삭제하길 바란다.
복사명령과 이동명령
리눅스에서 도 파일을 복사하는 명령이 있다.....통상적으로 도스에서는 copy,diskcopy명령으로 복사를 했지만 리눅스에서는 cp로 사용한다...별반 다를게 없으므로 작업을 해보면 쉽게 이해할수 있다... 임의의 디렉토리를 하나 생성한다. 여기서는 webmaster밑에 webm01이란 디렉토리를 예로 한다. #cd ~webm01이라 입력을 하면 바로 특정디렉토리로 이동을 할 수 있다. 만약 이동을 하지않는다면 webm01이란 방이 없거나 경로가 잘못되어서 그러므로 경로를 바꾸어주면 된다.... 경로바꾸는 것은 위에서 설명하였으므로 생략한다. #cd _webm01로 이동 #touch test1:테스트1이란 빈파일을 만든다는 뜻이다(touch:빈파일만들기) #vi test1:vi 편집기를 통해 test1에 임의의 내용을 입력하고 저장하고 나온다. #cp test1 test2:test1을 test2란 파일로 복사한다는 뜻이다. #vi test2:이파일을 열어 test1안에 적힌 내용과 같은지 확인한다.(같다면 성공이다.) 이번엔 test란 디렉토리를 만들어 방법만든 test1,2파일을 디렉토리에 복사하여 넣어보자.. #mkdir test란 디렉토리생성한다. #cp test1 test2 test/라 입력하면 test1,test2파일이 test디렉토리에 복사된다.확인하여보자(ls) 다음은 하위디렉토리에서 특정디렉토리로 복사하는 법을 알아보자 여기서는 하위디렉토리에서 홈디렉토리로 복사하는법을 설명한다. #cp -r test /home:여기서 -r은 디렉토리째로 복사한다는 뜻이다. test란 디렉토리를 home에 복사를 한다. 확인하여보자.....
다음은 동시에 여러개의 빈파일을 만드는 방법이다. #touch aaa bbb ccc ddd eee fff:여기서 나온 파일을 동시에 만든다는뜻이다. 당연히 더많이도 생성가능하다..... 파일이 만들어졌는지 확인하여보자. 다음은 특정파일만 삭제 #rm -r a*:이말은 a로 시작하는 모든 파일을 삭제한다는 뜻이다.
다음은 이동명령 mv를 알아보자 이명령은 디렉토리나 파일을 이동할때사용하면 파일의이름을 변경할때는 적용이된다. #mv test test2:이말은 옮긴다는 뜻이아니라 test test2로 명명한다는 뜻이다. #mv test /home/webmster:이말은 test란 디렉토리를 홈밑에 웹마스터방밑에 이동한다는 뜻이다. 자 한번 실습해보기 바란다.
일정한 자료찾기 명령 #find / -name skell -> 일정한 자료찾기를 할 수 있다.
간단한 vi편집기명령알기 (cat)동일
cat의 경우 수정,변경,저장할 수는 없다 단지출력명령. vi 명령을 쓰면 일정텍스트상의 내용을 수정 변경 저장할 수 있다. 일반적인 명령을 예로 들어보자 예) #vi /etc/group ->etc밑에 그룹의 내용을 보거나 수정한다는 내용이다. 텍스트가 출력이 되면 수정하고자하는 부분이 있을 경우 insert키를 눌려 수정하고자하는 셀로 이동을 한다.... 만약수정하였으면 esc키를 눌려 insert키를 해제시키고 콜론이누른다.(shift+:)그러면 하위에 콜론이 생성이되는데....저장하고자 한다면 qw(종료저장),저장하지않고 그냥종료시킨다면, q!를 누르면 된다...자 이제 활용을 해보자.
리눅스 설치에서 파티션나누기...
리눅스는 일반 윈도우와는 달리 각각에 대한 루트계정을 만들어 주어야 한다. 윈도우즈의 경우는 포맷과 운영체제설치와 동시에 모든 디렉토리생성 및 응용프로그램설치를 아무곳에서나 가능하나 리눅스는 이와는 다른다.... /:최상위 디렉토리로 운영자가 직접관리 및 운용할수있는공간 /boot: /usr : 현재 시스템에서 사용하는 응용프로그램을 이곳에 설치를 한다.윈도우즈의 경우 programs files디렉토리에 설치를 하듯이곳에 리눅스 패키지가 설치된다. /home : 이곳엔 일반인에게 계정을 부여하고 일정의 공간을 할당해주는 역할을 한다. 웹호스팅을 사용해본 유저라면 쉽게 이해하리라 생각이 든다. /swap : 일반적으로 swap이란 가상메모리를 뜻하는데 리눅스에서 이렇게 램이 아닌 가상메모리지원해 줌으로써 램이 적더라도 swap메모리를 할당해주어 램과 같은 역할을 하여준다. swap메모리를 활용을 하면 최상의 시스템구축이 가능하다. 일반적으로 자신의 램의 2배를 지정해주는 것이 좋다고 한다.
가상콘솔(ctrl+alt_f1) x-window에 들어가지 않고 바로 가상콘솔로접속 [root@note/root}#:#를 bash sell이라 함... 콘솔과 터미널:콘솔 :서버앞에서 직접작업을 하는 것을 콘솔이라하며, 터미널이란 멀리서 원격으로 접속을 하여 작업을 하는 것. 또한 가상콘솔작업은 root계정으로 작업을 하면 이것은 보안문제 때문에 다른계정으로 작업을 많이한다. 터미널의 경우 root작업은 치명적인 보안문제 때문에 일반계정으로 접속하여 작업을 많이함..... 단축키명령 (ctrl+alt_f1):가상콘솔 작업 (ctrl+alt_f2) (ctrl+alt_f3):초기화 로그인 (ctrl+alt_f7):x-windows로 들어가기 콘솔상의 작업종료:exit,logout명령이 있으면 shutdown의 경우 시스템을 종료할 때 사용한다. 옵션명령 : -r 재부팅 -h 시스템종료 -c shutdown명령을 취소 시간타임 : now지금 즉시 지정된 shutdown명령실행 +m m분후에 지정된 shutdown명령을 실행 hh:mm hh시 mm분에 지정된 shutdown명령을 실행 메세지 :현재 접속되어 있는 로그인 사용자들에게 언제쯤 종료를 한다고 알리는 메시지 기능을 제공(중요사항)
예)shutdown -r now지금 즉시종료시행 shutdown +5 now 5분후 종료....
사용자 추가명령
새로운 사용자를 추가(계정)을 부여하기 위해 사용한다. 일반적으로 adduser/useradd 명령을 사용한다.(사용법은 완전히 동일하다.) 예)# adduser master1 # passwd master1 # 패스워드 입력 # 재입력....... (패스워드의 경우 숫자와 일반글자를 조합하는 것이 좋으며 나쁜패스는 시스템에서 받아 들이지 않는다....) 등록을 성공하면 successfully메세지가 나온다....이메세지가 나오면 성공.... 자 /home디렉토리로 이동을 하면 새롭게 추가된 계정을 확인할수 있다. 자 (ls -l) (사용자이름을 생략하고 passwd를 실행하면 현재 로그인한 사용자의 패스워드를 변경할 수 있다.
패스
#vi /etc/passwd를 실행하면 리스트가 출력이 된다. 리스트중에 다음의 글이있을 것이다. root : x : 0 : 0 : root: /root: /bin /bash(bash)란쉘을 뜻함. root:사용자명 x:비밀번호 0:uid 0:gid(그룹아디) root:선명(전화)comment root:홈디렉토리
shadow :특정계정을 추가한후 패스파일을 암호화한 파일을 말한다.
#useradd mask1 #passwd mask1 암호를 준후 #vi /etc/passwd확인 #vi /etc/passwd확인후 암호화(shadow)를 확인.
일반계정부여와 함께 자동 홈페이지방 만들기...
리눅스상에서 방을 부여하면 홈페이지를 만들수 있는 방이 필요하다... 이것이 public_html이란것인데 이것을 계정부여와 동시에 만드는 방법을 배워본다. #cd /etc/skel #ls -l #pwd #mkdir mail #mkdir public_html #ls -l 이렇게해주면 계정부여와 동시에 자동으로 sand mail과 public_html이 자동으로 만들어진다.
그룹생성명령(group)
그룹이란 일정한 시스템에서 여러사람이 그사용자성격상 비슷한사람들이 그룹으로 나우어 관리를 하는 경우 사용한다. 그룹을 잘이용하면 여러모로 전문적성격을 지닌 시스템으로 활용을 할 수 있다. 예) 그룹생성과 일반계정으로 그룹에 등록시키는 내용 #groupadd wm --->그룹명을 wm으로 지정을 하였다. #vi /etc/group --->vi편집기를 통해 group내용을 확인변경할수 있다. #useradd --help -->옵션을 활용할 때 이렇게하면 옵션사항을 출력하여 볼 수 있다.
그룹에 등록시키는법
#useradd -g wm web1 : web1이란 아이디를 wm이란 그룹에 등록한다는 내용이다 #useradd -g wm web1 : web2역시 wm이란 그룹에 등록 #vi /etc/passwd --> 등록이 잘되었는지 확인할 수 있다.
모드설정변경
리눅스에서 모드설정이란 text모드 x-windows등등 이있는데 이기본모드를 수정할 때 사용한다. 먼저 #cat /etc/inittab : $more를 출력하면 리스트가 출력이 되는데... 출력에 보면 id (숫자):initdefault란곳에 숫자를 바꾸어주면 된다. x-windows:5번 single :1번 text : 3번으로 구성이 되어있다.
특정그룹추가하기
일반계정을 그룹화하여 같은 폴더에서 관리하면 관리하기도 좋고 여러모로 편하다. 그러나 그룹추가는 추상적이기 때문에 폴더개념과는 다르다. 이점을 유의하기바란다. 그룹명을 지정해주고 그룹명과 같은 폴더를 만들어줄 때 비로서 그룹화 된다고 보면된다. #groupadd (그룹명) :그룹은 만들어지었으나 폴더는 만들어지지않았다. #mkdir 폴더(일반적으로 그룹명과 동일하면 좋다):그룹과 폴더가 모두만들어지었다 자 일반계정을 추가하여 방금만들어진 그룹에 추가하여보자 #useradd -D -b /home/wm:초기 디렉토리의 경로를 지정해준다. #useradd -g wm wm01:-g는 그룹에 추가한다는 옵션명이고,wm은 그룹명이다 그리고 wm01은 일반계정자이다..즉 wm01은 wm에소속되도록 -g(그룹화)하여 준다는 뜻이다. #passwd wm01 :이제 wm01의 패스워드를 추가하면 된다.
userdel(유저삭제명령)
일반계정을 추가하고 나면 나중에 삭제또한 하게 된다. 싶게 하위디렉토리까지 삭제하는법을 알아보자. #userdel (지울계정명):이렇게 지정하면 모두삭제된다. 하위에 디렉토리가 없을 경우 #rm -rf 계정명:으로 깨끗이 삭제할 수가 있다.
usermod(일반생성 계정에 대한 편집명령),groupmod(그룹에 대한 편집명령)
적용예(uid,향,comment,home,shell) #usermod -c bbb web02: (web02를 bbb로 바꾼다는 것이다. (단 폴더가 바뀌는 것이 아니라 .comment가 바뀐다는 것이다. 명령에 -c는 comment란 뜻이다. 확인할려면, vi /etc/passwd로 확인을 해보라....
#usermod -d /home/wm #vi /etc/passwd
#usermod -n webm web:(web이란 그룹을 webm으로 변경하라... #vi /etc/group:이곳으로 가면 바뀐내용을 확인할수 있다. su명령의 아름다운반란(사용자 대체) su란 여러 계정을 오고가며 작업을 하는 것이다. 리눅스의 묘미를 맛볼수 있는 것이기도 하다...또한 root가 어느정도로 막강한지를 쉽게 알수가 있다... 자 이제 실행하여보자
보통 터미널로 작업을 할때에는 root로 로그인이 불가능하는 하지만 su를 통해 가능하여진다 먼저 일반계정으로 접속을 하여 #su root로 변환하여주면 가능하다... 하지만 일반계정에서#su root를 실행하면 root의 패스워드를 묻게된다.패스를 모르면 끝장이다. 그냥 집에가야 될듯......흐흐흐 패스를알고있다면 입력. 성공메세지가 출력되고 root로 작업환경이 변환된다. 이번엔 root권한으로 일반계정으로 변환하여 작업을해보자 #su webm01이렇게 하면 패스워드를 묻지않고 바로작업에 들어갈수가 있다....요것이 root만의 권한.....
이번엔 일반계정에서 일반계정으로 변경작업하여보자 #su webm02라실행하면 역시 패스워드를 묻는다....모르면 찌그러지고 알면 들어가서 작업하면된다. 즉 정의하자면 root는 su명령을 통해 어떠 계정에도 접속하여 작업을 할수있으나 일반작업자의 경우 root로 작업을변환할 때 패스워드를 알아야 하며,역쉬 일반계정끼리의 작업또한 패스워드를 알아야 작업이 가능하다는 것이다. 이권한을 chmod로 뚫을수있을까...
에러발생시 대책법<
윈도우즈의 경우 에러가 발생하면 강제종료를 시키면 scandisk가 바로잡아준다. 리눅스의 경우도 그러하지만 이건 바람직하지가 않다. 에러가 발생하면 나름대로 에러를 잡는 법을 알아보자. 먼저 에러가 발생을 하면 read읽기 기능만으로 자동으로 변환이 된다. 이를 바꾸기위해선 다음과 같은 명령을 수행하면 된다. 먼저 readolny가 나오면 이건 읽기기능만이 수행된다는 뜻이다. lilo에서 ctrl+x로 text모드로 들어간다. 아이디와 패스를 입력하고 #mount -n -0 remount , rw(읽고쓰기로 변환한다는 뜻이다.) /dev/hda5(리눅스가 깔린장치명)입력하면된다.
초기부팅화면 설정변경
멀티부팅시 dos모드나 linux모드중 어느것을 먼저택할건지 지정해주는 것이다. 역시 명령어는 다음과 같다. #cat /etc/lilo.conf 엔터를 치면 리스트출력 하면 수정부분이 눈에 들어온다. 단 cat명령어는 출력명령어 이므로 vi로 바꾸어 출력을 하면된다. 역시 수정하고 저장하고 나오면 된다.)
로그인 패스워드변경법
lilo화면에서 ctrl+x키로 누르면 된다. 먼저 linux 1이나 single로 입력을 한후 passwd를 입력한다...암호를 임의로지정을 하고 반복암포를 누르고 빠져나온다. 자한번 테스트해보자. |