1. SecureCRT 3.0을 실행하여, 메뉴창에 있는 Connect를 클릭하세요.
사용자 삽입 이미지

위와 같은 창이 뜨지요?


Protocol : ssh2
Hostname : 서버주소 (ex. www.nayana.com)
Port : 22 (기본임, 건들지 말것)
Username : 유저아이디 (ex. icomis)


위 사항들을 입력한 후 Connect 를 클릭한다.


2. 아래 그림과 같이 보인다면, 정상적으로 접속 된 것입니다.
사용자 삽입 이미지

3. ls 사용방법 : ls 옵션-리스트를 보여준다.
옵션 및 설명-al숨긴 파일까지 리스트를 보여 준다.
-hl용량별 리스트를 보여 준다.

사용자 삽입 이미지


4. cd 사용방법 : cd 옵션 <폴더명>-폴더명으로 위치 이동을 한다
옵션 및 설명-바로 전 폴더로 이동한다

사용자 삽입 이미지


5. mkdir 사용방법 : mkdir 옵션 <폴더>-폴더를 생성한다.
옵션 및 설명-p연속된 하위 폴더를 생성한다.
-m퍼미션(chmod)을 지정하여 폴더 생성한다.

사용자 삽입 이미지


6. mv 사용방법 : mv <변경전파일> <변경후 파일>-파일또는 폴더의 이름을 변경 또는 이동한다.
mv index.html index.htm index.html을 index.htm 으로 변경한다.
mv html/ text/ html 폴더를 text 폴더로 이름을 변경한다.
mv x112.html test/ x112.html 파일을 test 폴더안으로 이동한다.

사용자 삽입 이미지


7. cp 사용방법 : cp <원본> <사본>-파일또는 폴더의 이름을 변경 또는 이동한다.
cp index.htm index.html index.html을 index.html 으로 복사본을 만든다.
cp -a text/ text_old/ text폴더를 text_old폴더로 같은 퍼미션의 복사본을 만든다.

사용자 삽입 이미지


8. chmod 사용방법 : chmod <퍼미션> <파일>-파일 또는 폴더의 퍼미션을 변경한다.
chmod 000 text/ text폴더의 퍼미션을 000으로 변경한다.
chmod 777 -R test/ test폴더 포함, 하위의 모든 파일 및 폴더의 퍼미션을 777로 변경한다.

사용자 삽입 이미지


9. chown 사용방법 : chown <유저> <파일>- 파일또는 폴더의 유저를 변경한다.
chown mysql text/ text폴더의 유저를 mysql로 변경한다.
chown mysql -R test/ test폴더 포함, 하위의 모든 파일 및 폴더의 유저를 mysql로 변경한다.
chown mysql.mysql index.htm index.htm 파일의 유저와 그룹을 mysql로 변경한다.br>

사용자 삽입 이미지


10. chgrp 사용방법 : chgrp <그룹> <파일>- 파일또는 폴더의 그룹을 변경한다.
chgrp mysql text/ text폴더의 그룹을 mysql로 변경한다.
chgrp mysql -R test/ test폴더 포함, 하위의 모든 파일 및 폴더의 그룹을 mysql로 변경한다.

사용자 삽입 이미지


11. find 사용방법 : find <위치> <표현식>- 조건에 맞는 파일들을 찾는다.
find /free/home -name test/ /free/home 아래에서 폴더명이 test 인 것을 찾는다.

옵션 및 설명-name <파일명>이름이 일치하는 파일명을 찾아준다.
-printfind 명령의 결과를 보여준다.
-perm <모드>파일 퍼미션 조건이 맞는 것만 찾아준다.
-user <유저명>지정한 유저에 맞는 유저 소유의 파일만 찾아준다.
-group <그룹명>지정된 그룹 소유의 파일만 찾아준다.

사용자 삽입 이미지


12. grep 사용방법 : grep <-옵션> <파일>- 파일안의 특정 패턴을 검색한다.
frep xxx -r test.html test.html 파일에서 xxx 가 들어가는 줄을 검색하여 보여준다.

옵션 및 설명-G패턴을 기본적인 정규 표현식으로 해석한다.
-E패턴을 확장된 정규 표현식으로 해석한다.
-F패턴을 고정된 스트링 리스트나 새로운 행에 의해 구분된 것으로 해석한다.


