반응형

named파일 수정

 패키지명 : bind
 데 몬 명 : named

 설정파일
  - 메인 설정파일 : /etc/named.conf
  - 추가 설정파일 : /var/named/???.zone
                                                ???.cache

 

/etc/named.conf 파일 vi로 수정

 

options { 
   listen-on port 53 { Server_IPv4; };            //   -> 기본값은 127.0.0.1 IPv4 Loopback 나에게만 귀기울이고 있겠다.
   listen-on v6 port 53 { Server_IPv6; }; ::1; //   -> 0000:0000:0000:0000:0000:0000:0000:0001 IPv6 Loopback
   recursion yse;                                          // 재귀적 질의
   allow-query { Client_IP; Client_Network; };              // 자신의 도메인에 응답
Authoritative Answer
   allow-query-cache { Client_IP; Client_Network; };   // 타 도메인에 응답
Non-Authoritative answer
};
 localhost = 127.0.0.1    // (나 자신, 서버 자신)

 ZONE "도메인" IN {
             type master/slave/hint;
              file ".....zone/....cache";
 };

 ZONE "." IN {
                type hint;
                file "root.cache"; <- /var/named/root
 };

 

[root@ns1 ~]# nslookup www.nate.com 168.126.63.1
Server:         168.126.63.1
Address:        168.126.63.1#53

Non-authoritative answer:
Name:   www.nate.com
Address: 120.50.131.112

[root@ns1 ~]#

[root@ns1 ~]# nslookup www.nate.com 223.62.230.13
Server:         223.62.230.13
Address:        223.62.230.13#53

Name:   www.nate.com
Address: 120.50.131.112

[root@ns1 ~]#

 

vi /etc/named.conf로 수정

 options {
              directory       "/var/named";
              dump-file       "/var/named/data/cache_dump.db";
              statistics-file "/var/named/data/named_stats.txt";
              memstatistics-file "/var/named/data/named_mem_stats.txt";
              recursing-file  "/var/named/data/named.recursing";
              secroots-file   "/var/named/data/named.secroots";
      
               listen-on port 53      { 수신대기할_서버_IPv4; };
               listen-on-v6 port 53 { 수신대기할_서버_IPv4; };
               recursion yes;         # 재귀질의 허용여부
               allow-query            { 운영중인_도메인질의_허용_IP; }; # Authoratative Answer
               allow-query-cache { 캐쉬DB_도메인질의_허용_IP; };  # Non-Authoratative Answer
       };
      
       ZONE "." IN {                                                    # zone "도메인" IN {
                      type hint;                                           # type master/slave/hint;
                      file "root.cache";                               # file "파일명.zone/cache";  /var/named/
      };                                                                      # };

named.conf 수정 전
named.conf 수정 후

 

[root@ns1 ~]# named-checkconf /etc/named.conf
-> named.conf 파일의 문법 검사 해주는 명령어 (수정한뒤에 검사해준다.)

아무 문제 없다면 아무것도 나오지 않고 넘어 간다.

[root@ns1 ~]# cd /var/named/
[root@ns1 named]# ls
chroot  data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves
[root@ns1 named]# mv named.ca root.cache
[root@ns1 named]# ls
chroot  data  dynamic  named.empty  named.localhost  named.loopback  root.cache  slaves
[root@ns1 named]#

root.cache 생성

named.ca -> root.cache로 이름 변경

 

C:\Users\st01>nslookup www.naver.com 192.168.0.21
DNS request timed out.
    timeout was 2 seconds.
서버:    UnKnown
Address:  192.168.0.21

DNS request timed out.
    timeout was 2 seconds.
DNS request timed out.
    timeout was 2 seconds.
DNS request timed out.
    timeout was 2 seconds.
DNS request timed out.
    timeout was 2 seconds.
*** UnKnown에 대한 요청이 제한 시간을 초과했습니다.

C:\Users\st01>
-> 7계층 문제
[root@ns1 named]# firewall-cmd --add-port=53/udp --permanent (상시열기)
[root@ns1 named]# firewall-cmd --add-port=53/udp

서비스 구동 및 방화벽을 열어준다.
firewall-cmd --info-zone=public 명령어로 적용 사항을 확인 할 수 있다.

vi /etc/named.conf

      9         listen-on port 53 { 127.0.0.1 192.168.0.21; }; <- Linux IP주소
     10         listen-on-v6 port 53 { ::1; };
     11         recursion yes;
     12         allow-query       { localhost; };
     13         allow-query-cache { localhost 192.168.0.20; }; <- WIN10 IP주소

 

C:\Users\st01>nslookup www.naver.com 192.168.0.21
서버:    UnKnown
Address:  192.168.0.21

권한 없는 응답:
이름:    www.naver.com.nheos.com
Addresses:  223.130.195.200
          223.130.195.95
Aliases:  www.naver.com
-> Linux IP주소로 질의 한 것을 확인 할 수 있다.

 

dns주소 를 루프백으로 바꿔줄수 있다.

nmcli con mod ens33 ipv4.dns 127.0.0.1
[root@ns1 named]# cat /etc/resolv.conf
# Generated by NetworkManager
search kck.co.ki
nameserver 168.126.63.1
nameserver 168.126.63.2
[root@ns1 named]# nmcli con up ens33
연결이 성공적으로 활성화되었습니다 (D-Bus 활성 경로: /org/freedesktop/NetworkManager/ActiveConnection/4)
[root@ns1 named]# cat /etc/resolv.conf
# Generated by NetworkManager
search kck.co.ki
nameserver 127.0.0.1


INTERNIC : root 도메인 사이트로 최신의 root도메인 정보를 받을 수 있다.

/var/named/ 위치로 이동 한 뒤에 wget ftp://ftp.internic.net/domain/named.cache 명령어로 다운받는다.

 

 

CentOS7 1st
[root@ns1 named]# vi /etc/named.conf
[root@ns1 named]# named-checkconf

zone "kck.co.ki" IN { -> 내가 사용할 도메인명
        type master;  -> 첫번째 ns1 두번째는 slave
        file "kck.co.ki.zone"; 
};

[root@ns1 named]# touch kck.co.ki.zone
[root@ns1 named]#

-> zone 파일을 만들어 /etc/named.conf 파일에 해당 내용을 추가해준다.

 

DNS Record (질문의 종류)        www.naver.com.                  IN             A
                                                   www.naver.com.                  IN             A
                                                           naver.com.                  IN             NS
                                                           naver.com.                  IN             SOA
                                                              kck.co.ki.                  IN             SOA

A : IPv4 Address(정방향: 호스트명 -> IPv4 주소)
  질의형식-> nslookup -type=a www.google.com
AAAA : IPv6 Address(정방향: 호스트명 -> IPv6 주소)
  질의형식-> nslookup -type=aaaa www.google.com
SOA : Start Of Authority(권한의 시작), Master 네임서버/관리자 E-Mail
  질의형식-> nslookup -type=soa google.com(도메인명)
NS : NameServer (네임서버, Master/Slave의 구분은 없음)
  질의형식-> nslookup -type=ns google.com(도메인명)
MX : MaileXchanger (메일 교환기, 수긴메일 서버)
  질의형식-> nslookup -type=mx google.com(도메인명)
