[출처] 리눅스 서버 공부 같이 하기 :: 네이버 카페 | 작성자 - 서비스 ~]# lokkit // (usr/sbin/lokkit) ~]# iptables -F // (방화벽 해제) <네트워크 설정 명령> ~]# ntsysv // 서비스 설정 명령 ~]# pathping < IP 주소> // tracert 기능에 네트워크 트래픽 기능 추가 ~]# vi /etc/sysconfig/network // 기본게이트웨이 설정파일(호스트네임,게이트웨이) ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 // 호스트 설정파일 (IP주소, 넷마스크) ~]# vi /etc/resolv.conf // 기본 DNS 설정파일 ~]# ifconfig ehth0 192.168.0.100 netmask 255.255.255.0 broadcast 192.168.0.255 up // (ifconfig 명령어로 IP 셋팅하기) ~]# /etc/rc.d/init.d/network restart 또는 service network restart // 네트워크 설정변경 적용 ~]# netconfig // 네트워크설정(반드시 수퍼유저{root}권한으로 실행) ~]# vi /etc/hosts // 호스트명 변경 < CD-ROM 마운트 하기 > ~]# mount -t auto(또는iso9660) /dev/cdrom(또는hdc) /media/cdrom/ ~]# df -T // cd-rom 마운트 확인 ~]# cd /media/cdrom/Centos/RPMS/ RPMS]# ls -l | grep snmp // 설치할 파일(예, snmp) 확인 ~]# ~]# umount /media/cdrom/ // 마운트 해제 ~]# vi /etc/fstab // 자동마운트 시킬때 < RPM 사용법> ~]# rpm -Uvh <패키지 파일> // 설치 ~]# rpm -e <패키지 파일> // 삭제 ~]# rpm -qa <패키지 이름> // 시스템에 패키지가 설치되었는지 확인 < yum 사용법> ~]# yum -y install <패키지 이름> ~]# yum check-update // 업데이트 가능한 목록보기 ~]# yum update <패키지 이름> ~]# yum remove <패키지 이름> ~]# yum info <패키지 이름> // 정보확인 ~]# yum localinstall <패키지 이름> // 로컬에서 설치 (현재디렉토리에 있는 rpm파일을 설치) yum 설치시 다운로드 속도가 느릴때"Ctrl + C"를 눌러서 다른 미러 사이트에 접속해서 새로 다운로드 한다. < ping 명령에 반응 막기 > - /etc/sysctl.conf ~]# sysctl -a // 설정이 가능한 파라미터 값들을 확인 ~]# sysctl -w net.ipv4.icmp_echo_ignore_all=1 // 값이 "0"이면 응답하고 , "1"이면 응답하지 않는다. ~]# sysctl -p // 설정한 뒤에 이명령으로 설정사항을 바로 적용 < 사용자 접속제한하기> - 계정사용자의 경우 /etc/passwd에 있는 사용자 패스워드 필드에 *표시 (로그인X) 예) ~]# vi /etc/passwd testuser : * : 10877 : 0 : 99999 : 7 : : : 다시 접속할 경우 " ~]# passwd testuser "명령으로 패스워드 입력 < 모든 사용자에 대한 일시 접속금지> - 시스템 점검시 ~]# touch /etc/nologin // "/etc"에 " nologin"이란 파일을 만들어 줌 다시 접속허용할 경우 " nologin " 파일을 지움 < 그룹별 계정 생성법> ~]# useradd -D // 사용자 계정 생성시에 적용되는 설정내용 확인 ~]# mkdir /home/groupone ~]# useradd -D -b /home/groupone // 기본 홈디렉토리 변경 <시스템 시작과 종료> "shutdown -h now" 또는 "halt" 또는 "init 0" // 시스템 종료 명령 "shutdown -r now" 또는 "reboot" 또는 "init 6" // 시스템 재부팅 shutdown -h +10m // 10분 후에 종료 ( h : halt ) shutdown -r 22:00 // 오후 10시에 재가동 ( r : reboot ) shutdown -c // 진행중인 shutdown을 취소 ( c : cancel ) shutdown -k now // 현재 접속된 사용자에게 종료된다는 메시지만 보내고, 실제로 종료하지는 않음 ~]# cat /etc/inittab // 렌레벨이 정의되어 있는 파일 ~]# man <명령어> // 명령어에대한 도움말 ~]# cp abc.txt cba.txt // abc.txt 파일을 cba.txt 파일로 복사 ~]# cp -r abc cba // 디렉토리 복사 ~]# touch abc.txt // 파일이 없을 경우엔 abc.txt 라는 빈 파일을 생성 (abc.txt 파일이 있을 경우엔 파일의 수정 시간을 현재 시각으로 변경함) ~]# mv aaa bbb ccc ddd // aaa,bbb,ccc 파일을 ddd 디렉토리로 이동 ~]# mv abc.txt www.txt // 이름 변경 <사용자와 그룹> ~]# adduser -d <홈 디렉토리> <사용자명> // 별도로 사용자의 홈디렉토리를 지정 ~]# adduser -u <사용자 id> <사용자명> // 사용자 id(예,501)를 순차 번호가 아닌 임의로 지정 // "사용자 id"는 "/etc/passwd" 파일을 "그룹 id"는 "/etc/group"파일을 열어보면 확인할 수 있다. ~]# adduser -g <그룹명> <사용자명> 또는 adduser <사용자명> -g <그룹명> // 별도의 그룹을 지정 ~]# adduser -s <셸 파일명> <사용자명> // /bin/bash 외의 별도의 셸을 지정 ~]# adduser -c // 설명 ※.사용자 생성시 별도의 옵션 없이 "adduser <사용자명>"으로 하면 사용자 이름과 동일한 그룹이 자동으로 생김 ( /etc/passwd : 사용자가 등록, /etc/group : 그룹이 등록 ) ~]# su - // 수퍼유저(root)의 권한을 얻는 명령 <파일과 디렉토리의 소유와 허가권> rwx r-- r-- // 첫번째 "rwx"는 소유자(user) , 두번째 "r--"는 그룹(group) , 세번째 "r--"는 그외의 사용자(other) 의 파일 접근 권한을 의미한다. ~]# chmod 777 install.log // install.log라는 파일의 허가권을 변경하는 명령 ~]# chown <새로운 사용자명>[.<새로운 그룹명>] <파일명> // 파일 소유권 변경 명령 ~]# chgrp <새로운 소유그룹> <변경할파일(디렉토리)> 예) ~]# chown root.root install.log // install.log파일의 소유자,소유그룹을 root로 바꾸라는 의미 < 하드 링크(Hard Link)와 소프트 링크(Soft Link) > ~]# ln <링크 대상 파일명> <링크 파일명> // 하드 링크 생성 명령 (원본 파일이 없어져도 이상이 없음) ~]# ln -s <링크 대상 파일명> <링크 파일명> // 소프트 링크 생성 명령 (원본 파일이 없어지면 연결 끊어짐) ~]# mkdir linktest // 링크를 테스트할 디렉토리를 만든다. ~]# cd linktest linktest]# vi basetest // 아래 내용 입력 파일 링크를 테스트하기 위한 원본 파일입니다.. linktest]# ln basetest hardlink // 하드 링크 연결 linktest]# ln -s basetest symbollink // 소프트 링크 연결 linktest]# ls -il // inode를 확인 linktest]# mv basetest ../ // 원본 파일을 다른 곳으로 이동 linktest]# cat hardlink 와 cat symbollink // 하드 링크와 심볼릭 링크를 각각 확인 < 파일 압축과 파일 묶기> ~]# tar cvf xinetd.tar /etc/xinetd.d/ // /etc/xinetd.d/를 xinetd.tar로 생성(묶음) ~]# tar cvfz xinetd.tar.gz /etc/xinetd.d/ // 생성 + gzip 압축 ~]# tar cvfj xinetd.tar.bz2 /etc/xinetd.d/ // 생성 + bzip2 압축 ~]# tar tvf xinetd.tar // 묶음의 경로 확인 ~]# tar xvf xinetd.tar // 묶음 파일 풀기 ~]# tar xvfz xinetd.tar.gz // gzip 압축 해제 + tar 풀기 ~]# tar xvfj xinetd.tar.bz2 // bzip2 압축 해제 + tar 풀기 ~]# gzip <파일명> // "파일명"을 압축파일인 "<파일명>.gz"으로 만들어줌 ~]# gunzip <파일명>.gz 또는 gzip -d <파일명>.gz // 확장명 gz의 압축을 풀어줌 ~]# bzip2 <파일명> // "파일명"을 압축 파일인 "파일명.bz2"으로 만들어줌 ~]# bunzip2 <파일명>.bz2 또는 bzip2 -d <파일명>.bz2 // 확장명 bz2의 압축을 풀어줌 <파일 위치 검색> find [경로] [옵션] [조건] [action] // [옵션] : -name, -user(소유자), -newer(전,후), -perm(허가권) {사용 예} // [action] : -print(GNU는 디폴트, 유닉스는 필수 입력), -exec ~]# find / -name .searchfile -exec ls -l {} \ ; // 특정파일을 모두 찾아서 각각 "ls -l"하여 리스트 확인 ~]# find /etc -name "*.conf" | more // "/etc" 디렉토리 하위에 확장명이 ".conf"인 파일 검색 ~]# find /home -user fedora // "/home" 디렉토리 하위에 소유자가 "fedora"인 파일 검색 ~]# find ~ -perm 644 // 현재 사용자의 홈 디렉토리 하위에 허가권이 644인 파일 검색 ~]# which <실행 명령어> // PATH에 설정된 디렉토리만 검색 , 절대 경로를 포함한 위치 검색 ~]# whereis <실행 명령어> // 실행 파일 및 소스, man, 페이지 파일까지 검색 ~]# local <파일 이름> // 매우 빠르고 유용하지만 새로 설치된 파일들이 등록되어 있지 않을 때는 찾을 수 없음 <파이프,필터,리다이렉션> 1. 파이프(pipe) : 두 프로그램을 연결해주는 연결 통로의 의미, "|"문자를 사용함(\키를 shift와 함께 누른 글자) 예) ~]# ls -l /etc | more // 그냥 "ls -l /etc" 명령을 입력하면 페이지가 넘어가므로 한 개 페이지씩 보여줌 2. 필터(filter) : 필요한 것만 걸러주는 명령어, grep,tail,wc,sort,awk,sed 등 주로 파이프와 같이 사용된다. 예) ~]# ps -ef | grep bash // "bash"라는 글자가 들어간 프로세스만 출력 ~]# rpm -qa | grep bind // 설치된 패키지 중에서 "bind"라는 글자가 들어간 패키지를 출력 3. 리다이렉션(redirection) : 표준 입출력의 방향을 바꿔줌 예) ~]# ls -l > aa.lst // "ls -l"의 결과를 화면에 출력하지 말고, aa.lst라는 파일에 쓰도록 한다. 단, aa.lst 파일이 기존에 있으면 덮어 쓴다(overwrite). ~]# ls -l >> aa.lst // 위와 동일. 단, aa.lst 파일이 기존에 있으면 기존의 내용에 이어서 씀(append) ~]# sort < aa.lst // aa.lst 파일을 정렬해서 화면에 출력한다. ~]# sort < aa.lst > bb.lst // aa.lst 파일을 정렬해서, bb.lst 파일에 쓴다. <프로세스,데몬,서비스> ~]# ps -ef | grep <프로세스 이름> // 현재 프로세스의 상태를 확인하는 명령 ~]# kill -9 <프로세스 번호> // 프로세스를 강제로 종료하는 명령, "-9" 옵션과 함께 사용하면 무조건 종료 응답을 하지 않고 무한 루프를 도는 프로세스는 이 명령으로 강제 종료 ~]# pstree // 부모 프로세스와 자식 프로세스의 관계를 트리 형태로 보여준다. ~]# vmstat 3 5 // 프로세스,메모리,페이지 상황을 3초마다 5개씩 알려준다. 1. 무한 루프를 도는 프로세스 중지 방법 ~]# yes > /dev/null // 무한 루프를 도는 단순한 프로세스 생성 ~]# ps -ef | grep yes // 프로세스 번호 확인 ~]# kill -9 <프로세스 번호> // 프로세스 종료 ( 또한, 프로세스를 그냥 종료하려면 "Ctrl+C" ) 2. 포그라운드 프로세스 → 백그라운드 프로세스 → 포그라운드 프로세스로 프로세스의 상황 바꾸기 ~]# yes > /dev/null // 포그라운드 프로세스 생성하고 "Ctrl+Z"를 눌러 프로세스를 일시 중지 시킨다 ~]# bg // 잠시 중지된 프로세스를 백그라운드 프로세스로 계속 실행 ~]# jobs // 현재 백그라운드로 가동중인 작업을 확인 [1]+ Running yes > /dev/null & // 맨앞에 나오는 [1]이 <작업 번호> ~]# fg <작업 번호> // 다시 포그라운드 프로세스로 만든다 ~]# gedit & // gedit 를 실행한 터미널을 계속 사용할 수 있도록 백그라운드로 실행 // firefox,gedit 등은 별도의 창이 가동되어 실행하는 것이므로 백그라운드로 실행해도 아무 문제가 없다. 하지만, vi 에디터와 같이 현재의 터미널에서 입출력을 해야 하는 프로세스는 백그라운드 실행하면 의미가 없다. <서버 데몬의 유형> 데몬(daemon) = 서비스 = 서버 프로세스 1. Standalone 타입의 데몬 : - 시스템에 독자적으로 프로세스가 구동되어 서비스를 제공하는 데몬 - 웹 서버(httpd), DB 서버(mysqld), 센드메일 서버(sendmail), 네임 서버, samba등 - 실행 및 종료는 대개 "service <데몬이름> start/stop/restart" 로 사용된다. - 실행 스크립트 파일은 "/etc/init.d/(서비스)" 디렉토리에 주로 들어 있다. 단, 이 디렉토리에 있다고 전부 데몬이라고 얘기하지는 않는다. - 메모리에 항상 구동되어야 하기 때문에 자주 호출되는 서비스가 사용하기에 적당함 2. inetd 타입(또는 xinetd 타입)의 데몬 - 수퍼데몬 - 평상시에는 구동되지 않다가, 서비스를 요청할 때만 구동시켜 주는 방식 - 데몬 설정 파일은 "/etc/xinetd.d/ 디렉토리에 들어 있다. - 내부 설정 파일을 수정하면 반드시, "service xinetd restart" 명령으로 재시작해야 한다. - xinetd 데몬이 서비스하는 포트는 "/etc/services" 파일에 설정이 되어 있다. <root 사용자의 비밀번호를 잊어버려서 로그인을 하지 못할 경우 해결 방법> 1. 재부팅을 하여 아래 내용의 화면이 나오면 아무키나 누른다. Booting Fedora Core (2.6.11-1.1369_FC4) in 3 seconds. . . . . 2. GRUB의 메뉴 화면이 나타난다. ① Fedora Core (2.6.11-1.1369_FC4) // 여기에 커서를 두고 "e" 키를 누른다. ( e : Edit ) ② kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/ rhgb quiet // 커서를 두고 "e"키 ③ grup edit> kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/ rhgb quiet 1 // "1"을 입력 Enter ④ 2번 화면에 "1" 이 추가 되어 있을 것이다. "b"를 눌러 부팅한다. 3. 부팅은 런레벨1(싱글모드)로 부팅이 될 것이다. // 그냥 root 사용자로 로그인이 자동으로 된다. sh-3.00# whoami // 현재 로그인된 사용자 확인 sh-3.00# passwd // 자신(root)의 비밀번호 변경 sh-3.00# reboot // 재부팅 후에 변경한 root의 비밀번호로 정상적으로 로그인이 될 것이다. <GRUB 부트 로더에 암호 설정 방법> - /etc/grub.conf (설정파일) ~]# grub grub> md5crypt Password : **** // 사용할 암호 입력 Encrypted : $1$ndrkx0$UUvidooZmqnuGfKjBxU4G0 // 다음과 같이 암호화된 결과가 나온다 grub> quit // grub를 종료 ~]# vi /etc/grub.conf # boot=/dev/hda password --md5 $1$ndrkx0$UUvidooZmqnuGfKjBxU4G0 // 위의 암호화된 결과를 입력 default=0 // 기본적으로 부팅되는 부트 엔트리 번호 (순번은 0,1,2,3 ..........으로 매겨짐) timeout=5 // 초기에 부팅될 때 5초 동안 여유를 준다는 의미 splashimage=(hd0,0)/boot/grub/splash.xpm.gz // GRUB 메뉴의 부팅 이미지 파일을 지정한 부분 hiddenmenu // 기본적으로 GRUB 부트 로더를 보여주지 않는 설정 // hd(0,0) : - 첫번째 "0"은 첫번째 하드디스크인 "/dev/hda"장치를 의미 - 두번째 "0"은 첫번째 파티션인 "/dev/hda1 장치를 의미 GRUB 설정파일을 저장하고 시스템 재부팅하여 GRUB 부트 로더로 부팅 하면 "e"키는 눌리지 않을 것이다. "p"를 눌러서 위에서 설정한 비밀번호 입력하면 사용을 할수가 있다. < cron과 at > cron : - 주기적으로 반복되는 일을 자동적으로 실행될 수 있도록 설정해 놓는 것 (예약된 작업) - 관련된 데몬(서비스)은 crond , 관련 파일은 /etc/crontab - /etc/crontab의 내용은 "분,시,일,월,요일,권한,실행" 명령 순으로 되어 있다. (요일 부분은 0~6까지 일요일~월요일, "0"을 입력하면 "일요일"을 의미 한다.) at : 일회성 작업을 예약하는 것. 즉, 예약을 해 놓으면 한 번만 실행되고 소멸되는 것이다. ⓐ 예약 : ~]# at 3:00 am tomorrow // 내일 새벽 3시 ~]# at 11:00 pm January 30 // 1월 30일 오후 11시 ~]# at now + 1 hours // 1시간 후 ⓑ at> 프롬프트에 예약 명령어 입력 후, Enter ⓒ 완료되면 "Ctrl+D" ⓓ 확인 : ~]# at -l ⓔ 취소 : ~]# atrm <작업 번호> (매월 15일 새벽 3시 1분에 "/home" 디렉토리와 그 하위 디렉토리를 /backup 디렉토리에 백업하기) ~]# service crond status // cron 데몬이 가동하고 있는지 확인 (기본적으로 가동이 되어 있을 것이다.) ~]# vi /etc/crontab 01 3 15 * * root run-parts /etc/cron.monthly ~]# cd /etc/cron.monthly/ cron.monthly]# touch abc.sh // 메시지를 출력하는 스크립트 파일 생성 cron.monthly]# chmod 755 abc.sh // 속성을 실행 가능하도록 바꿔준다. cron.monthly]# vi abc.sh // 아래 쉘 스크립트 내용 입력 # ! /bin/sh set $(date) // 현재날짜를 추출해서 /backup 디렉토리에 "backup-<현재날짜>.tar.gz"으로 fname="backup-$2$3.tar.gz" "/home" 디렉토리 전체의 백업 파일을 생성하라는 의미 tar cfz /backup/$fname /home cron.monthly]# mkdir /backup // 백업용 디렉토리 생성 cron.monthly]# service crond restart cron.monthly]# date 011503002005 // "01월 15일 03시 00분 2005년"으로 날짜를 강제로 바꾸기 cron.monthly]# service crond restart cron.monthly]# date // 현재 날짜 정보 확인 (내일새벽 4시에 시스템을 최신 패키지로 업데이트하고, 완료되면 시스템을 재부팅하는 것을 at으로 예약하기) ~]# at 4:00 am tomorrow at> yum -y update at> reboot at> <EOT> // Ctrl + D 입력 job 1 at 2005-06-17 04:00 ~]# at -l 쉘(shell) - OS 명령어 해석, 사용자의 사용환경 제공, DOS 의 command.com 의 역할 ~]# cat /etc/shells // 쉘의 종류 정의되어 있음 ~]# echo $SHELL // 현재 사용중인 쉘의 종류 확인 ~]# chsh // 사용하고자 하는 쉡 변경 New shell [/bin/bash] : /bin/csh ~]# crontab -e // 서버의 시간을 주기적으로 맞게 수정 하려면 아래 내용 입력 0 0 * * 1 root /usr/bin/rdate -s time.bora.net /sbin/clock -w // 시스템 시간을 맞추기 위해 time server 로 사용할 수 있는 서버 (" time.bora.net " , " time.kriss.re.kr " , " time.nuri.net " ) ~]# history // 이전에 사용했던 명령어 확인 ~]# ! 6 // 이전에 사용했던 6번 명령어 다시 사용 ~]# cat .bash_history // 기존에 사용했던 명령어 모두 저장 <root 의 원격 로그인 허용 및 제한 설정> /etc/securetty : root가 로그인 가능한 터미널(tty) 장치명들을 나열해 둔 것 ~]# vi /etc/securetty # ttyp0 // pseudo 터미널을 통한 root의 접속 (앞에 주석처리 하면 원격지에서 root로 접속 안됨) # ttys0 // 시리얼 라인 또는 모뎀을 통한 root의 접속 ~]# vi /etc/ssh/sshd_config PermitRootlogin yes 나 no // 원격지에서 SSH로 root접속 허용 ~]# cat aa bb > cc // aa와 bb를 합쳐 cc에 입력 (cc파일에 내용이 있는 경우 지워짐) ~]# cat aa bb >> cc // 기존 내용에 추가 하여 입력 (cc라는 파일이 없었을 경우 새로 생성) ~]# head -5 install.log // 파일 앞부분 5라인만 내용 확인 ~]# tail -5 install.log // 파일 뒷부분 5행만 보여줌 ~]# sort name.txt // 파일 내용 정렬하기 ~]# sort -r name.txt // 반대로 정렬 ~]# file name.txt // 파일의 종류 확인 ~]# pwconv // shadow 패스워드로 변환 명령 ~]# pwunconv // 원래 패스워드로 전환 ~]# uptime // 시스템 부하율 점검 (1분,5분,15분 동안의 시스템 부하율을 각각 평균하여 나타냄) ~]# top // 시스템의 전체 운용상황 점검 ~]# w // 사용자 로그인 정보와 현재 작업 내용 확인 /var/log : 시스템의 모든 로그 기록, 관리 /etc/syslog.conf : 시스템 로그데몬(syslogd)이 실행 될 때 참조되는 로그 파일 설정 설정 파일 <로그 파일 종류> /dev/console(콘솔 로그) - 콘솔에 뿌려지는 로그 // 관련 데몬(kernel) /var/log/messages(시스템 로그) - 리눅스 커널 로그 및 주된 로그 // 관련 데몬(syslogd) /var/log/secure(TCPD 로그) - inetd 에 의한 로그 // 관련 데몬(inetd) /var/log/maillog(메일 로그) -sendmail 에 의한 로그 // 관련 데몬(sendmail, popper) /var/log/boot.log(부팅 로그) - 시스템 부팅시의 로그 // 관련 데몬(boot) /var/log/xferlog(FTP 로그) // 관련 데몬(ftpd) /usr/local/apache/logs/access_log(웹 로그) // 관련 데몬(httpd) /var/log/named.log(네임서버 로그) // 관련 데몬(named) <로그 파일 관리> - logrotate /etc/cron.daily/logrotate // 주기적인 실행을 위한 cron설정파일 /etc/logrotate.conf // 기본 설정 파일 /etc/logrotate.d // 각종 설정 파일 저장 디렉토리 /usr/sbin/logrotate // 주 데몬 "IT Story / System" 분류의 다른 글
|
||||||||||
IT Story/System |
2009/05/21 10:54 |
TAG 리눅스
Trackback address :: http://smilestory.net/trackback/102



Comments List