ex) 사용자가 로그파일 요청하여 뽑을 경우.
cd /usr/local/apache/logs < Enter>
grep winkguy -r access_log > 파일명

사용자 삽입 이미지

위와 그림을 보면 winkguy라는 값으로 전체 로그파일을 검색하여 test.cgi 라는 결과를 얻었다.
로그파일의 구조는 아래와 같다.
[접속주소] [접속한 IP] [접속한 날짜] [읽은 파일] [파일을 읽은 위치] [읽고 있는 프로그램]


13. vi 사용방법 : vi <파일명> [ :<명령어> ]- 편집기를 실행한다
옵션 및 설명q종료한다.
w저장한다.
wq저장 후 종료한다.
w!강제 저장한다.
q!강제 종료한다.
nddn줄 만큼 삭제한다.
nyyn줄 만큰 복사한다.
dw한 단어만 삭제한다.
x(Del Key)커서가 위치한 부분부터 앞으로 삭제하여 나간다.
i(s)커서가 위치한 부분부터 수정한다.
.,$s/A/B/gA를 B로 변경한다.

 

출처:http://blog.naver.com/hiuni/60014466908

 

----------------------------------------------------------------------------------

 

 

 

 

 

 

 

Linux 기본 명령어

 

------------------------------------

man 페이지 도움말

spacebar : 한페이지씩 출력
q        : 종료
b        : 이전페이지 출력
enter    : 한줄씩 출력
경로: /usr/share/man

------------------------------------
ls -- 디렉토리 목록 출력
[option]
-a: 숨김파일
-l: list
-i: inode
-c: time
-d: 디렉토리만 출력
-R: 하위폴더까지 출력
-F: 파일속성(/디렉토리,*실행파일,@심볼릭링크파일 )
--------------------------------------------------
cp--복사
[option]
-i:존재할경우덮어쓰기여부확인
-r:하위디렉토리존재시포함복사
-p:원본파일의 권한 그대로복사

ex) cp 원본파일 복사본파일

-------------------------------------
mv--이동
[option]
-i:존재할경우덮어쓰기여부확인
(같은폴더이동시이름바뀜)

------------------------------------
mkdir--디렉토리생성
(mkdir a/b/c/d 여러개의 파일생성)

rmdir--디렉토리삭제
rm--디렉토리삭제
[option]
-r:하위디렉토리포함삭제
-f:강제삭제
-v:삭제과정보여줌
-------------------------------------

touch --공백파일생성
---access type
---modify type
---

(ascii파일로 저장)

존재여부에따라 있을시 로그인허용
               없을시 로그인불허


-------------------------------------
cat--파일생성,파일보기,파일결합
-n : line번호 출력
-nl:
>  : create 생성 cat > t1
>> : append 추가 cat t1 t2 >> t3
<  : 다른곳으로 보냄
ctrl+d:닫기

ex)cat > test1
   cat0>1test1  0입력,1출력
   cat >2 a.txt       2로 파일로 저장 

   ls -al /lab >  a.txt 존재없을시 저장못함
   ls -al /lab >2 a.txt 존재없을시 2로 출력

------------------------------------------
more 페이지별로 파일출력
[option]
--  v: hidden기능 내부에서 vi로 편집기능
       more에서 수정가능

more

spacebar : 한페이지씩 출력
q        : 종료
b        : 이전페이지 출력
enter    : 한줄씩 출력

------------------------------------------
ln
[option]
-s : 심볼릭링크
기본값 하드링크

하드링크
(제약사항-파일시스템을링크를 걸수 없음
         -디렉토리에는링크를 걸수 없음

심볼릭링크==(windows 바로가기)
원본의 또다른 파일(링크)의 포인터사용

inode:디스크상에서 관리하는 최소단위

ex) a.txt 파일생성
    ln a.txt b.txt 하드링크
    ln a.txt c.txt 
    퍼미션 &  링크수 (비교)
   


    ln -s b.txt bb.txt 심볼릭링크
    퍼미션 & 링크수

 

---------------------------------------------------
grep 문자패턴 (golbal regular pattern)

