블로그 이미지
송시혁

calendar

1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

Notice

Tag

Recent Post

Recent Comment

Recent Trackback

Archive

'리눅스 마스터1급'에 해당되는 글 12

  1. 2018.08.21 워크스테이션 리눅스 하드디스크 추가하기
  2. 2018.08.20 리눅스 명령어(centOs 정리)
2018. 8. 21. 08:53 리눅스 마스터1급


실습을 하기 위해서는 일단, 아무것도 사용하지 않는 하드디스크를 만들어야 한다.

사용하고 있는 디스크를 잘못 건드렸다간 부팅도 안 될 수도 있으니, 가상머신에 

하드디스크를 추가해보자 


edit virtual machine setting 바로 누른다.



지금 설치한 centOs 는 40GB를 사용하가 있다. 확인만 하고 그냥 add를 눌러서 하드디스크 추가 



아래와 같이 선택하고 다음을 클릭 



SCSI, 옛날에는 IDE를 썻고 서버는 SATA를 쓴다고 한다. 지금은 test이므로 

아무것나 사용한다. 



새로운 디스크를 만든다. 



메모리는 많이 필요 없다. 1GB만 줌 그리고 중요한것은 Store virtual as a single file

이게 제일 중요. 



이름 지정하고 피니쉬


새 하드디스크가 생성(물론 vmware는 가상머신이므로 실제 하드웨어는 아니다)



쭉 보면 하드디스크가 굉장히 많다. 리눅스에 구조는 window와 많이 다른다. 이 부분은 나중에 포스팅



아래 왼쪽 하단에 하드디스크 아이콘으로도 확인 가능 



리눅스 터미널에서 확인 결과 1GB /dev/sdb가 생성되었다. 아마 이상태에서 또 다시 생성하면 

/dev/sdc, /dev/sdd.... 이런식으로 생성이 된다. 


아래 그림은 간단히 파티션 설정 하는 것 .








'리눅스 마스터1급' 카테고리의 다른 글

리눅스 웹 (약간 추가예정)  (0) 2018.08.26
samba, NIS  (0) 2018.08.25
리눅스 iptables,xinetd,  (0) 2018.08.24
리눅스 명령어(centOs)권한, 파일 시스템  (0) 2018.08.21
리눅스 명령어(centOs 정리)  (0) 2018.08.20
posted by 송시혁
2018. 8. 20. 14:51 리눅스 마스터1급

^     라인의 시작

$     라인의 끝

.     문자하나(\n 포함여부는 경우에 따라 다름 )

*     선행하는 패턴(문자)의 0번 또는 다수 반복  ex)a* a,aa,aaa.., 없어도 가능 

+     선행하는 패턴(문자)의 1번 또는 다수 반복  ex)a+

?     선행하는 패턴(문자)의 0번 또는 1번의 사용

|     OR 

[]    사용가능한 문자 범위 지정              [a-z],[a-z|A-Z|0-9], 

[^]   사용가능한 문자 범위 지정 반전         [^a] 사용 불가능한것. 

{n}   선행패턴의 n번 반복                    [a-z]{3} 

{n,}  선행패턴의 n번 또는 그 이상의  반복    [a-z]{3,}  

{n,m} 선행패턴의 n번 ~ m번 반복              [a-z]{3,5}   

\S     공백이 아닌 문자




리눅스의 하드디스크를 추가하면 파티션을 분할하고 공간을 할당한다.

공간의 크기는 공정이 되어서 변경이나 용량 증설이 어렵다.

그래서  LVM이 탄새이


LVM(Logical Volumme Manager)


=> 여러개의 하듯디스크를 하나의 뭉쳐서 하나의 디스키인 것처럼 만들 수도 있고 ,

     2개의 하드디스크를  3개의 하드디스크인 것처럼도 만들 수 있다.

 

구성도와 용어


● PV (Physical volume)

=> 실제 디스크에 물리적으로 분할한 파티션. /dev/sdb1, /dev/sdc1등이 이에 해당.



● VG(Volume Group)

=> 물리적 볼륨이 모여서 생성하는 덩어리. LVM에 단위를 PE라고 하는데,

     PE가 모여서 생성되는 하나의 큰 덩어리 



● LV(Logical Volume)

VG에서 사용자가 필요한 만큼 할당하여 만들어지는 공간.

=>물리적 디스크에서 분할하여 사용하는 파티션 



● PE(Physical Extent)

=>PV에서 나누어 사용하는 일종의 블록(Block) b같은 영역, 보통 1PE가 4MB정도씩 할당,



shutdown 명령어


옵션 


-r  재부팅 

-h 시스템을 종료할 때 사용(=half)

-c 예약된 셧다운명령을 취소 

-k 실제로 셧다운하지 않고 경고 메시지만을 사용자에게 전송

-p 종료 



● shutdown -h +10

=>  시스템을 10분뒤에 종료 


● shutdown -h +10 23:59

=> 23시 59분에 종료 예약 


● reboot -w 

    w: 시스템 재부팅을 하지 앟고 /var/log/wtmp에 셧다운 기록 저장한다.


 init 0 => 시스템 즉시 종료 

 init 6 => 재부팅 

 

 run level과 동일하고 init은 run level과 관련이 있다.

 

 