PTR : Pointer(역방향: IP 주소 -> 도메인네임)
  질의형식-> nslookup -type=ptr 1.163.126.168.in-addr.arpa 
      (168.126.63.1 역방향(호스트명))
CNAME : Canonnical NAME (별칭/별명)
  질의형식-> nslookup -type=cname www.google.com(호스트명)

 

이러한 질의형식을 넣을 수 있고 named.conf파일과 마찬가지로 zone 파일도

명령어로 가능하다.

 

 1. named-checkconf : named.conf 파일을 문법 검사
예) named-checkconf : /etc/named.conf 파일의 문법 검사
    named-checkconf 경로/named.conf : 다른위치 named.conf 파일의 문법 검사

 2. named-checkzone : /var/named 디렉토리에 있는 도메인.zone 파일의 문법 검사
형식) named-checkzone 도메인명 경로/도메인명.zone

예) named-checkzone kck.co.ki /var/named/kck.co.ki.zone

 

/etc/named.conf에 zone파일의 위치와 내용을 추가해준다.


zone "kck.co.ki" IN {
type master;              // 1번째 네임서버
file "kck.co.ki.zone";
};

 

/var/named/도메인명.zone 파일을 만드는 형식들
$ORIGIN             초기값          <- @와 동일하게 해석, 모든 호스트명에 추가되는 이름
$TTL                   Cache타임   <- Cache에 저장할 시간(Positive, 긍정)       ※TTL(Time To Live) 살아있는 횟수 (루프방지)
                                도메인명.        IN          SOA          Master네임서버.            관리자E-Mail      (
                                                                                       YYYYMMDDnn             ; Serial Number (최종 갱신 날짜/시간/횟수)
                                                                                                 갱신주기             ; Refresh
                                                                                              재시도주기            ; Retry
                                                                                                     만료일            ; Expire
                                                                                                  기본TTL       )    ; Default TTL (Cache에 저장할 시간/                                                                                                                                          Negative, 부정) 없는정보 저장값

 

1. FQDN (Fully Qualified Domain Name) 형식
   $ORIGIN kck.co.ki.
   $TTL    1D
                                                kck.co.ki.       IN        SOA                ns1.kck.co.ki.             root.kck.co.ki.  (
                                                                                                          2022122700             ; Serial Number
                                                                                                                         3H              ; Refresh (갱신주기)
                                                                                                                      15M               ; Retry   (재시도)
                                                                                                                       1W                ; Expire  (만료일)
                                                                                                                       1D     )           ; TTL 

   kck.co.ki.           IN      NS   ns1.kck.co.ki.
   ns1.kck.co.ki.    IN      A      192.168.0.21
   www.kck.co.ki.   IN     A      192.168.0.22

 

2. 생략 : ORIGIN으로 지정된 도메인은 아래에 @으로 대체해서 사용할 수 있다.
 $ORIGIN kck.co.ki.  사용하면, kck.co.ki. => @
 . 으로 마무리되지 않은 모든 도메인네임은 자동으로 @(ORIGIN)이 따라 붙는다.
 www.kck.co.ki.                              -해석->                      www.kck.co.ki.
 www                                             -해석->                      www.kck.co.ki.
                                                                                               <-ORIGIN->
 www.kck.co.ki                              -해석->                      www.kck.co.ki.kck.co.ki.
                                                                                                              <-ORIGIN->
 $ORIGIN을 지정하지 않을 경우, /etc/named.conf 파일에
 설정된 zone "도메인명" IN { 에 사용된 도메인명이
 자동으로 설정된다.

   $ORIGIN kck.co.ki.
   $TTL    1D
   @           IN      SOA                    ns1                              root  (
                                                       2022122800              ; Serial Number
                                                       3H                              ; Refresh (갱신주기)
                                                       15M                            ; Retry   (재시도)
                                                        1W                             ; Expire  (만료일)
                                                        1D             )               ; TTL 

   @ <- 생략가능             IN       NS                   ns1
   ns1                              IN         A                    192.168.0.21
   www                            IN         A                    192.168.0.22
   www <-생략가능         IN         A                    192.168.0.23

 

@와 www는 위에 정보를 따라가서 생략 가능하다.

3. 생략 : 실수로 .을 생략해도 .만 추가한다.  
         $ORIGIN 도메인명은 zone파일안에서 여러번 재정의가 가능하다.   

   $ORIGIN .
   $TTL    1D
   kck.co.ki            IN         SOA                     ns1.kck.co.ki                     root.kck.co.ki           (
                                                                      2022122700             ; Serial Number
                                                                                     3H              ; Refresh (갱신주기)
                                                                                   15M              ; Retry   (재시도)
                                                                                    1W               ; Expire  (만료일)
                                                                                     1D     )        ; TTL 

   kck.co.ki                   IN  NS       ns1.kck.co.ki
   ns1.kck.co.ki            IN  A          192.168.0.21
   www.kck.co.ki          IN  A          192.168.0.22

ORIGIN.으로 정의 했을 경우
ORIGIN. 으로 사용 했을때도 윈도우에서 정상 작동하는 것을 확인 할 수 있다.

 

$ORIGIN. 을 추가로 정의 할 수 있다.

 

 

/etc/named.conf 파일에서 recursion을 no로 바꾸면 재귀적 질의를 하지 않는다는 뜻으로

질의를 하지 않아 응답이 돌아오지 못한다.

 

하지만 리눅스 서버의 IP주소는 질의를 받고 응답한다.
query는 루프백으로 query cache는 localhost로 변경 하였을때
리눅스 서버에서는 자신의 IP임으로 질의와 응답을 해주지만
윈도우에서는 응답을 해주지 않는다.
하지만 query cache를 루프백으로 변경시 서버 자신의 IP로도 응답을 해주지 않고 루프백주소로만 응답을 해준다.

 

웹페이지는 모두에게 잘 알려지길 바라기 때문에 자신의 도메인에 응답인 query를 any로 하고 타 도메인에 응답인 query-cache는 루프백과 자신과 같은 네트워크 PC에게만 응답하도록 변경한다.

 

반응형
반응형

 L7 service L4 Port
 ftp tcp 21
 ssh tcp 22
 telnet tcp 23
 smtp tcp 25
 dns tcp/udp 53
 dhcp udp 67/78
 tftp udp 69
 http tcp 80
 pop3 tcp 110
 imap tcp 143
 smnp udp 161/162
 https tcp 443
 mysql,maridb tcp 3306
 rdp tcp 3389

Client Server

Edge, Sapari, Chrome httpd(Apache)

telnet in.telnetd(telnet-server)
ssh sshd

--------------------------------------------------------------------------
Redhat, CentOS Debian, Ubuntu
rpm 파일 dpkg 파일

yum 패키지 apt-get 패키지
dnf 패키지 apt 패키지

서버 (서비스 제공)
Windows 서비스(Service)
Linux/Unix 데몬(Daemon)
- StandAlone  데몬 : ftp, http, dns, ...
- SuperDaemon 데몬 : telnet

CentOS ~6
 init - xinetd - in.telnetd <- SuperDaemon
      - sshd     <- StandAlone

 # systemctl start xinetd.service (StandAlone)


CentOS 7 ~ systemd = init + xinetd
 systemd - sshd <- StandAlone
   - in.telnetd <- SuperDaemon

 # systemctl start telnet.socket  (SuperDaemon)


Linux Server
L7 in.telnetd 1010101010101010
L4 tcp, 23   <- FireWall
L3 192.168.0.21 1, ICMP  6, TCP  17, UDP  tp,  dns
L2 02:01
L1 00000010:00000001
SecIP DstIP
L2 Ethernet (DA MAC, SA MAC (IP, 0.20.0.21 (TCP, 23[telnet])))
     010101011101110101010010100100010000101010101100101010...

------> IP ------> TCP -----> Telnet
xx    !! !!

firewall-cmd 포트개방
     --add-service=telnet
     --add-port=23/tcp
--------------------------------------------------------------------------

L3  ip.addr == x.x.x.x 출발지 또는 목적지 구분없이 특정IP주소를 조회
    ip.src  == x.x.x.x 출발지 IP주소만 조회
    ip.dst  == x.x.x.x 목적지 IP주소만 조회

L4  tcp.port == xx 출발지 또는 목적지 구분없이 특정 Port를 조회
    tcp.srcport == xx 출발지 Port번호만 조회
    tcp.dstport == xx 목적지 Port번호만 조회

L7  telnet telnet 서비스 트래픽
    http http 서비스 트래픽

    조건1 && 조건2  조건1과 조건2를 모두(all) 만족
    조건1 || 조건2 조건1 또는 조건2 중 1개(or) 만족

    tcp 3way handshaking
   
    Client -1way, tcp(syn)-> Server (tcp, 23 syn)
       <-2way, tcp(syn,ack)- Server  (tcp, 23 syn, ack)
    Client -3Way, tcp(ack)-> Server  (tcp, 23 ack)
---ESTABLISHED---

    Client (tcp (http))->
(tcp (telnet))->


L1 bit
1 / 0
           === 같은 네트워크
L2 Frame
(DA, SA(..))



L3 Packet

(IP, SA, DA(..))   === 서로 다른 네트워크


port 0 ~ 65535 (16bit) 0 ~ 1023 (잘 알려진(특권 포트), well-known))