echo "troot" >> /tmp/passwd (passwd란파일에troot입력)
echo "Root" >> /tmp/passwd (passwd란파일에Root입력)
cat passwd
grep root /tmp/passwd
grep -v root /tmp/passwd
grep -i root /tmp/passwd
grep -n root /tmp/passwd
grep -l root /tmp/passwd 파일명만 리턴
grep -w root /tmp/passwd
grep -vin root /tmp/passwd
root를 제외하고 대소문자 구문하지않고 라인과 함께출력
[option]정규표현식
-w : 완벽하게 맞는 문자열을 찾을때.
     ex)the
        -->the
        -->them
        -->there
-i: 대소문자구문 없이 출력
-l:매칭되는 라인과 함께..출력
-n:매칭되는 라인번호만 출력
-v: not (찾는문자열이 포함하지 않는것)
-c: 매칭이되는 라인의 갯수를 출력

^ :앞에가 패턴으로 시작하는것 ^root
$ :맨끝의 패턴으로 시작하는것만 찿아줌 root$
*  : 0이상의 모든것. '[a-z]*'
[] : 범위지정
[^]: [^a-m] a-m의 패턴이 아닌것만 출력

-----------------------------------------
find 검색디렉토리 조건 파일명 수행작업
[option]
-name  filename :
-size  : 사이즈
-perm  : 파일권한
-mtime :
-atime :
-user  : 유저설정
-type  :f file d directory
-empty :
-exec  : 실행
-print : 출력
-{} \; : enter
-ok {} \;
-ls : ls -al 포멧으로 보여줌

find /etc -name passwd (-print 기본값)
find /etc -name passwd -exec rm { } \;
     -----------------           ^
             |___________________|
                  결과를 넣고 \; 엔터로 실행
 
find /tmp -type f -size 0 -ok rm {} \;
find /tmp -type f -size 0 -exec rm -i {} \;
:타입이 file이고 사이즈가 0인 것을 지울때 확인과정거침
 
-------------------------------------------------------------
which 문자패턴 (단순한 경로로 표시)
-------------------------------------------------------------
파일의 종류

- : 일반파일 regular file
    일반적인 바이너리 파일이거나 텍스트파일임
d : 디렉토리링크파일
c : 케릭터파일(디바이스장치)
b : 블럭파일(하드디스크,cd-rom-트렉과 섹터있음)
D : door 파일(메모리상의 상주하는 프로세스간의 통신)
s : socket 파일
p : pipe파일

pipe

ls-al | more
-----------------------05/02/17
permission & rights

chmod: 사용자 권한 변경
    -|rwx|rwx|rwx|
     | u | g | o | user,group,other

   chmod 755 lab1     
   chmod u+rwx g+rx o+rx lab1
:루트와 소유자만 변경
chown: 사용자 소유자 변경
ex) chown lab1 /home/lab1
:루트만 사용변경
chgrp: 사용자 그룹 변경
ex) chgrp lab1 /home/lab1
:루트만 사용변경

setuid=4
ex) chmod 4755 lab1
setgid=2
ex) chmod 2755 lab1

umask
일반파일 생성시 풀퍼미션은 666
디렉토리 생성시 풀퍼미션은 777
초기 umask 값 0022

일반파일    디렉토리
  666         777
  022         022
  ---         ---
  644         755로
stickybit ==게시판기능과 같다고봄
drwxrwxrwt t- /tmp
글을 올릴수 있으나 삭제와 수정은 작성자와 루트만 수정가능

vi .exrc
set nu
set auto
set list
숨김파일로 사용자홈디렉토리에 저장
-----------------------------------------
uname -p i686(pentium 4)
      -n == hostname

free  -m 메가
      -k 킬로

ps    -e 모든사용자 프로세스 보여줌
      -f 상세히 보여줌
      -a : 자신만의 프로세스를 보여줌    
      -u : 세부적으로 보여줌
      -x : 세부적으로 보여줌

top 실시간 프로세스를 보여준다.(100%완벽하지는 않음)

vmstat 5    5 실시간 프로세스를 5번 5초에 보여준다.
       5번 5초
iostat 5    5

df 마운트된 시스템 정보 -k 킬로 -h(humanreable)
du --max -depth=1 -h /home : 사용자별 디스크사용현황
lsdev /etc/syscong위치
date
rdate : 네트워크설정
clock -w cmos 셋업에 덮어씀
----------------------------------------------
vmware로 네트워크 설정