● startx 

 => x윈도를 실행시키는 스크립트.

      최종적으로 xinit을 호출

  

● startx  -- depth 8 

=> 256 color 모드로 x 윈도우실행.   

    


● startx  -- depth 16

=> 16비트 하이 color 모드로 x 윈도우실행.


● startx  --  :1

두 번째 윈도 터미널(Ctrl+ Alt + F8)에 X 윈도를 실행시킨다.


● xhost 

=> X 서버에 접근할 수 있는 클라이언트를 지정하거나 해제하는 명령어


● xhost + 

=> 모든 클라이언트의 접속을 허용한다.


● xhost  -

=> 모든 클라이언트의 접속을 차단한다.


● DISPLAY

=>X 클라이언트 프로그램이 실행될 때, 표시되는 창이 설정되어 있는 환경 변수 


● export DISPLAY ="192.168.1.0:0.1"

=> x 192.168.0.1클라이언트 프로그램을 전송 첫 번째 실행된 X서버의 두번째 모니터로 전송. 


● chsh

=> 로그인 쉘 변경 


<쉘 주요 환경 변수>


● HOME

=> 사용자의 홈 디렉토리 


● PATH

=> 실행 파일을 찾는 디렉토리 경로 


● LANG

=> 쉘 사용시 지원되는 언어 


● TERM

=> 터미널 


● PWD

=> 현재 경로 


● SHLELL

=> 사용자의 로그인 쉘 (사용자가 현재 사용하고 있는 쉘)


● DISPLAY 

=> x 윈도에서 프로그램 실행시 출력되는 창.


● PS1

=> 프롬프트 변수 


● PS2

=> 2차 프롬프트 변수


● TMOUT

=> 사용자가 로그인 후 일정 시간 동안 작업하지 않을 시 로그아웃시키는 시간. 단위는 초.


● HISTFILE

=> 히스토리 파일의 절대 경로 


● HISTSIZE

=>히스토리 파일에 저장되는 최대 갯수


● HISTFILESIZE 

=> 히스토리 파일 크기 


<주요 프롬프트 형식> p 102페이지에서 계속 

\\                \를 표시한다.


\d                 '요일 월 일' 형태로 날짜를 표시한다.


\t                  24시 형태의 현재 시간을 표시한다.


\T                 12시 형태의 현재 시간을 표시한다.


\@                12시 형태의 현재 시간에 AM/PM을 추가로 표시한다.


\w                 절대 경로 표시


\W(대문자 W) 절대 경로중 마지막 디렉토리만 표시 



● history 

=> 히스토리에 저장된 명령어 목록 출력 


● history 5

=>  최근에 입력한 마지막 5개의 명령어 목록을 출력한다.

 

● !! 

=> 가장 마지막에 실행한 명령어 출력 


● !-4

=> 목록에서 4만큼 거슬러 올라가서 출력 


● !a 

=> 최근 사용한 명령중에 a로 시작하는 명령을 찾아서 실행


● !?al 

=> 최근에 사용한 명령중에 al을 포함하는 문자열 명령어를 찾아서 실행.


●  alias 

=> 명령어를 특정 별명으로 지정하여 명령어를 실행 

     alias라고만 치면 목록만 출력한다.


●  alias ls='ls-al'

=> ls라고 치면 ls -al이 실행됨


●  unalias ls

=> ls라고 설정된 alias를 해제한다.



참고 


ls 명령어에 alias를 실행했을 때, ls를 해제하지 않고 실행하는 방법이 있다.


1. \를 붙여서 쓴다. \ls

2. 두번째 절대경로를 사용여 쓴다. /bin/ls 


경로는 which ls로 검색하면 디렉토리가 나온다.


● wc

=> 글자수 세는 명령어 


● wc < tmp.txt

=> tmp.txt의 내용을 wc의 입력으로 사용됨


● cat tmp.txt | wc 

=> 위와 동일한 효과


● tee 

파이프 연결 출력을 두 갈래로 나눌 때 사용하는 명령어.


옵션 

-i  인터럽트를 무시하도록 한다.

-a 지정된 파일로 출력을 덮어쓰지 않고, 파일 내용뒤에 추가한다.

 

ls -l /etc | a.txt | tee b.txt  | more


ls -l /etc의 결과를 a.txt와 b.txt에 저장하고 한 페이지씩 출력 



● expr 

=> 쉘 스크립트 환경에서 연산을 가능하게 하는 명령어 


● expr 3 + 2

=> 3 + 2를 하여 5가 출력됨