Telnet TCP , 23 TUI (Text User Interface)
SSH TPC , 22
(Secure SHell)


RDP TCP , 3389 GUI (Graphic User Interface)
VNC TCP , 5900


L7 암호화 (IP (TCP (L7 Protocol 암호)))
(IP (TCP (SSH))

 ---4----
L4 암호화 (IP (TCP (SSL/TLS (HTTP))
(IP (TCP (SSL/TLS (DNS))
(IP (TCP (SSL/TLS (FTP))

대칭키 암호 : 암호화(동일키) - 복호화(동일키)
비대칭키 암호 : 암호화(공개키) - 복호화(비밀키)   RSA/DSA/...


firewall-cmd --add-port=23/tcp --permanent 상시적용
systemctl enable [서비스이름] 앞으로 지속적으로 구동시키기

Windows (st01) Linux (kck93) 

ssh 192.168.0.21 -> 계정 : st01

ssh kck93@192.168.0.21

ssh -l kck93 192.168.0.21


SSH Server(Linux) SSH Client(Windows)

설정 : /etc/ssh/sshd_config
비밀키 : /etc/ssh/ssh_host_rsa_key
공개키 : /etc/ssh/ssh_host_rsa_key.pub -> ~/.ssh/known_hosts

1. SSH Client가 SSH Server에 최초 접속시 Server에 저장되어있던
   공개키(/etc/ssh/ssh_host_rsa_key.pub)를 Client에 전송하고
   Client는 이를 홈디렉토리 아래에 .ssh 디렉토리를 생성하고
   known_hosts 파일으로 저장한다.

2. 이후 모든 통신은 Client에서 Server에 데이터 전송시 데이터를
   공개키와 함께 암호화하고 이를 전송 받은 Server는 비밀키로 복호화하여
   데이터를 확인한다.

SSH Client
- Putty (무료)
- iPutty (무료)
- SecureCRT
- xShell
- 명령어(ssh) (무료)

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

SSH Server(CentOS 1st) SSH Client(CentOS 2nd)

설정   : /etc/ssh/sshd_config
비밀키 : /etc/ssh/ssh_host_rsa_key
공개키 : /etc/ssh/ssh_host_rsa_key.pub -> ~/.ssh/known_hosts

공개키 인증방식
~/.ssh/id_rsa 비밀키
~/.ssh/authorized_keys ~/.ssh/id_rsa.pub 공개키














































반응형
반응형

RPM(Redhat Package Manager)
 - Redhat에서 만든 쉽게 프로그램을 설치/제거/유지할 수 있도록 도와주는 유틸리티

 rpm파일의 이름규칙 : telent-server-0.17-65.e17_8.x86_64.rpm 
                              패키지명   -버전-릴리즈명.아키텍처       .rpm

 

 telnet Client  -> telnet server

 버전 : x.y.z(Major.Minor.Patch)으로 나열된 정보로 프로그램이 얼마나 최신인가를 표현 정보
    x          : Major, 주버전 , 큰(획기적인) 변화
        y      : Minor, 부버전 , 기능 개성 (추가)
            z  : Patch, 패치버전, 문제점 해결
  릴리즈   : 출시된 순번.배포판명
                  fc(FedoraCore), el(Redhat Enterprise Linux)
  아키텍쳐 : CPU의 종류
                    x86(i386,i486,i586,i686, 32bit CPU)
                    x64(64bit CPU)
                    x86_64(64bit CPU)
                    armXX(ARM CPU)
 배포판
  redhat enterprise linux
  centos (redhat enterprise linux 클론)
  fedora fc32, fc3x
  debian
  ubuntu

 

 rpm -i    RPM파일명 : RPM패키지를 설치
 rpm -iv   RPM파일명 : RPM패키지를 설치, 과정을 상세히 출력
 rpm -ivv  RPM파일명 : RPM패키지를 설치, 과정을 더 상세히 출력
 rpm -ivh  RPM파일명 : RPM패키지를 설치, 과정을 상세히 출력, 진행률(%)

 rpm -U    RPM파일명 : RPM패키지를 업그레이드 (새로 설치할 때도 사용 가능)
 rpm -Uvh  RPM파일명 : RPM패키지를 업그레이드 (새로 설치할 때도 사용 가능)

 rpm -e    RPM패키지명 : RPM패키지를 제거

 rpm -qa | grep 이름  : 전체 설치된 패키지들 중 일부 동일한 이름이 있는지 검색
 rpm -qa   RPM패키지명 : RPM패키지 설치 유무
 


     --replacefiles : 파일만 재설치함 (여러 버전을 같이 설치할 수 있다.)
     --replacepkgs : 동일 버전을 재설치함 (동일 버전의 파일들을 복구)
     --oldpackage : 하위 버전으로 다운그레이드 설치
     --force : --replacefiles, --replacepkgs, --oldpackage 옵션을 모두 포함

 rpm -e   패키지명 : 설치된 패키지 제거

 rpm -q : Query(질의), rpm 의 정보를 조회하는 옵견
 rpm -qa : 설치된 패키지 전체 목록 출력
 rpm -qa | grep 패턴 : 설치된 패키지 전체 목록 중 패턴과 일치는 목록 조회
 rpm -q   패키지명 : 설치된 특정 패키지의 설치 여부 확인
 rpm -qi  패키지명 : 설치된 특정 패키지의 info(정보) 확인

 rpm -ql  패키지명 : 특정 패키지에 의해 설치된 파일들의 목록
 rpm -qf 경로/파일명 : 해당 파일이 어떤 패키지의 의해 설치되었는지 확인

 rpm -qip RPM파일명 : 설치전 특정 패키지의 info(정보) 확인

 

 

yum(dnf) 명령어: rpm 명령어의 의존성을 해결해주며, 인터넷에서 설치 파일을 다운받아
                            설치/유지/제거등을 모와주는 (보조)유틸리티

 

 yum install 패키지명 : 최신버전을 단일 패키지를 다운받아 설치, 의존성을 같이 해결한다.
 yum localinstall RPM파일명 : 다운받은 RPM파일로 설치하면서, 의존성을 해결한다.
 yum groupinstall 그룹명 : 패키지그룹으로 설치

 yum update : 설치된 (전체) 패키지들을 업데이트
 yum update 패키지명 : 설치된 (특정) 패키지들을 업데이트

 yum list  : 전체 패키지에 대해 설치된, 설치전, 업데이트등과 같은 패키지 상태를 출력
 yum list 패키지명 : 특정 패키지에 대해 설치된, 설치전, 업데이트등과 같은 패키지 상태를 출력

 yum remove 패키지명 : yum erase 패키지명, 패키지 제거
 yum info 패키지명 : 특정 패키지 정보(설치전, 설치된, 업데이트)

 yum clean all : repo(저장소) 캐쉬정보를 제거

 추가 옵션
 -y : 설치/제거시 질의 과정을 전부 'yes' 처리
 -q : 설치/제거시 출력물 모두 제거(quiet)

 

/etc/sysconfig/network-scripts/ifcfg-ens33  <- LAN(Ethernet) 설정 파일

history 기능 - 이전에 사용했던 명령어들을 기억해놓고 재사용할 수 있도록 도와주는 기능

 history      : 이전에 사용했던 명령어들의 목록 출력 (사용했던 순서로 넘버링)
 history -c  : 명령어들의 목록을 초기화한다.
 
 !!    : 직전 명령어를 다시 실행
 !-1  : 1번째 전 명령어를 다시 실행 (!! 동일)
 !-5  : 5번째 전 명령어를 다시 실행
 !10 : history 명령어로 확인했던 명령어들 목록의 10번 명령어 재실행
 !명령어 : 최근 사용했던 해당 명령어를 다시 실행

 L7 service L4 Port
 ftp tcp 21
 ssh tcp 22
 telnet tcp 23
 smtp tcp 25
 dns tcp/udp 53
 dhcp udp 67/78
 tftp udp 69
 http tcp 80
 pop3 tcp 110
 imap tcp 143
 smnp udp 161/162
 https tcp 443
 mysql,maridb tcp 3306
 rdp tcp 3389



Windows
  zip
  rar
  alz


Linux

  Z - Unix 전용 압축포맷, Linux에서 지원X
  gzip - 현재 가장 많이 사용되는 압축포맷 (압축↓, 속도↑)
          사용법: gzip  파일명 -> 원래 파일명은 사라지고,
   파일명.gz 압축파일을 생성
                  gzip -l 파일명.gz : 압축된 상태 정보 출력
                  gunzip  파일명.gz : 압축해제, 압축파일을 사라지고, 파일명만 남음
                  gzip -d 파일명.gz : 압축해체, 압축파일을 사라지고, 파일명만 남음

  bzip2 - 적당한 압축률, 적당한 속도 (압축-, 속도-)
          사용법: bzip2  파일명 -> 원래 파일명은 사라지고,
   파일명.bz2 압축파일을 생성
                  bunzip2, bzip -d : 압축해제

  xz - 최신 압축포맷 (압축↑, 속도(압축↓,해제↑))
          사용법: xz  파일명 -> 원래 파일명은 사라지고,
   파일명.xz 압축파일을 생성
                  unxz, xz -d : 압축해제


TAR(Tape ARchive) 명령어

  tar cf 묶을파일명.tar 파일1 파일2 ... : 파일1, 파일2, ...등을 묶을파일명.tar로 생성(Create)한다..
  tar xf 묶인파일명.tar : 묶인파일명.tar를 해제(eXtract)한다.
  tar tf 묶인파일명.tar : 묶인파일명.tar를 테스트(Test, 확인)한다.

      cfv, cfvv : 묶는 과정을 (더) 자세히 출력
      xfv, xfvv : 해제 과정을 (더) 자세히 출력

묶을 과정 중 추가로 압축할 경우, 파일명이 자동으로 gz,bz2,xz 으로 변경되지
않기 때문에 묶을파일명.tar 지정시 추가으로 압축포맷이름 지정해야한다.
  tar cfz 묶을파일명.tar.gz : 묶인 파일을 다시 gzip으로 압축
  tar cfj 묶을파일명.tar.bz2 : 묶인 파일을 다시 bzip2으로 압축
  tar cfJ 묶을파일명.tar.xz : 묶인 파일을 다시 xz으로 압축

반응형

'리눅스' 카테고리의 다른 글

Caching Name-Server  (0) 2022.12.28
리눅스 서버  (0) 2022.12.27
파일검색 which, whereis, locate, find  (0) 2022.12.27
리눅스 파일출력, 퍼미션 명령어  (0) 2022.12.27
리눅스 기초 명령어 - cron&rsync, service booting  (0) 2022.10.20
반응형

PATH=/ PATH변수에 명령어의 경로를 등록
 
which 명령어는 PATH에 등록된 명령어의 위치를 검색하는 명령어

-usr -bin
-sbin
-bin 일반 명령어 디렉토리
-sbin 시스템 명령어 디렉토리 (root만 사용가능)

PATH=/usr/bin:/usr/sbin
-> bin과 sbin 의 명렁어 모두 찾아 줌

 

 

파일 검색 : which, whereis, locate, find
 
 1.  whcih   : PATH변수에 등록된 경로에서만 명령어의 위치를 검색한다.
    사용법 - which 명령어
 
 2. whereis : 명령어와 문서파일을 검색한다.

 3.   locate  : 이름이 포함된 모든 파일들 (색인) 검색
      다른 명령과 달리 실제 검색을 하지 않고, 색인에서 검색
      검색속도가 가장 빠른 장점이 있다.
      주기적으로 색인을 갱신해야한다. -updatedb

4.   find     : 다양한 옵션들을 이용하여 정확한 검색한다.
      속도가 가장 느리다.
   사용법 - find [검색시작경로] [옵션들] [조건] [액션]
                 find           /etc          -name   network -print
   -> /etc 디렉토리부터 이름이 network인 파일(디렉토리)을
      검색하여 결과를 출력하라.

 

옵션

-xdev                   : 검색시 디바이스 디렉토리들을 검색에서 제외
-empty                 : 빈 파일/디렉토리 검색
-name  파일명     : 파일/디렉토리명으로 검색 
-type  파일종류   : f (일반파일), d (디렉토리파일), s (소켓파일)
-user  계정명      : 특정 계정으로 소유인 파일/디렉토리 검색
-nouser               : 소유자가 없는 파일/디렉토리 검색

-mtime +/-숫자   :수정일, -mtime 5 수정한지 5일이된 파일/디렉토리
                                        -mtime +5 수정한지 5일이 초과된 파일/디렉토리
                                        -mtime -5 수정한지 5일이 미만인 파일/디렉토리

-mmin  +/-숫자 : 수정분,  -mmin 5 수정한지 5분이된 파일/디렉토리
                                        -mmin +5 수정한지 5분이 초과된 파일/디렉토리
                                        -mmin -5 수정한지 5분이 미만인 파일/디렉토리

 

-atime +/-숫자 : 실행일
-amin  +/-숫자 : 실행분
-ctime +/-숫자
-cmin  +/-숫자

-size  +/-용량   : 용량(M/G)

-perm u=rwx    : rwx------- 권한의 파일/디렉토리
-perm a=rx      : rx-rx-rx-  권한의 파일/디렉토리
-perm -4000    : --s------  권한만 확인하고 그외 권한은 비교하지 않는다.
-perm -u=s      : --s------  권한만 확인하고 그외 권한은 비교하지 않는다.

 

논리연산자

-not                       : 이어지는 옵션을 반대로 바꿀 때 사용한다.

                              -user user1           : user1 사용자의 소유인 ...
                              -not -user user1    : user1 사용자를 제외한 다른 사용자의 소유인 ...
-and, -a                 : 옵션1과 옵션2이 모두 만족하도록 설정
                              -user user1 -and -type d : user1 사용자 소유이면서 디렉토리인
                              -user user1 -a   -type d   파일을 검색할 때 사용
-or , -o                   : 옵션1 또는 옵션2 중 1개이상 만족하도록 설정
                              -user user1 -or -user user2 : user1 사용자 또는 user2 사용자 소유인 ...

   연산자의 우선순위 : -not -> -and -> -or

 

 

    액션
-print  : 검색된 결과를 경로와 이름으로 출력 (기본값으로 생략시 자동으로 설정)
-ls     : ls -lsi 옵션으로 검색된 결과로 출력
-delete : 검색된 결과를 출력하지 않고 제거한다.
-exec 명령어 {} \; : 검색된 결과를 출력이나 제거하지 않고 별도의 명령어를 이용하여 처리한다.
-ok 명령어 {} \;   : 검색된 결과를 출력이나 제거하지 않고 별도의 명령어를 이용하여 처리하고,
    처리시마다 [y/n] 질문하여 실행 여부 설정할 수 있다.

 

명령어와 명령어를 이어주는 특수문자들
     (pipe)
 1. command1 | command2  : command1의 실행 결과를 command2의 입력값으로 전달

    rpm -qa | sort | grep ^python
                  정렬           ^:시작하는

 2. command1 && command2 : command1의 정상으로 실행이 끝나면 이어서 command2를 실행한다.
  
 3. command1 ; command2  : command1의 정상 실행 여부와 상관없이 이어서 command2를 실행한다.

 

★연습문제★
others에 x(execute)권한이 있는 SetUID bit가 있는 파일들만 검색
[root@ns1 ~]# find /test -perm -o=x -perm -u=s -type f -print

리눅스 전체 시스템(/)에서 others에 x(execute)권한이 있는 SetUID bit가 있는 파일들만 검색
[root@ns1 ~]# find / -perm -o=x -perm -u=s -type f -print

/usr/bin 디렉토리에서 setuid bit가 설정된 파일들 중 other가 실행할 수 없는 파일들만 검색
[root@ns1 ~]# find /usr/bin -perm -u=s -and -type f -and -not -perm -o=x -print

/test 에서 빈(empty) 파일/디렉토리를 검색
[root@ns1 ~]# find /test -empty -print

/etc 디렉토리 network 이름으로 되어있는 파일들만 검색
[root@ns1 ~]# find /etc -name network -and -type f -print
[root@ns1 ~]# find /etc -name network -and -type f -exec ls -lh {} \;

/etc 디렉토리 용량이 3M를 초과하는 파일을 검색하여 현재 디렉토리 복사한다.
[root@ns1 ~]# find /etc -size +3M -and -type f -exec cp {} . \;

pyton 이름으로 시작하는 패키지들 검사
[root@ns1 ~]# rpm -qa | sort | grep ^python

/share 생성하고, /share 이동하고, /share 에서 /etc 디렉토리를 압축하여 etc.tar 파일 생성
tar cf etc.tar /etc
[root@ns1 ~]# mkdir /share ; cd /share ; tar cf etc.tar /etc

 

 

반응형
반응형

head : 파일의 앞부분만을 보여준다. 
tail : 파일의 뒷부분만을 보여준다. (가장 최근에 추가된 내용을 볼때 사용)
more : 출력결과가 파일이 아닌경우 | 로 사용한다.
less : more와 비슷한데 검색기능이 있다.
cat

touch 파일명 -> 0byte파일생성

 

  file 디렉토리
r 파일의 내용을 본다.
  -head, tail,more,less,cat
디렉토리의 목록을 본다.
  -ls
w 파일의 내용을 수정한다.
  -vi, nano, gedit
 디렉토리에 파일을 생성이나 삭제를 한다.
-touch, mkdir, rm, rmdir
x 파일을 실행한다.
  -파일명  
디렉토리에 입장
- cd

 

 

SetUID bit : 디렉토리 소유자의 권한을 other에게 부여함
SetGID bit : 디렉토리 소유그룹의 권한을 other에게 부여함
Sticky bit : 타인이 마음대로 파일을 못지우게함

 

rwx      rwx     rwx                               rw-     r--       r--

111      111     111                               110   100    100
421     421     421                              420   400    400
 7          7         7                                  6       4       4

 

  4          0        0                                   0      0       1
  1          0        0                                   0      0       1
rws       r-x      r-x                                rwx   rwx   rwt
11?      101    101                               111   111   11?

 

x가 있었으면 s
x가 없었으면 S

 

newgrp 기본그룹 순서변경

 

drwxrwxr-x  user1 user1  dir1
-rw-rw-r--  user1 user1  file1


drwxrwxr-x -> drwxrwxrwt
chmod o=rwxt dir1
chmod 1777 or a=rwx,o+t or o+wt

-rw-rw-r-- -> rwsr-xr-x
chmod u=rwxs,go=rx file1
chmod 4755
chmod a=rw,u+ws 
chmod u+xs,go+x,g-w

하드링크 : ls -lh명령시에 자신의 위치, 상위디렉토리위치를 숫자로 2로 표기함
심볼릭링크 : 다른 파티션에서 링크를 걸수 있음 하지만 원본파일의 이름이 바뀌면 사용 못함

반응형
반응형

CRON은 주기적으로 작업되는 작업 일정을 저장해서 자동으로 실행하는 데몬으로 at이나
anacron등과 같이 다양한 프로그램이 지원된다.
/etc/crontab - 기본 스케줄 일정

crontab  ‐u [root]  [옵션]
옵션
 -e : 스케줄 등록 vi 환경으로 스케줄 등록
 -l :  스케줄 확인 (출력)
 -r : 스케줄 삭제
명령어 형식
[분] [시] [일] [월] [요일]  [작업내용] *붙이면 (매분, 매시 등)
- 시간 범위
꞉ 분 : 0 ~ 59
꞉ 시 : 0 ~ 23
꞉ 일 : 1 ~ 31
꞉ 월 : `1 ~ 12
꞉ 요일: 0(일요일) ~ 6(토요일)

00 12 * * * rdate ‐s time.bora.net  
0‐59/10 * * * * chown ‐R data.ist /home/data  (매월,매일,매시,매분 0분~59분 사이에 10분마다실행)


rsync는 두 시스템 간에 지정한 디렉토리를 동기화한다.
- 어떤 시스템은 rsync 서버로 해도 상관없지만 보통 원본
저장 시스템을 서버로 한다.
(한쪽은 서버로 한쪽은 클라이언트로)

서버 - 프로그램을 항상 띄어놓음 (메모리 데몬)
클라이언트 - 띄어놓은 프로그램을 사용
rsync 설치 확인
# yum  list  rsync
……
rsync.i386                          2.6.8‐3.1
# yum  list  xinetd
……
xinetd.i386                      2:2.3.14‐10.SUL2
---------------서버
관련 파일
데몬 : /usr/bin/rsync
관리 스크립트 : /etc/rc.d/init.d/xinetd
실행 설정 파일 : /etc/xinetd.d/rsync
백업 설정 파일 : /etc/rsyncd.conf
데몬 실행
systemctl [start | stop | restart | status] rsyncd.service

[서비스 명]       : 리소스 식별자, client에서 이용한다.
path            : 백업 경로
comment         : 주석
uid             : 전송자 UID
gid             : 전송자 GID       
use chroot      : rsync 경로를 외부에서 / 로 인식한다.(경로는 /home/data인데 /에 들어온거처럼 속이는것 보안상좋음)
read only       : 읽기 전용으로 접근한다.
hosts allow     : 접속 허용할 호스트 (클라이언트만 지정)
max connections : 동시 접속자 수
timeout         : 응답시간(초)

/etc/rsyncd.conf

[backup]
path = /backup
uid = root
gid = root
use chroot = yes
read only = yes
hosts allow = 192.168.10.33
max connections = 1
timeout = 300

systemctl start rsyncd.service

--------------------클라이언트
rsync client 명령을 이용 server의 디렉토리와 client의 디렉토리를 동기화한
다.
rsync ‐avz [‐‐delete]  source  destination     
rsync ‐avz [‐‐delete]  IP::[서비스명]  [백업 디렉토리]
rsync ‐avz [‐‐delete]  [백업 디렉토리]  IP::[서비스명]
 rsync 명령 옵션
‐v : 작업내역 출력
‐a : archive mode 작업, 심볼릭 링크, 권한 등 모든 내용을 보존한다.
‐z : 파일을 압축 전송한다.
‐‐delete : source에서 지워진 파일을 destination에서도 지워준다.(완전 동기화)

rsync 명령을 cron에 등록한다.
매일 새벽 1시에 백업 수행
00 01 * * * rsync  ‐avz 192.168.10.32::backup /backup

 => rsync --daemon 입력
 => 네트워크 매니저 비활성화
 => /etc/selinux/config -> SELINUX=disabled로 변경


서비스와 데몬은 구분하지 않아도 된다. 이둘은 사용자의 요청 시점이 아니라 임
의의 시점(보통 시스템 boot)에서 background process로 시작되어 사용자나 프
로세스에 서비스를 제공하는 프로그램을 의미한다.

방식
Stand Alone
- 스스로 listen하며 항상 메모리에 상주한다.
- 서비스 요청에 즉시 대응 가능하다.
- 서비스 요청이 매우 드물거나 idle 한 경우 메모리를 낭비한다.
Super Daemon
- Listen을 직접하지 않는다.
- 메모리에 상주하지 않으며 서비스 요청이 있을때 xinetd에 의해 호출된다.
- 거의 사라진 시스템이다.


반응형
반응형

윈도우2019 서버 원격접속
windows server - user group
로컬 계정 - 이 컴퓨터에 등록된 계정
사용자이름 - 계정이름 , 전체이름 - 진짜이름
사용자 계정 생성방법 3가지
1. 제어판 - 사용자 계정 - 사용자 계정 - 계정 관리 - 사용자 계정 추가
2. lusrmgr.msc실행 (msc는 실행파일) - 사용자 폴더 오른쪽클릭 - 새 사용자
3. 제어판 - 시스템 및 보안 - 관리도구 - 컴퓨터 관리 - 사용자 폴더 오른쪽클릭 - 새 사용자

그룹 생성
제어판 - 시스템 및 보안 - 관리도구 - 컴퓨터 관리 - 그룹 폴더 오른쪽클릭 - 새 그룹 - 사용자 이름;

st01_KCK
 st01 (admin)      st그룹에 속하게
 st11/aqsw12!@
 st13/aqsw12!@

grop : st
user : st01, st11, st13


CentOS07 원격접속

FTP 접속과 epel 다운로드
# yum install -y ftp
# ftp 192.168.10.11
접속 정보 : data/asdf1234
ftp> cd /data/down/security
ftp> get epel-release-7-11.noarch.rpm
ftp> quit

프로그램 설치
# rpm -ivh epel-release-7-11.noarch.rpm
# yum install -y xrdp
# yum install -y xrdp tigervnc-server

재부팅
# systemctl enable xrdp.service
# systemctl start xrdp.service

Xming서버는 윈도우에서 동작하는 X 서버 이다.
https://sourceforge.net/projects/xming/ 에서 다운 로
드후 설치
Xming-6.9.0.31-setup.exe

X11 관련 패키지 설치
# yum install ‐y xorg‐x11‐apps.x86_64
# yum install ‐y xorg‐x11‐xauth.x86_64
# yum install ‐y xorg‐x11‐server‐Xorg.x86_64

vi에디터로  (#있는건 주석)
/etc/ssh/sshd_config 파일 설정
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes

ntsysv -> firewalld.service 체크해제

반응형
반응형

rpm은 Redhat 사에서 제공하는 리눅스용 프로그램을 배포하는 기술로 프로그램의 설치, 검증, 삭제 등의 다양한 기능을 제공해준다.

# rpm  ‐qa : 시스템에 설치된 모든 패키지명
# rpm  ‐qi 패키지명 : 패키지의 상세한 정보
# rpm  ‐ql 패키지명 : 패키지의 파일 리스트
# rpm  ‐qf 파일명 : 지정한 파일이 포함된 패키지

설치 및 업그레이드
# rpm [‐ivh | ‐Uvh | ‐Fvh] 패키지명
옵션
‐i : 설치
‐U : 업그레이드 (이전버젼 미설치시 ‐i와 동일)
‐F : 업그레이드만
‐v : 설치과정 출력
‐h : 설치정도 출력

삭제
# rpm  ‐e 패키지명
지정한 패키지를 삭제한다.

주요 추가 옵션
옵션
‐‐nodeps : 의존성을 무시하고 작업한다.
(삭제에 주로 이용)
‐‐force : 같은 버전의 패키지나 파일이 있어도 무시하고
작업진행
‐‐oldpackage : 다운그레이드시 사용


YUM은 rpm의 고질적인 문제인 의존성
을 해소하기 하기 위한 패키지 기술로 RPM과 동일한 형식의 설치 구조를 지원한다.인터넷 repository를 이용하는 기술로 인터넷만 연결되어 있다면 지원되 는 모든 프로그램을 설치 관리 할 수 있다.

 

yum list
패키지를 확인한다.
# yum list [installed | updates | available | 패키지명]
설치 가능한 모든 패키지 목록을 보여준다.
installed : 설치된 패키지 목록을 보여준다
updates : 업데이트된(가능한) 패키지 목록을 보여준다.
available : 설치 가능한 패키지 목록을 보여준다.
패키지명 : 패키지의 설치 여부와 update 정보를 보여준다.

 


검색 추가 옵션
repolist, search, provide
# yum repolist
시스템에 등록된 repository list를 출력한다.
# yum search 문자열
패키지명이나 description에 문자열이 포함된 패키지들을 출력한다.
# yum provides 경로/문자열
문자열이 포함된 파일이 소속된 패키지들을 출력한다.

 

설치
# yum install [‐y] 패키지명
패키지를 repository로 부터 설치한다. ( -y를 해주면 묻지 않고 바로 설치 된다. )
업데이트
# yum update [‐y] 패키지명
패키지를 repository로 부터 업데이트한다. ( 업데이트 버전의 안정성이 검증되기 전 함부로 업데이트 하면은 안된다.)

 


삭제
# yum remove [패키지명]
지정한 패키지를 삭제한다.

초기화
# yum clean headers
# yum clean packages
# yum clean metadata
repolist 정보 초기화

Group package 확인과 설치
# yum group [list | install "그룹" | remove "그룹" | info "그룹"]
list : 그룹 목록을 출력한다.
install "그룹" : 그룹을 설치한다.
remove "그룹" : 그룹을 제거한다.
info "그룹" : 그룹의 정보를 검색한다.
그룹은 Environment 그룹과 패키지 그룹으로 나뉘며 CentOS7부터 지원되는
Environment 그룹은 패키지 그룹에 비해 OS 구성의 기본이 되는 대단위 그룹을 의미
한다.
최소 설치로 설치한 뒤 패키지를 추가 할 수 있다.

CentOS6 설치 후
'invalid release/repo/arch combination/’ 에러 발생시 처리방법
새로운 mirrorlist를 추가한다.
echo "https://vault.centos.org/6.10/os/i386/" > /var/cache/yum/i386/6/base/mirrorlist.txt
echo "https://vault.centos.org/6.10/extras/i386/" > /var/cache/yum/i386/6/extras/mirrorlist.txt
echo "https://vault.centos.org/6.10/updates/i386/" > /var/cache/yum/i386/6/updates/mirrorlist.txt
64bit인 경우 i386를 x86_64으로 변경한다.
extras, updates 디렉토리는 생성해 줘야한다.
6.10인 경우 예제이므로 다른 버전은 적절한 수정이 필요하다.

epel 추가 방법 ( CentOS6,7에 추가 )
# yum list epel*
리스트에 있는 epel-release.noarch를 복사해서
# yum install -y epel-release.noarch 명령어를 쓰면 epel이 생긴다.

 

반응형
반응형

 

리눅스 파일구조와 퍼미션

운영체제의 목적은 하드웨어를 효율적으로 관리하기 위한 목적이다.

app은 직접적으로 하드에 억세스가 안된다. 그래서 디바이스를 사용하는데 사용자가

디바이스를 억세스하면 커널이 작업해준다.

커널 : 가장핵짐적인 부분

 

drwxr‐x‐‐‐       2              root        root              4096           Dec 18   12:31        aa
‐rw‐‐‐‐‐‐‐         1              root        root              2019           Dec  4    01:38        ab.txt

퍼미션       하드링크수  소유자    그룹소유자  크기            마지막변경일자       파일명

퍼미션은 3자리씩 끊어서 읽는다.

 

파일의 종류

- 일반파일

d 디렉토리

l 링크파일

b 블록 디바이스 파일

c 문자 디바이스 파일

 

rc.local 권한 변경

#cd /etc/rc.d

#ls

init.d rc.local rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d

#pwd

/etc/rc.d

vi rc.local

편집에서 rdate -s time.bora.net 추가 후 저장

rdate -s time.bora.net

chmod u+x rc.local

ls -al

 

쌈바서비스 smbpasswd

[st01@dal ~]$ smbpasswd
Old SMB password:             12
New SMB password:             윈도우 개인계정 로그인 비밀번호
Retype new SMB password:      윈도우 개인계정 로그인 비밀번호
Password changed for user st01
[st01@dal ~]$


네트워크 > \\192.168.10.11\
st01폴더 오른쪽클릭 네트워크드라이브연결 z드라이브 설정후 마침
내PC에 z드라이브가 생성되었고 안에 파일질라를 통해서 보이던
홈디렉토리가 있고 수업자료와 데이터를 다운받거나 올릴 수 있다.


파일시스템과 파티션

프라이머리 파티션은 물리적인 구간 1,2,3,4로 나눌수있다.
extanded 파티션 많이 나눌 수 있다.
logical 파티션은 extanded 파티션 내에 만들어지며 사용은 프라이머리
파티션과 동일하다.
extanded 사용하려면 logical로 채워야한다.
P,E : 1,2,3,4
L   : 5,6,7,8....

df : 현재 디스크에 파티션이 어떻게 나눠져 있나 볼 수 있다.
-T : 파일 시스템 타입까지 출력
-h : 읽기 쉬운 단위로 출력

fdisk : 파티션 나누는 명령어
/dev/sdb - fdisk : /dev/sdb1/, /dev/sdb2

파티션을 디렉토리에 연결 -> 마운트(mount)

fdisk 디스크명
fdisk /dev/sda
20G 하드를 절반만 쓴다고 하면 +10G

mkfs : 파티션에 파일 시스템을 생성한다.

mkfs -t 파일시스템 타입 파티션명

예) mkfs -t xfs /dev/sda1 -> mkfs.xfs -f /dev/sda1
파일 시스템이 재구성 되는 경우 mkfs.xfs에서 사용하는 -f 가 반드시
필요한 경우가 있다.

mount : 파일시스템은 지정한 디렉토리에 연결해서 사용 가능하도록 한다.
mount -a -t FStype 장치명 디렉토리
-a : /etc/fstab의 내용을 읽어 모두 mount 한다.
-t : 파일 시스템 양식을 정한다.
-o : 마운트 옵션을 추가로 지정한다.
예)  
    mount  ‐t  ext3  /dev/sdb1    /data1
    mount  ‐t  iso9660  /dev/cdrom  /cdrom
    mount  ‐o  ro  /dev/sdb1   /home2
    mount  ‐a

먼저 파티션을 만고 만든 파티션에 파일시스템을 만들고 디렉토리에
파티션을 마운트한다.

blkid 파티션의 정보 확인

UUID는 파티션의 고유 정보로 디스크의 위치가 바뀌어도 동일하게 유지된다
UUID는 mount 명령에서 이용 가능하다.

xfs_admin 파티션에 다양한 파라미터를 변경하거나 확인한다.
xfs_admin -L 라벨명 장치명
xfs_admin -L "--" 장치명
xfs_admin -l 장치명

findfs 라벨or UUID -> UUID나 라벨명으로 장치명을 확인한다.

마운트하고 리부팅하면 마운트한게 사라지는데 fstab을 사용해야한다.
/etc/fstab 파일은 시스템 시작 시 자동으로 mount할 파일 시스템의 목록이나
옵션을 저장한다.
장치,  마운트위치,  파일 시스템 타입,  옵션,  dump,  점검여부

수정중 오타가나면 부팅이 안됨

noatime 은 그 시간을 갱신하지 말라는 뜻.

fstab을 이용한 재부팅시 자동으로 마운트 하는 방법
xfs_admin -L 라벨명 장치명 으로 마운트하고자 하는 파티션에 라벨명을 붙여주고

mount "라벨명" /디렉토리

cd /etc -> vi fstab
장치,  마운트위치,  파일 시스템 타입,  옵션,  dump,  점검여부를 적고
저장한다.
rc.local 권한 변경으로도 사용할 수 있다.

반응형
반응형

tar : 파일 여러개를 하나의 파일로 만드는 것 (파일 여러개를 압축디바이스 파일로
보내는 것) 용량은 줄어들지 않는다.
# tar [옵션] [압축파일명] [대상]
-c : 압축 -x : 풀기 -v : 작업내용을 출력
-z : gzip를 이용 압축(압축해제) -j : bzip2 이용
-f : 파일명을 지정 -p : 퍼미션 유지
-cvfz 압축할때
-xvfz 압축풀때

압축할땐 반드시 디렉토리를 압축

 

tar 를 이용한 증분 백업 : 오늘 모두 백업 , 다음날 변경된 부분만 백업
# tar cvfz 압축파일명 -g 백업정보 파일 대상

복구는 반드시 압축순으로 해제한다.

clock : 리눅스 시스템에 탑재된 BIOS의 시간을 출력하거나 변경한다.

# clock 옵션
-r : BIOS의 시간을 읽어 표준 출력으로 출력한다.
-w : 시스템의 시간을 이용 시간을 변경한다.
-s : BIOS의 시간으로 시스템의 시간을 변경한다.

date : 지정한 포맷으로 시스템의 날짜를 출력한다.
# date 포맷

포맷(시간)
시 : %H(00..23),  %(01..12),  %k(0..23),  %l(1..12),  %p(AM,PM)
분 : %M(00..59)
초 : %S(00..59)
시간 : %r(hh12:mm:ss AM),  %T(hh24:mm:ss),  %X (로케일)
기타 : %s (1970년 1월 1일 이후 경과된 초)
포맷(날짜)
년 : %Y(YYYY),  %y(yy)
월 : %m(01..12),  %B(January .. December),  %b(Jan .. Dec)
일 : %d(01..31)
요일 : %A(Sunday .. Saturday),  %a(Sun .. Sat),  %w(0..6)
기타 : %D(mm/dd/yy),  %x(로케일),  %j(00..365)

rdate : 인터넷상에 제공되는 서버로부터 시간정보를 받아 시간을 출력하거나 시스템의
시간을 재설정한다. 1년에 한번정도 실해주면 좋다.
# rdate 옵션 시간제공서버주소
‐p : 타임 서버로 부터 제공된 시간을 출력한다.
‐s : 타임 서버로 부터 제공된 시간을 이용 시스템의 시간을 재 설정한다.

rdate -s time.bora.net
autoexec.bat
/etc/rc.d/rc.local 여기에 적어야함

사용자 관리 

사용자 등록 정보
‐ /etc/passwd
‐ 사용자의 기본 등록 정보가 저장
‐ 사용자 패스워드의 경우 shadow password 사용
‐ useradd 명령을 이용 등록
‐ 사용자의 직접수정이 가능(추천하지 않는다)

# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash

계정:암호:UID:GID:주석:홈디렉토리:쉘

사용자 패스워드, 암호정책 정보
‐ /etc/shadow
# cat /etc/shadow
…………
ora12c:$6$2JwICah……94Bf2S9Bq/:18162:0:99999:7:::
계정 : 암호 : 최종변경일 : 암호최소사용일: 암호최대유효기간 :
암호 만료까지 경고기간 : 암호만료뒤 계정 폐쇠까지 기간 :
계정의 만료일 : 예비

 

 

일반사용자의 패스워드 정책은 /etc/passwd 파일을 통해 계정,암호,UID,GID주석,홈디렉토리,쉘 까지만 알수있다.
관리자의 패스워드 정책은 /etc/passwd 파일 통한 정보 뿐만 아니라 /etc/shadow 파일을 통해 계정, 암호 ,최종변경일, 계정
암호 최종변경일, 암호최소사용일, 암호최대유효기간, 암호 만료까지 경고기간, 암호만료뒤 계정 폐쇠까지 기간, 계정의 만료일, 예비를 알수있고 명령어 pwconv를 사용하여 shadow파일을 활성화하거나 pwunconv를 사용하여 비활성화시킬수 있다.


# cat /etc/shadow
…………
ora12c:$6 $bo580c3Q$ te9……9f2S9Bq/:18162:0:99999:7:::
$6 : 해시 알고리즘
- 1:MD5,  5:SHA256,  6:SHA512,  2a:Blowfish
$bo580c3Q$ : salt
te9……9f2S9Bq/ : salt + passwd 의 해시값

그룹관리 = 권한관리
/etc/group
- groupadd 명령을 이용하여 그룹 등록
# cat /etc/group
root:x:0:
그룹명:암호:GID:소속계정
계정은 여러 그룹에 속하고 기본 소속 그룹은 /etc/passwd 파일에 등록 된다.

그룹먼저 만들고 사람들어가야함
GID 넘버로 구분(직접 지정해야함)

그룹 등록 - 사용자를 등록하기 전에 반드시 사용자가 속할 그룹이 먼저 만들어져 있어야함.
# groupadd -g 그룹번호(1000,1001.1100등등) 그룹명
ex) groupadd -g 1000 그룹명

-g : 생성 그룹의 GID번호 지정 (1000바깥번호부터지정)
-r : 1000번 이하의 GID번호를 자동으로 할당한다. 잘쓰지 않음.
-o : 중복된 GID 번호 할당이 가능 되도록이면 안쓰는게 좋음.

groupdel 그룹삭제는 반드시 그룹명을 이용한다.
# groupdel 그룹명


사용자 계정
# useradd 옵션 사용자명
옵션
‐u  : uid지정
‐g  : gid나 그룹명지정 (default : 계정명)
‐d  : 홈디렉토리 지정 (default : /home/[계정명])
‐G  : 보조 그룹 지정
‐D : 기본 설정 확인 및 변경
‐s : 쉘 지정
. 로그인이 필요 없는 관리용 계정은 /sbin/nologin으로 설정한다.

사용자 삭제
userdel -r 사용자명
옵션
‐r  : 계정에 귀속된 홈디렉토리와 mailbox등을 모두 삭제한다.
- 계정 삭제시 반드시 사용한다.



passwd
사용자의 암호 변경
관리자는 다른 사용자의 암호를 임의로 변경 할 수 있다.
(단 다른 사용자의 암호를 확인 할 수는 없다)
# passwd  [사용자계정]
# passwd


패스프레이즈 길게쓰는것, 해킹여부가 의심될 때 변경으로 권고
패스워드 크랙해서 안전하다는 패스워드를 쓴다.

그룹과 계정을 쉽게 만들줄 알아야한다.
사용자 계정과 비밀번호는 인쇄해서 가지고 있어야한다.

반응형

+ Recent posts