1.  vmware 종료
2.  네트워크 카드제거
    (mac주소 충동방지-같은사용자가 os복사시)
3.  네트워크 카드추가(bridge==vmnet 0)
4.  리눅스 부팅(init 6)
5.  터미널 수행
6.  ifconfig -a (eth0의 ip어드레스 확인)    ip가 192.168.1.74일때(windows ip:.73)
7.  ifconfig eth0 192.168.1.74 up
8.  ifconfig eth0
9.  route add default gw(게이트웨이) 192.168.1.1
10. vi /etc/resolv.conf
    (내용추가)
    nameserver 168.126.63.1   
    nameserver 168.126.63.2 ex)두루넷 서버

11. vi /etc/hosts (/etc/inet/hosts를 링크(원본파일))
127.0.0.1      localhost    localhost.localdomain localhost
198.168.1.74   redhat74(같은네트워크)     redhat74.sun.com(dns시)

12. vi /etc/sysconfig/network(게이트웨이와호스트정보입력)
    NETWORKING=yes
    HOSTNAME=redhat74
    GATEWAY=192.168.1.1

13. vi /etc/sysconfig/network-scripts/ifcfg-eth0
    (네트워크카드에 대한 설정 정보)
    DEVICE=eth0
    BOOTPROTO=none
    BROADCAST=192.168.1.255 (c class)
    IPADDR=192.168.1.74(자신IP주소)
    NETMASK=255.255.255.0
    NETWORK=192.168.1.0(네트워크 범위)
    ONBOOT=yes
   추가사항
   DHCP_hostname=redhat74(호스트이름)
   HWaddr = 00:0c  ... (MAC주소)

14. vi /etc/nsswich.conf (DNS-추가사항)
    ......
    ......
    hosts: files dns nis
    ......

15. GUI tools : hnetconfig(한텀)
                netconfig
                netcfg(버전 7.x이하)
                redhat-config-network(버전 8.x 이상)
재부팅  (init 6)

인터넷브라으저로 확인

------------------------  /05/2/18/-----------------------------------------------------
        process의 신화이야기

      post(power on self testing)
          |
     부트로드프로그램----{윈도 NTLOADER
          |          ----{리눅스/Sola(grub,lilo)
          |
     운영체제(커널)=====>메모리 적재
          |  ---|---        ^
          |     |-----------|(booting)
   |======|
(schedule)|
-(pid=0)--|------------->(커널영역)-----
          | ------------>(process )---cf.)process->thread->LWP(Lightweight process)
          |                                                priority  
        init(pid=1:조상데몬)                       (LWP)+priority우선순위--+                                 
          |                                        (LWP)+priority우선순위--|-(경합)-우선순위높은쓰레드실행                                                        
   ----------------------------------              (LWP)+priority우선순위--+        (여러쓰레드가 모여하나의 프로세스가됨)                               
  |                 |               |
inetd(6.x이하)   daemon
xinetd(6.x이상)                   + - parent : 부모프로세스
  |                               | - child  : 자식프로세스
  |(fork)                         | - daemon : 서비스프로세스
  +----------+---------+          | - orphan : 고아(최상위init이죽임)
telnetd   in.ftpd ...             + - zombie(=defunct) : 실행후메모리에떠있는프로세스
                                      :메모리자원고갈,성능저하

프로세스 fork,exec,wait,retrun,wakeup,exit과정
         +-----+
         |     |(pid=1000일때)
  wait() +-----+
 wakeup()  /\    
          /  \fork()
         /    \pid=자식프로세스생성
        /      \
    +----+     +----+
    |    |-----|    |exec()
    +----+     +----+자식프로세스실행
  exit()프로세스종료
-------------------------------------------
shell+--   cat  : ctrl + D <EOF=Een of file>
     +--terminal: ctrl + D <Exit>

echo $$     : 자신프로세스 pid를 보여줌 ex)pid=2069
echo $SHELL : 사용자쉘보여줌
echo $HOME  : 사용자 홈디렉토리
echo $PATH  : 명령어 링크 / 경로를 표시
echo $MAIL  : 사용자에게 메일이 올경우 저장할 곳 지정
echo $TERM  : 터미널 유형나타낸다
echo $PS1   : 프롬프트 표시 ex)[\u@\h \W]\$
[option]
    \u : 사용자
    \t : 시간
    \h : 호스트
    \W : 자업디렉토리
    \d : "요일 월 일"형식
    \n : 새로운줄을 바꾼다