● expr 3  /*2 

=> 6을 출력.(3*2=6) 곱하기는 /를 반드시 붙여야 한다.


단 제곱근은 **만 사용하면 된다.


● echo $[3**3] 

=> 3의 3제곱근이 27이 출력



<쉘에서 사용되는 특수 문자>


● -'': 모든 문자나 특수문자를 일반 문자로 취급


● "": $,`,\를 제외한 모든 문자들을 일반문자로 취급 !(history)도 인정한다.


● \ : 특수 문자의 기능을 없앤다. 예를 들어서 echo $PATH를 하면 

      환경변수에 지정된 디렉토리를 보여주지만, echo \$PATH라고 하면 

  $의 기능이 사라져 $PATH라고만 출력된다.

● $

=> 쉘의 변수를 나타낼때 상용.


예) name = songsi

     echo name

echo $name

은 다음과 같이 출력된다.

 

name

songsi

 

● `` 

=> 명령어로 인식

echo 'ls'라고 입력하면 

ls명령어가 실행이 된다.



● ${#name}

name의 문자열 길이 


● ${name:offset}

name의 offset 만큼 자르고 출력한다.



● ${name:offset:length}

=> offset만큼 삭제한 후에 length만큼 센뒤 값을 반환한다.


● $#

=> 스크립트에 넘겨진 아규먼트의 갯수 



● $*

=> 아규먼트를 출력. IFS변수의 첫 번째 문자로 구분


● $@

=> 아규먼트를 출력 . IFS변수를 사용하지 않음 



●  $-

=> 현재 shell이 호출될 때 사용하는 옵션들 


● export 

=> 특정 변수의 범위를 환경 데이터의  공간으로 전송하여 자식 프로세스에서도 특정 변수를 

     사용 가능하게 함.

 

● echo -e "hi\nhello"

=> \n을 개행문자로 인식한다.


● echo -e "hi\rhello"

=> hello만 나온다. \r이 carrige return이다. 그러므로 hello문자를 가장 앞에서 출력하게 된다.


그렇다면 echo -e "songsihyuk\raaaaaa"는 어케 될까?

답은 aaaaaahyuk으로 출력 


 

echo ${}



var1=/etc/sysconfig/network-scripts/sysconfig/ifcfg-lo

● echo ${var1#*/}

=> /etc/sysconfig/network-scripts/sysconfig/ifcfg-lo


● echo ${var1##*/}

=> ifcfg-lo


● echo ${var1%sysconfig*} .

=> /etc/sysconfig/network-scripts/


● echo  ${var1%%sysconfig*}

=> /etc/



프로세스 관련


fork

=>  새로운 프로세스를 위해서 메모릴를 할당. 복사본 형태로 프로세스.

      기존의 프로세스 또한 그대로 실행되어 있다.


exec

=> 기존의 프로세스에 덮어쓰는 프로세스 형태. 

     좋은말로 기존의 프로세스에 새로운 프로세스로 대체.

 

리눅스 부팅시 init 프로세스 발생 PID 1번

fork형태로 자식 프로세스를 생성.

pstree  


시그널 

=> 리눅스에서 프로세스끼리 서로 통신할때 사용한다.

인터럽트, 프로세스, 하드웨어 등 다양하게 발생



● SIGHUP

=>  Hangup의 약어, 로그아웃과 터미널에서 접속이 끊겼을 때 보내지는 시그널.

      데몬 환경 파일 설정을 변경하고 재시작시 사용 됨. 


● SINGINT

=> 키보드로부터 외부 인터럽트.


● SIGQUIT

=>키보드로부터 오는 종료 CTRL + \


● SIGKILL

=> 무조건 종료. 프로세스 강제 종료 


● SIGTERM

=> 정상종료 시키는 터미널 . Terminate


● SIGCONT

=> Continue Signal STOP등 다시 정지된 프로세스가 실행될때 사용


● SIGSTOP

=> 터미널에서 입력된 정지 시그널 


● SIGTSTP

=>  CTRL + z , 실행 정지후 다시 실행을 계속하기 위하여 대기시키는 시그널 



< 데몬 관련 설정 >


● /etc/rc.d/init.d

=> 서시비스에 대하여 시작과 중지를 시킬 수 있는 스크립트과 포함되 디렉토리

ex) /etc/rc.d/init.d/httpd => 아파치 웹 데몬 스크립트 


● /etc/rc.d/init.d/httpd  reload => 아파치 웹 데몬을 중지, 환경 설정 파일만 읽어들인다.



● /etc/init.d => 리눅스에서는 /etc/하위 디렉토리가 심볼릭 링크로 설정되어 rc.d 생략 가능 

=> /etc/init.d 



● vi /etc/inittab

=> run level 변경가능 


● ntsysv

=> 현재 구동중인 레벨의 서비스 데몬 설정 


● ntsysv --level 5

=> 실행 레벨 5의 서비스 데몬 설정


● chkconfig 

=> 실행 레벨에 따른 서비스 on/off 설정 리스트출력하거나 설정되어


옵션 


--list 각 실행 레벨에서의 서비스 설정 상태를 보여준다.


-add 서비스 명 


--del 서비스 명 


--level 레벨 서비스 on/off/reset 해당 레벨에서 특정 서비스의 상태를 설정한다.



● chklconfig --list named

=> named 서비스 상태를 본다.


●  chklconfig --level 35 named on

=> 실행 레벨 3,5에 대해서 named 서비스를 on 한다. 


●  system-config-services

=> x윈도를 사용하는 경우에는  GUI기반 유틸리티를 이용하여 설정 가능하다.


리눅스 네트워크 하드웨어


●  lo

=> 로컬 루프백을 나타내는  장치. 가상으로 만들어진 네트워크 인터페이스 장치


●  ethx

=> 이더넷 카드. eth0, eth1


●  pppx

=> 모뎀을 사용해서 네트워크를 사용할 경우에 설정되는 PPP 장치 


●  plipx

=> 패러럴 케이블을 사용하는 패러럴 라인 인터페이스 장치


●  trx

=> 토크링(Token Ring)을 사용할 경우에 설정되는 네트워크 장치 