PATH = 경로명:경로명  ex)/a/b      
PATH = $PATH:경로명:경로명../c/d  path변수에의해 a:b:c:d
PATH = $PATH:경로명:경로명.. /c   path변수에의해 a:b:c:d:e

ps -aux | grep 2069

ex)#bash 자식 프로세스 생성
   #echo $$ ex)2077
   #pstree 프로세스의 구조 |-hanterm---bash(부모)---bash(자식)---pstree
   #exit 자식 프로세스 삭제
 
  ** export 변수명 (전역변수 선언) bash--bash등 시스템 전반에 변수사용
     PS2="*^^*:"
     export PS2 변수지정
   
cd \
> 제 2의 프롬프트
ex) # ls \
     > -al


----------------------------------------------------------------------
사용자별 홈디렉토리환경설정파일
   +- .bash_profile : 사용자 환경변수 설정
   |- .bashrc       : alias로 명령어 별칭그룹지정
   |                  ex) alias c=clear
   |- .bash_logout  : 로그아웃시 환경변수 지정
   |- .bash_history : 사용명령 내용 HISTSIZE=1000(기본값)
   +----------------
전체 시스템 환경설정파일
   +- /etc/.bash_profile : 사용자 환경변수 설정
   |- /etc/.bashrc       : alias로 명령어 별칭그룹지정
   |- /etc/.bash_logout  : 로그아웃시 환경변수 지정
   |- /etc/.bash_history : 사용명령 내용 HISTSIZE=1000(기본값)
   
-------------------------------------------------------------------------
/dev
      +--block device(파일시스템)
      |  ex)모니터,하드.키보드.
      +--character device
         ex)/etc, /home swap (중앙집중식, 수시백업)
                  solaris export/home
-------------------------------------------
/lib 라이브러리 (window의 *.dll파일과같음)
    
     +-- 링크연결
     |   ln -s(심볼릭링크)
     +-- 패스걸기                   ex)/lib   /usr/bin/local/lib
         라이브러리 패스(LD_LIBRARY_PATH=/lib:/usr/bin/local/lib)

__________________________________________________________
/lost+found
   fsck(file system check)
__________________________________________________________
/sbin관리자사용명령어 (fsck,ifconfig,ismod,mkfs,reboot)  
----------------------------------------------------------
/var
spool임시 로그저장 full일시 시스템panic
/var의 로그내용 rsync로 백업후 초기화
                netbackup 스크립트로 리모트컴퓨터에저장후 로그파일삭제
----------------------------------------------------------------------
/mnt (GUI환경자동마운트,text모드 설정)
[option]
-t : type == soralis mount -F
-ext3,iso9660,fd0,.. :직접파일시스템

df -h : 디바이스 장치 확인

/etc/fstab 장치 설정
 설정사항+--default : 부팅시 자동으로 실행
         |--noauto  : 부팅시 자동으로 mount안됨
         |--owner   : 소유자
         |--ro      : 읽기전용
         |- gid     : 그룹
         |- mode    : 마운트 모드를 지정
         +--kudzu   : 하드인식, 하드디바이스 자동물어보면서 설정

   kudzu                             
     |하드웨어인식                      +----------------+
   fdisk                                |solaris         |
     |                                  |/etc/vfstab     |
   mkfs(파일시스템생성)                 |/etc/mnttab     |
     |                                  +----------------+
   mount   영구적(/etc/fstab기록)


cat /etc/mtab (커널제어=직접수정불가)
              /etc/fstab있는 기록을 자동으로 update

1. 시디를 삽입
2. #mount -t iso9660 /dev/cdrom /mnt/cdrom
3. #cd /mnt/cdrom
    -->cd / 이동후 분리
    -->umount -f 강제옵션 권장안함.