●  fddix

=> FDDI 인터페이스를 사용할 경우에 설정되는 네트워크 장치 


●  virbr0

=> 서버 가상화를 사용할 경우에 가상 머신의 NAT 설정에 사용되는 네트워크 장치 


●  xenbr0

=> xen 기반 서버 가상화를 사용할 경우에 설정되는 네트워크 장치 


●  docker0

=> 경량화된 서버 가상화 기술인 Docker를 사용할 경우에 설정되는 네트워크 장치 


●  modprobe 

모듈 파일을 커널에 로드시키는 명령어



/etc/modprobe.conf 환경설정 파일 

/etc/init.d/modprobed 데몬파일 



< 리눅스 네트워크 설정하는 방법 >


ifconfig eth0 ip 주소 up


ifconfig eth0 ip 주소 down 


●  ifconfig eth0 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255 up 

=> ip주소는 192.168.0.2, 서브넷 netmask 255.255.255.0, 브로스캐스트는 192.168.0.255 설정하고 활성화 


ifconfig 항목 


Hwaddr : mac address

inet addr : IPv4

Bcast 브로드 캐스트 주소를 나타냄 

BROADCAST 브로드캐스트를 사용한다.

RUNNING 동작중임을 나타낸다.



●  route [add/del] [-destination] [netmask 값] [gw 값] [dev 인터페이스] 



route 의 항목 설명 


Genmask 

=> 목적지 네트워크 주소를 알아내는것. IP와 서브넷 마스크 AND연산


Flags

- U : 인터페이스가 사용되고 있음을 나타냄.

- G : 라우트가 게이트웨이로 사용됨

- H : 오직 단독 호스트만이 라우트를 거쳐서 접근할 수 있다.

- D : ICMP 리다이렌트 메시지로 운영된다.

- M : ICMP 리다이렉트 메시지에 의해 수정되고 있음을 나타낸다.

- Iface : 목적지 네트워크와 연결되 인터페이스를 나타낸다. 


Ref : 다른 라우터가 목적지로 가기 위해 참조한 횟수 

Use : 다른 라우터가 목적지로 가기 위해 사용한 횟수 



p 180페이지 


●  netstat 

=> 네트워크의 상태를 나타내는 명령어 


옵션 

-a 모든 소켓 정보  

-n 호스트나 포트 번호로 지정.

-p 소켓에 대한 PID와 프로그램명 

-r  라우팅 테이블 정보 

-l   listen 상태  

-i   네트워크 인터페이스 

-s  네트워크 프로토콜에 대한 통계 정보  

-c  네트워크 정보를 계속적으로 출력 


●  netstat -anp 

모든 소켓의 PID 및 프로그램명을 출력하고 호스트명, 포트명 등은 숫자값으로 출력 


netstat 상태 


● LISTEN             서버에서 클라이언트로부터 들어오는 패킷을 위해 소켓을 열고 기다리는 상태 


● SYS-SENT        원격 호스트에 연결을 요청한 상태이다.


● SYN_RECEIVED 클라이언트로부터 접속 요구를 받아 클라이언트에게 응답하였지만, 

                            클라이언트로부터 ACK을 받지 않은 상태 

● ESTABLISHED 3way-handshakeing이 완료된 후 서버와 클라이언트가 서로 연결된 상태 


● FIN-WAIT1 소켓이 닫히고 연결이 종료되는 상태


● FIN-WAIT2 연결은 종료된 상태이고, 소켓이 원격 호스트로부터 종료되었다는 정보를 기다리는 상태 


● CLOSE-WAIT 원격 호스트는 종료된 상태이고 소켓을 종료하기 위해 기다리는 상태 


● CLOSING   확인 메시지가 전송 도중 분실된 상태 


● TIME-WAIT 패킷 처리는 끝났지만 분실되었을지 모를 느린 세그먼트 위해 당분간 소켓을 열어놓고 대기 상태 


● CLOSED    소켓 연결이 종료 된 상태 


● AST_ACK  원격 호스트가 종료되고 소켓도 닫힌 상태에서 마지막 ACK 패킷을 기다르는 상태


● UNKNOWN 미확인 상태 


● ping 옵션 


● -c 

   



● usermod 

=> 유저의 정보를 변경, 사용자 쉘, gid,  uid, 그룹 소속 등 전반적인 정보 변경 


옵션 


-d   사용자의 홈디렉토리 변경 

-m  사용자의 홈디렉토리 변경시 기존에 사용하던 파일 및 디렉토리를 옮긴다. -d와 함께 사용 

-g   사용자의 그룹을 변경 

-s   사용자의 쉘을 변경 

-u   사용자의  uid값을 변경 

-e   계정 만기일을 변경 YYYY-MM-DD MM/DD/YY

-f    패스워드 만기일이 지난 후에 패스워드에 lock을 설정할 유예기간을 지정한다.

-c   사용자의 간단한 정보를 입력하거나 변경한다. 

-G   추가로 다른 그룹에 속하게 할 때 사용 

-a    -G옵션과 같이 사용하는 옵션으로 기존의 2차 그룹 이외에 추가로 2차 그룹 지정가능 --append 

-p    /etc/shadow의 2번째 필든인 암호화된 패스워드 값을 변경할 때 쓴다. 사용시 암호화된 값을 사용해야함 

-l     사용자아이디를 변경한다.(-login)

-L    사용자의 패스워드에 LOCK을 걸어 로그인을 막는다. (--lock )

-U   사용자의 패스워드에 걸린 ock을 푼다. (--unlock )


● usermod -d /home2/songsi -m /home/songsi

=> 홈 디렉토리를 /home2/songsi로 변경하면서 기존의 홈디렉토리인  /home/songsi내용을 가져온다.

     /home2가 미리 생성되어 있어야 한다.


● usermod -g terran drone 

=> 그룹을 terran으로 변경 


● usermod -s /bin/false songsi

=> songsi에 대한 쉘을 변경하나, 존재하는 쉘이 아니므로 일시적으로 제한할때 사용됨 

     진짜 바꾸고 싶으면 /bin/bash와 같은 존재하는 쉘을 사용 

 

● usermod -e 2018-01-01 songsi 

=> 계정 만기일을 지정 


● usermod -l songsi11 songsi

=> songsi를 songi11로 아이디를 변경 

※ 주의점은 아이디를 변경시 홈디렉토리도 변경해야 한다. -m -d도 같이 사용한다. 


● userdel

=> 사용자 계정 삭제 


옵션 

-r 사용자의 홈디렉토리 및 메일 관련 파일까지 전부 삭제 (--remove )


● passwd 


-S  사용자에 대한 패스워드 정보를 알 수 있다.

-l   사용자의 패스워드에 잠금(lock)을 걸어 로그인을 막는다.(--lock)

-u  사용자에게 설정되어 있는 패스워드 잠금을 푼다.(--unlock)

-d  사용자의 패스워드를 제거한다. 패스워드 없이 로그인이 가능하다.  

-n  패스워드 변경까지의 최소 날짜를 설정한다. 

-x  패스워드 최대 사용 가능한 일수 

-w  패스워드 만료 전 경고 날짜를 지정한다. 

-i   패스워드 만료된 뒤에 사용자 계정 사용이 실제 로그인이 불가능하게 되기까지의 유예기간을 설정 

-e  다음 로그인 시에 반드시 패스워드를 변경하도록 할 때 사용한다. 


● chage 

=> 사용자 패스워드에 대한 정보를 출력하고 설정 


옵션 