4. #umount /mnt/cdrom
   (사용중일시 분리안됨)
   (해당 디바이스 디렉토리에 접근중일때에도 안됨)
   (device busy메세지 출력후 umount안됨)
   (누군가 사용중인지 확인시에는 fuser명령어로 확인후 강제 분리 가능)
    자세한 옵션은 man page참조.

#uname -a 모든디바이스 안쓸때 /etc/fstab =>등록정보모두 umount
 전제조건 / , /usr, swap 은 파일시스템이기때문에 메모리에 상주 umount할수 없다.
------------------------------------------------------------------------------------
rpm패키지 (rpmfind.net)                     |단점
                                            |아무디렉토리에 깔림
[option]                                    |그러나 -e옵션으로 지움가능
-i : 패키지설치                             ---------------------------
 -U : 패키지업그레이드                      |tar
-v : 패키지설치되고 있다는메세지            |자기가 원하는 디렉토리설치
-h : 패키지설치과정"#"으로 표시함           |rm으로 디렉토리 하나씩 삭제
-e : 패키지제거

--force  : 강제 설치
--nodeps : 의존성여부확인
  -df <파일 절대경로>
  ex)rpm -qf /sbin/ifconf
-rpm -qip 앞으로 설치하고자 하는패키지정보
 ex)rpm -qip /mnt/cdrom/mozilla-1.2.1-26.i386.rpm
-rpm -qi 기존패키지 정보
 ex)rpm -qi  <패키지명>
-rpm -qa패키지명 조회
 ex)-rpm -qa | grep "moz*"
------------------------------------------------------------------------------------
vnc설치

rpm -qa | grep vnc-server
서버중지 / 가동
/etc/init.d/vncserver stop(start,restart) *중지
vnc서버구동시의 x윈도우 번호지정
#vi /etc/sysconfig/vncservers 파일편집
   맨아래줄 추가
   VNCSERVER="1:root"
홈디렉토리이동
#mkdir .vnc파일생성
#vncpasswd (x위도우 접근시 인증 패쓰워드설정)
/etc/init.d/vncserver stop(start,restart) *가동
#chkconfig vncserver on 부팅시 자동 등록

client
www.tightvnc.com접속 tightvnc1.2.9-setup.exe다운

   ip주소:1터미널 번호
   vnc 패쓰워드

----------------------------05/02/21--------------
파일 압축명령어..www.gnu.org

gcc                  |       cc
GNU CC               |      c compiler lib라이브러리 호출
gcc 1.x 2.x 3.0...   |       자기의 프로그램에 맞게 lib수정가능

gcc -o hello hello.c
  [option] -o 출력파일명 지정

./configure 한번에 여러 .c프로그램을 컴파일할수 있도록 함
 [option] --prefix 옮겨질 경로 지정

makefile    컴파일할 목록명세파일(컴파일대상)
make install 디폴트경로로 설치
make clean
make dep
+------------------------
|make solaris 솔라리스에는 깔리는데 리눅스에서는 안깔릴때
|make linux   리눅스에서는 깔리는데 솔라리스에는 안깔릴때

tar
[option]
 -c : tar파일 생성
 -v : 세부사항 표시
 -f : file 경로지정
 -x : tar파일 해제
 -t : 내용보기
 -z : gzip파일 해제.생성 gzip -d(해제)

compress, jar, bzip ...
[tip]tar cvf생성시 절대경로로 하지 않을것!!
-------------------------------------------------------
telnet 23 ssh 22

/etc/securetty-->mv /etc/securetty /etc/securetty.bak
                 우선백업으로 파일지움
vi /etc/xinetd.d/telnet
   =>disable=yse ==>no로 변경

/etc/init.d/xinetd restart 서비스 시작
/etc/xinetd.conf 서비스목록 (backgroud)
/etc/services 포트정의

standardalone 메모리 사용량증가 ==>성능저하
background    요청시 하나의 프로세스생성후 접속 끊음
----------------------------------------------------

ssh 암호화 통신
    /etc/sshd/sshd_config(server)
    /etc/sshd/ssh_config(client)

  #ps -ef | grep sshd 데몬 확인
  #/etc/init.d/ssh restart

window에서 putty client 접속www.openlook.org
           secureCRT 4.x 상용

#ssh -l ip
 [option] -l root open
 -> yse

ncftp +--폴더를 통째로 받음
      +--자동완성기능(tab)

#ncftp ip(익명)  www.rpmfind.net(ncftp)
#ncftp -u user ip (계정)
-------------------------------------------------

부팅 / 초기화 스크립트

runlevel
           (linux)               |          (sola)
            s,S 싱글모드(복구용) |     s,S 싱글모드(복구용)
             0  종료             |     0 종료후 prom
             1  싱글모드         |     1 싱글모드
             2  제한멀티유저     |     2 제한멀티유저
             3  command line     |     3 command line
             4  예약             |     4 예약
             5  x-window         |     5 종료후 poweroff
             6  reboot           |     6 reboot

  #w -r runlevel 확인    #init 5 == startx
 
  /sbin/rc 스크립트 초기화 파일
      -S 초기화프로세스 실행 (번호가 낮은것이 우선순위 높음)
      -K 초기화프로세스 종료 (우선순위 상관없음)

 ex) rc2.d  ls -al 로 링크 확인
     #/etc/xinetd -+(링크파일)
     #/etc/init.d -+

 ex) rc2.d에서 sshd을 내리려면 대문자 S를 소문자 s로바꿈.
    
     runlevel 2에서 nfs파일시스템을 올릴시 rc3.d에있는 S25netfs을
                                           rc2.d에 복사

vi /etc/rc.d/rc 스크립트 내용
.
.
47  #Get first aroument, Set new runlevel to this argument.
48  [ -n "$argv1" ] && runlevel="$argv1"
49 
50  # Is there an rc directory for this new runlevel?
51  [ -d /etc/rc$runlevel.d ] || exit 0(런레벨변수를 입력받음  or연산을 통해 exit 0 빠짐)
52 
53  # First, run the KILL scripts.
54  for i in /etc/rc$runlevel.d/K* ; do(K로 시작하는 스크립트 실행)
55           check_runlevel "$i" || continue
56
57        #check if the subsystem is already up.-------------------------------------------+
58        subsys=${i#/etc/rc$runlevel.d/k??}                                               |
59        [ -f /var/lock/subsys/$subsys -o -f /var/lock/subsys/$subsys.init ] || continue  |
60                                                                                         |
61 #Bring the subsystem down.                                                              |검사루틴
62 if egrep -q "(killproc laction )" $i ; then                                             |
63             $i stop                                                                     |
64                                                                                         |
65   else                                                                                  |
66             action $"Stopping $subsys: " $i stop                                        |
67  fi                                                                                     |
68  done-----------------------------------------------------------------------------------+
69
70  #Now ron the START scripts.
     for i in /etc/rc$runlevel.d/S.* ; do
               check_runlevel "$i" || continue

              #check if the subsystem is already up.
              subsys=${i#/etc/rc$runlevel.d/$s??}
              [ -f /var/lock/subsys/$subsys -o -f /var/lock/subsys/$subsys.init ] && continue

    #If we're in confirmation mode, get user confirmation
     if [ -n "$CONFIRM" ]; then
             confirm $subsys
             case $? in
                     0) :;;
                     2) CONFIRM=;;
                     *) continue=;;
             esac
   fi

  #Bring the subsystem up.
  if ["$subsys" = "halt" -o "subsys" = "reboot" ]; then
        unset LANG
        unset LC_ALL
        exec $i start
  fi
  if egrep -q "(daemon laction)" $i 2>/dev/null (/dev/null 초기화)
                                    || [ "$subsys" = "single" -o "subsys" = "local"]; then
               $i start
      else
              action $"Starting $subsys: "$i start
      fi
 done
   
----05/02/22------------------------------------------------------------
/etc/default
useradd (user가 생성될시 기본적인 내용정의)
GROUP=100(gid)
HOME=/home(홈디렉토리)
INACTIVE=-1
EXPIRE(만료일)
SHELL=/bin/bash(기본쉘)
SKEL=/etc/skel(골격)

chsh 쉘변경  (sola ==passwd -e)
id -a 사용자 확인

-----------------------------------------------------------------
/etc/passwd
hpunix  /etc/security/passwd
        /etc/security/shadow