-l    사용자의 패스워드에 대한 정보를 보연준다. (--list(

-d   최근 패스워드를 바꾼날 1970.1.1부터 계산한 날짜 수를 수정한다. 

-m  패스워드 변경까지의 최소 날짜를 설정한다. 

-M  패스워드 최대 날짜를 지정한다. 

-I    (대문자 i)  패스워드를  변경없이 사용할 수 있는 최대 날짜 

-E   계정이 만기되는 날 

-W  패스워드 만료 전 변경을 요구하는 경고 날짜를 지정한다. 



● chage -m 10 -M 100 -W 5 -I 3 songsi

=>패스워드 변경후 최소사용일수 10일 

    패스워드 변경 후 최대사용일수 100일 

경고일수 5일 

    패스워드 만기일이 지나고 3일이 지나도 변경되지 않으면 로그인이 차단된다.

● chage -E 2018-01-01 

=> 계정 만기일 지정 


● chage -d 15197 

=> 1970.1.1로계산한 값을 2013년 7월 31일로 수정 


/etc/group 

항목 


GrouupName 그룹 이름. groupadd 명령어로 생성한 그룹명이다. 

Password      그룹 패스워드를 나태내는 부분. 대부분 /etc/shadow에서 관리 

GID                그룹에 부여한 숫자값

Member_List  해당 그룹에 속한 사용자의 아이디가 기록된다. 

                     주 그룹이 아닌 2차 구룹 멤버들이 기록된다. 


 

● /etc/gshadow


GrouupName  

Password      그룹 패스워드. SHA-512 알고리즘을 사용해서 $6으로 시작하는 패스워드가 기록 

                     newgrp명령어를 이요해서 해당 그룹으로 변경할 수 있게 된다.

Admin            그룹관리자가 기록되는 영역. 사용자는 지정되지 않아도 된다.

Member_List  2차 그룹의 멤버를 나타낸다. 여기에 등록된 사용자는 newgrp 명령으로 주그룹 변경시 

                    패스워드 묻지 않음 


● groupadd  (root만 생성가능함 )

=> 그룹 생성하는 명령어 


옵션 

-g 레드헷은 0~499까지는 예약되어 있음.(mail, bin,root )

-r  생성하는 그룹을 시스템 레벨로 생성할때 사용 


● groupmod 

-n 그룹의 이름을 변경한다.(--new-name)

-g 그룹의 GID를 변경한다.(--gid)

-o -g 옵션과 함께 사용하면 그룹 GID를 unipue가 아닌 값으로 변경할 수 있습니다

-p  패스워드를 지정. 그러나 여기서 설정하면 패스워드가 보여서 추천하지 않음  



● groupdel

=> 그룹을 삭제 


● gpasswd 

=> 그룹의 패스워드를 설정하거나 그룹관리자를 지정하는 명령어 


옵션 


-A 루트가 그룹 관리자를 지정할때  사용 

-a  그룹 관리자가 그룹에 사용자 추가시 사용

-d  그룹 관리자가  그룹에서 사용자를 제외시킬 때 사용한다. 

-r   그룹 패스워드 제거 , 기존에 속해있던 그룹 사용자만 newgrp명령어 사용 가능 

-R  그룹 패스워드 비활성화 

-M  root가 그룹 멤버를 지정할 때 사용 


● gpasswd -A songsi test 

=> test그룹의 관리자로 songsi로 지정 


● gpasswd -a songsi test 

=> songsi를 test그룹에 포함시킨다. 


● gpasswd -d songsi test 

=> songsi를 test그룹에서 제외 


● newgrp 

=> 사용자가 일시적으로 1차 그룹을 변경할 때 사용.

     그룹 패스워드가 지정되어 있으면, 다른 소속 사용자는 패스워드를 입력해야함 


● users 

=> 시스템에 로그인 되어있는 사용자의 아이디를 출력  


● who

=> 시스템에 로그인되어 있는 사용자를 출력해주는 명령어 


옵션 


-b  시스템 부팅 시간      (--boot)

-d  죽은 프로세스 출력 (--dead)

-H  출력되는 헤더의 정보를 표시 (--heading)

-l    시스템 로그인 프로세스를 출력한다.(--login)

-p   init 프로세스에 의해 발생되어 활성화된 프로세스 출력 (--process)

-r   현재 런레벨 출력(--runlevel) 

-t   마지막으로 시스템 시간이 변경된 정보를 출력(--time)

-T  사용자의 메시지 상태를 출력한다.(-w, --mesg)

-u  시스템의 로그인한 사용자의 목록

-m 표준입력과 연관된 호스트명과 사용자명을 출력한다. (who am i와 동일 )

-a  위의 모든 옵션 (--all)



● w

=> 시스템에 로그인되어 있는 사용자와 사용자가 수행중인 작업을 출력해 주는 명령


옵션 

-h 

-s LOGIN@, JCPU, PCPU를 제외하고 간단히 출력


항목 


USER     시스템에 로그인한 사용자의 아이디를 나타냄 

TTY       터미널 타입 콘솔 ttyn, X-window  터미널  pts/n

FROM    접속한 위치. 콘솔 -, X-window ':0' , X-window  터미널 '0:0, 외부에서 접속한 경우 호스트 명이나 IP

LOGIN@ 시스템에 로그인한 시간 

IDLE      최종 명령 수행 후 대기 시간  

JCPU     JOB CPU 시간을 뜻하고, 시스템에 로그인한 후에 CPU를 사용하는 시간 

PCPU      process CPU 시간을 뜻함, WHAT 컬럼에 표시된 작업에 의해 사용된 프로세스 시간 

WHAT    현재 사용중인 쉘이나 작업 등이 표시 


● logname 

=> 사용자의 로그인 계졍을 출력해 준다.


● id 

=> UID,GID , 속한 그룹 정보를 보여준다.


옵션 

-g 주 그룹(Primary Group 또는 effective Group)의 GID만 출력한다. 

-G 사용자가 속한 모든 GID를 출력 

-u 사용자의 uid 값만 출력된다. 

-n -u나 -g 옵션과 같이 사용되며, 숫자값인 UID나 GID 대신에 이름으로 출력한다. 


● id -Gn songsi 

songsi가 속한 모든 그룹의 이름을 출력한다. 


● lslogins 

=> 시스템 전체 사용자의 정보를 출력해주는 것 로그파일(wtmp, btmp)에서도 관련 정보를 가져와서 출력 


옵션 

-G 각 사용자의 그룹 정보를 출력한다.

-L  각 사용자의 마지막 로그인 정보를 출력한다. 

-u  사용자 계정 정보를 출력하는 옵션. 시스템 계정 제외하고  실제 로그인 되는 계정 위주로 출력 



● arp 옵션 


-a ARP캐시에서 기록된 정보 중에 특정 호스트에 대한 정보를 출력한다.


-d ARP 캐시에서 해당 호스트 정보를 제거한다.


-n 출력정보를 도메인 주소에서 IP 주소로 출력한다.


-v 자세한 정보를 출력 


● traceroute hostname | IP_Address

=> 패킷이 호스트까지 라우팅되는 과정을 출력하는 명령어, 라우팅 과정에서 장애 파악시 사용 


● traceroute www.naver.com

=>www.naver.com까지 라우팅되는 과정을 출력한다.


●  nslookup

=> dns를 이용하여 도메인이나 IP를 조회하는 명령.


-type=서버타입 


● nslookup -type=mx.naver.com

 => 네이버 메일 서버 설정에 대한 정보를 출력 

 

※ server DNS_IP_Address => DNS 서버를 변경 


● dig 

=> FQDN(Full Qualified Domain Name)으로 정보를 조회하는 명령어 

 

 옵션 

 -t 질의 타입 지정. 기본값은 IP를 조회하는 A

타입에는 MX, ns(네임 서버) 등이 있다.


● hostname [option] [도메인 명 ]


hostname ihd.ro.kr

=> ihd.or.kr의 ip 주소 정보를 출력 



● hostname [option] [hostname]

=> 시스템에 설정된 호스트네임을 출력, 설정하는 명령어  


● hostname -f 

=> 호스트에 설정된 FQDN을 출력한다.


옵션

-v 자세한 호스트명 정보를 출력 

-d 도메인명만 출력 

-f  완전한 호스트명(FQDN)을 출력 

-a 호스트명에 대한 alias 

-i  호스명에 설정된 IP주소를 출력 



● mii-tool 

=> 보통 네트워크에 상태를 점검하고 설정하는 유틸리티 


옵션 

-r  네트워크 인터페이스 자동 인식을 위해 재시작한다.(--restart)

-F 강제로 설정한다(--force)

-v 관련 정보를 자세하게 출력한다 (--verbose)


● ethtool

=> 이더넷 카드 설정 정보를 출력하거나 변경하는 명령어 


옵션 

-s 이더넷 카드의 설정을 변경할 때 사용한다.(--change)


● ip addr show 

=> ip 주소 정보를 출력 


● ip addrr del 192.168.0.1

=> 192.168.0.1을 삭제


●  ip link set eth1 up /down

네트워크 인터페이스 활성화/비활성화


●  ip route show (ip route list와 동일 )

=> 라우팅 테이블 정보를 출력 


●  ip route del default via 192.168.5.1

=> 게이트웨이 주소 값을 삭제


●  ip route add 10.10.12.0/24 via 192.168.5.1 dev eth0

=> 정적 라우팅 정보를 설정한다.


●  ip route del 10.10.12.0/24 via 192.168.5.1 dev eth0

=> 정적 라우팅 정보를 삭제한다.


●  ss 

=> 소켓 상태를 출력하는 명령어 netstat과 유사. 소켓의 정보를 보다 자세히 제공 


-a 소켓의 모든 정보를 출력한다.

-n 서비스명으로 리졸빙하지 않고 숫자값으로 출력한다.(--numberic)

-r  숫자값 형태의 주소나 포트 정보를 서비스명으로 리졸빙해서 출력 (--resolv)

-l  서비스 연결을 위해 대기 중인 소켓 정보를 출력(--listening)

-o 시간(time) 관련 정보를 출력(--options) 

-e 소켓 정보를 확장해서 자세히 출력 (--extended)

-i  시스템 내부 정보를 출력 (--info)

-4 ipv4 관련 정보만 출력 (--ipv4)

-6 ipv6 관련 정보만 출력 (--ipv6)

-0 packet 소켓 정보를 출력 (--packet)

-t  tcp 관련 소켓 정보만 출력(--tcp)

-u  udp 관련 소켓 정보만 출력 (--udp)

-x 유닉스 도메인 소켓 정보만 출력 (--unixt)

-f  소켓의 특정 타입을 지정해서 출력한다. 패밀리명에는 unit, inet,inet6, link, netlink가 존재 (--famliy=패밀리명)


●  telnet  -l songsi 192.168.5.1

=> 192.168.5.1 서버로 접속시 songsi 계정으로 접근. 이경우 패스워드만 입력하면 로그인 가능 


<ftp 내부 명령어 > 


?,help


ls    : 디렉터리 리스트를 출력한다. 


put  : 로컬시스템에 있는 파일을 동시에 보낼때 사용한다. 


get  : 로컬시스템에서 파일을 가져올때 사용한다. 


size : 원격의 서버에 있는 파일의 크기를 출력한다. 


status : FTP서버의 상태를 출력한다. 


mput     : 로컬시스템에 있는 여러 개의 파일을 동시에 보낼때 사용한다. 

mget     : 로컬시스템에서 여러 개의 파일을 가져올때 사용한다. 

rename : FTP서버에 있는 파일이름을 변경할때 사용한다.

delete   : FTP서버에 있는 파일을 삭제시 사용 

mdelete : FTP서버에 있는 여러 파일을 동시에 삭제시 사용 

close    : 현재 연결된 접속을 끊을 때 사용. 


lcd       : 로컬시스템의 디렉터리를 변경할 때 사용한다. 


hash    : 파일 전송 및 다운로드할 때 진행 상태를 '#'로 나타낸다. 


bi         : 파일전송모드를 바이너리(binary)모드로 전환한다.


pqssive : FTP 수동모드로 on.off할때 사용한다.


● /etc/sysconfig/network

=> 네트워크 사용유무, 호스트명을 지정한다. 



● /etc/sysconfig/network-scripts

=> 네트워크 인터페이스 환경 설정과 관련된 파일 저장되는곳. 주로 IP DHCP나 static IP, 서브넷 마스크 

     GW, MAC address등을 설정을 한다. 


● /etc/resolv.conf

=> 시스템에서 사용되는 네임 서버(DNS)를 설정하는 파일  

    


● useradd 

=> 계정생성 명령어 


● adduser 

=> root권한자가 root이외의 사용자를 생성할때 사용하는 명령어 


●  useradd 옵션 


-p 사용자의 암호를 추가시에 지정 

-d 홈디렉토리 지정 (최종 디렉토리만 생성. 중간 디렉토리는 미리 생성해 놓는다.)

-g 그룹을 지정 (지정할 그룹이 미리 생성되어 있어야함) 

-G 기본그불 이외에 추가로 그룹에 속하게 할 경우 사용(--group)

-c 사용자 생성시 사용자에 대한 설명 

-s 상용자 생성 시 사용자가 사용할 쉘을 지정 

-m 사용자 생성시 홈 디렉터릴를 생성해준다. -k옵션과 같이 사용. 사용자 생성시 기본적으로 

     부여되는 목록이 들어있는 skeldir을 지정할 때 사용 

-k 사용자 생성 시에 제공되는 환경 파일들은 /ect/skel로 지정되는데, 이외의 디렉터리를 지정할때 사용. 

-f  사용자의 패스워드가 만기일을 날짜수로 지정한다.

-e 계정의 만기일을 YYYY-MM-DD 형식으로 지정 

-u 사용자 추가 시에 UID값을 지정한다.


passwd 

=> 사용자 암호화 부여 


passwd songsi

=> songsi라는 유저의 암호를 변경 


su root -c "tail /etc/shadow"

=> 사용자를 전환하지 않고 일회적으로 명령을 내릴 때 -c 옵션을 사용 


※ su -songsi 

=> songsi 사용자로 전환하며, root에서 다른 사용자로 전환시는 패스워드 물어 보지 않는다. 


pwconv

=> 패스워드를 /etc/shadow에서 관리 


pwunconv

=> 패스워드를 /etc/passwd에서 관리 


※ /etc/shadow에서 관리하는 것을 권장 


pwck 

=> 패스워드 체크 명령어 /etc/shadow, /etc/passwd 에 설정된 내용을 체크


/etc/default/useradd

=> 별도의 옵션 없이 useradd '사용자'명으로 생성시 기본적으로 적용되는 설정이 들어있는 파일이다. 

useradd -D 명령으로 확인 가능. 


항목 설명 

GROUP=100  사용자 생성 시에 기본적으로 속하게 되는 그룹을 지정한 부분으로 GID가 100인 users라는 그룹에 속하게 된다.

HOME=/home 홈 디렉터리 위치로 사용자를 생성하면 /home/사용자명 이된다.

INACTIVE=-1

=> 패스워드 사용 기한이 지난 뒤 실제로 계졍의 로그인을 막는 유예기간 

    -1은 미지정,

0은 유예기간 없음

나머지는 설정한  일 수에 따라 유예기간 설정됨. 

3이라고 입력시 패스워드 유효기간이 지난 후 3일 이내에서 로그인이 가능 

EXPIRE 계정 유효기간 지정하는 부분 2018-01-01같은 날짜 형식으로 지정 

SHELL=/bin/bash 사용자 생성 시에 할당되는 쉘을 의미한다.(여기서는 bash쉘로 지정되어있다)

SKEL=/etc/skel    사용자 생성 시에 제공되는 파일 및 디렉터리가 들어 있는 디렉터리를 의미한다. 

CREATE_MAIL_SPOOL=yes 사용자 생성시 mail 파일을 생성한 것인지를 지정, yes라고 하면 /var/spool/mail/사용자명으로 메일 

관련 파일이 생성 


useradd를 이용한 /etc/default/useradd 파일 관리 


옵션 


-D /etc/default/useradd의 내용를 출력 

-g 기본그룹 지정. 여기서 지정하는 값은 /etc/group내에 존재해야 한다. 레드헷 계열 리눅스는 변경된 값을 반영하지만, 실제로 추가되지 않는다.

-b 사용자 홈 디렉토리에 상위 디렉토리를 지정한다.

-f  패스워드 유효기간이 만료되 ㄴ후에 언제 이 계정을 사용할 수 없도록 할 것인지를 하루단위로 설정한다.

-e 사용자의 계정이 만료일을 지정하는 옵션이다.

-s 사용자의 기본 쉘을 지정하는 오션이다. 


/etc.login.defs 

=> 메일 디렉토리, 패스워드 관련 설정(최대 사용기한, 최소 사용기한, 최소길이, 만기 이전 경고 주는 날짜)

    UID,GID 최소, 최대값, 홈 디렉토리 생성 여부, 기본 umask, 패스워드 알고리즘 등의 정의 됨.

주요 항목 


MAIL_DIR /var/spool/mail

=>  사용장의 메일 디렉터리를 지정한다.


PASS_MAX_DAYS 99999

=> 패스워드 최대 사용 기간 지정 


PASS_MIN_DAYS 5

=> 패스워드 변경 후에 사용하는 최소기간 지정 


PASS_MIN_LEN 5

=> 패스워드 최소 길이를 지정 


PASS_WARN_AGE 7

=> 패스워드 만기일 도래 전에 경고를 보여주는 날짜를 지정한다. 


UID_MIN 500

=> uid의 최소값 지정 


UID_MAX 6000

=> uid의 최대값 지정 


GID_MIN 500

=> gid의 최소값 지정 


GID_MAX 6000

=> gid의 최대값 지정 


CREATE_HOME yes 

=> 사용자 추가 시에 홈 디렉터리 생성 여부를 지정한다. -m옵션을 사용하여 홈 디렉터리를 생성하여야 한다. 


UMASK 077

=> umask값을 설정 077이면 사용자는 022가 된다. 

     /etc/profile에 사용장의 umask값을 002로 지정하여 사용한다. 


USERGROUPS_ENAB

=> 사용자를 제거하면 해당 그룹도 같이 제거하는 옵션 


ENCRYPT_METHOD SHA512

=> 사용자 패스워드에 사용할 암호화 알고리즘을 지정하는 설정. 



posted by 송시혁
prev 1 2 next