/etc/login.defs (환경설정)
    ...
   UID_MIN 500(500부터 시작)
   UID_MAX 60000(최대값)
    ...
   CREATE_HOME  yse(홈디렉토리 없을시 생성하라!!)
  *****  passwd  *******
root:x:0:0:root:/root:/bin/bash
유저명:shadow기록:uid:gid:사용자이름:홈디렉토리:기본쉘
/bin/false    ----+기본쉘 지정시 로그인 사용못함
/sbin/nologin ----+     "         "

/etc/shadow
root:암호화로기록:12835       :0:99999:7:::
유저명:1970.1.1기준:최소사용기간:유효기간:만료일7일(이후lock):expire:disable:reserve예약

#pwunconv -->shadow-로 만들어 사용자 불허
#pwconv   -->shadow파일생성

사용자계정을 만드는 세가지방법
1.useradd,passwd

2./etc/passwd파일에 직접추가->pwconv업데이트->passwd암호지정->사용자홈디렉토리생성->/etc/skel(cp /etc/skel/.* /home/lab4)
  /etc/skel2 생성후사용자에맞게 환경설정 -> useradd -k /etc/skel2로 지정할수도 있음(cp -r디렉토리 전체복사)

3.GUI툴제공
여러사용자계정만들시 쉘스트립트 사용
 
-------------------------------------------------------
#mount -t ext3 /dev/shd3 /lab에연결시
#umount 하고
#fsck .ext3 /dev/hda검사
-------------------------------------------------------
job control
#sleep 10 (10초 대기후 실행)
#sleep 10 & (백그라운드로 넘김)
#jobs(작업확인)
ctrl+z 일시중지
fg 3(작업번호)
bg 3
-------------------------------------------------------
kill : 프로세스에게 시그널신호를 보내는 명령어

/etc/init.d/xinetd stop/start 프로세스가 달라져서 다른사용자들과의 세션이 종료
이럴때 현재사용하는 프로세스를 일시중지하고 다시 읽어들일때 kill -1 pid
kill -l 시그널 번호 리스트
0:exit,ctrl+d   1 : hup   2  : int(인터럽트) 9 : kill(강제종료) 15 : term (기본신호값)  20 : Tstp()
pkill -9,-kill,-hup사용. 이름이 같은 동일 프로세스가 같이 죽을 수도 있다.
killall 프로세스명

--------------------------------------------------------------------------
syslog
/etc/syslog.conf-로그파일이 기록될 폴더정의
sola   : /var/adm/messages
linux  : /var/log/messages
/etc/syslog.conf->m4(참,거짓판별)->syslogd데몬기록
syslog.conf
*.info;mail.none... (2개이상tab) /var/log/messages
 -----------------                     
selector facility.level                     
 .emerg : 커널패닉
 .alert : 경고(시스템 파일 손상)
 .crit  : 디스크 하드깨질시
 .err   : 명령에러메세지
 .warning : 경고메세지
 .notice  :
 .info    :
 .debug   :

ex)#vi /etc/syslog.conf에 daemon.*  /var/log/lab(touch생성)
   #touch /var/log/lab
   #/etc/init.d/syslogd restart
   #tail -f(tarce) /var/log/lab
   #telnet 으로 접속 확인

------------------------------------------------------------------------
netcat   --(www.packetstormsecurety.org)

win용 - nt11nt.zip

nc.exe파일을 c:\로 이동

서버- #nc -l(LISTEN) -p(포트) 5000(임의지정)  -e cmd.exe (백도워서버)
클라이언트 #nc 192.168.1.74 2080              클라이언트가 서버의 시스템볼수있다.
ipconfig로 확인

linux용 -- nt110.tgz
다운받을 폴더 생성 - ex)test
#tar zxvf nt110.tgz
#vi netcat.c 1319라인 /* res init() */ 주석처리
#gcc -o nc netcat.c -lnsl(소켓으로 만듦) -DGAPING_SECURITY_HOLE
#ls -s /test/nc /bin/nc로 심볼릭 링크걸어줌

서버- #nc -l(LISTEN) -p(포트) 5000(임의지정) 1024이상으로..
클라이언트 #nc 192.168.1.74 2080
채팅가능(윈도우와 리눅스 통신가능)

 

 

 

 

출처:http://blog.naver.com/ldk0824/140012856690

 


Posted by 영웅기삼
,