scp보다 좀 더 기능이 많은 sftp도 있습니다.

sftp도 ssh를 기반으로 실행되며 sftp로 remote server로 접속 후 get 또는 put 명령으로 파일일 내려받거나 올릴 수 있습니다. shell(interactive command) 명령도 사용할 수 있습니다.

 

먼저 sftp로 remote server에 접속합니다.

$ sftp tongchun@10.10.0.118

tongchun@10.10.0.118's password:

Connected to tongchun@10.10.0.118.

sftp>

 

 

 

sftp로 접속하면 sftp 프롬프트 창이 생성됩니다.

sftp 프롬프트 창에서 ls -al, cd, mkdir 등의 interactive command를 실행할 수 있습니다.

사용할 수 있는 interactive command 명령은 아래 링크에서 확인할 수 있습니다.

https://www.mankier.com/1/sftp#Interactive_Commands

 

sftp - secure file transfer program - man page | ManKier

Batch mode reads a series of commands from an input batchfile instead of stdin. Since it lacks user interaction it should be used in conjunction with non-interactive authentication to obviate the need to enter a password at connection time (see sshd(8) and

www.mankier.com

가장 많이 사용하는 명령은 cd, mkdir, pwd, get, put, exit 정도입니다.

sftp로 remote server 접속 후 cd로 파일을 내려받거나 올리고자 하는 경로로 이동합니다.

그리고 get으로 파일을 다운 받거나, put으로 파일을 올릴 수 있습니다.

sftp 프롬프트 창을 종료하려면 exit 명령을 실행하면 됩니다.

 

위에서 접속한 10.10.0.118 서버에서 pwd 명령으로 디렉토리 경로를 확인해 봅니다.

sftp> pwd

Remote working directory: /home/tongchun

 

 

pwd 명령을 실행하면 remote server의 디렉토리 경로를 확인할 수 있습니다.

lpwd 명령을 실행하면 현재의 로컬 PC의 경로를 확인할 수 있습니다.

sftp> lpwd

Local working directory: /Users/tongchunkim

 

 

이번엔 파일 리스트를 확인해 봅니다.

sftp> ls -l

drwxrwxr-x 5 tongchun tongchun 39 Apr 17 05:59 go

-rw-rw-r-- 1 tongchun tongchun 127928770 Apr 11 22:09 go1.12.4.linux-amd64.tar.gz

-rw-r--r-- 1 root root 6140 Nov 12 2015 mysql-community-release-el7-5.noarch.rpm

 

 

 

go1.12.4.linux-amd64.tar.gz 파일을 다운받아 보겠습니다. 명령어는 get 입니다.

sftp> get go1.12.4.linux-amd64.tar.gz

Fetching /home/tongchun/go1.12.4.linux-amd64.tar.gz to go1.12.4.linux-amd64.tar.gz

/home/tongchun/go1.12.4.linux-amd64.tar.gz 100% 122MB 57.0MB/s 00:02

 

 

 

잘 받아졌는지 로컬 PC의 파일 리스트를 확인해 봅니다. 로컬 PC에 명령을 보내려면 remote server에서 사용한 명령 앞에 l를 붙여줍니다.

sftp> lls -l

total 263904

drwxr-xr-x 3 tongchunkim staff 96 7 30 2018 AndroidStudioProjects

drwx------@ 4 tongchunkim staff 128 12 12 2017 Applications

drwx------+ 6 tongchunkim staff 192 4 22 19:08 Desktop

drwx------+ 31 tongchunkim staff 992 3 18 10:00 Documents

drwx------+ 75 tongchunkim staff 2400 4 25 16:54 Downloads

drwx------@ 10 tongchunkim staff 320 1 28 19:18 Dropbox

drwx------@ 83 tongchunkim staff 2656 4 6 14:16 Library

drwx------+ 3 tongchunkim staff 96 12 12 2017 Movies

-rw-r--r-- 1 tongchunkim staff 127928770 4 26 14:44 go1.12.4.linux-amd64.tar.gz

-rw-r--r-- 1 tongchunkim staff 9180 1 12 2018 jmeter.log

drwxr-xr-x 14 tongchunkim staff 448 2 6 2018 macaronRamlProject

-rw-r--r-- 1 tongchunkim staff 26484 7 29 2018 package-lock.json

drwxr-xr-x 3 tongchunkim staff 96 9 16 2018 snakepit

 

 

go1.12.4.linux-amd64.tar.gz이 보이네요.

 

이번에는 파일을 업로드해 보겠습니다. jmeter.log 파일을 올려봅시다. 파일을 올리는 명령은 put입니다.

sftp> put jmeter.log

Uploading jmeter.log to /home/tongchun/jmeter.log

jmeter.log 100% 9180 268.9KB/s 00:00

 

 

 

파일이 잘 올라갔는지 확인해 봅니다.

sftp> ls -l

drwxrwxr-x 5 tongchun tongchun 39 Apr 17 05:59 go

-rw-rw-r-- 1 tongchun tongchun 127928770 Apr 11 22:09 go1.12.4.linux-amd64.tar.gz

-rw-r--r-- 1 tongchun tongchun 9180 Apr 26 01:49 jmeter.log

-rw-r--r-- 1 root root 6140 Nov 12 2015 mysql-community-release-el7-5.noarch.rpm

 

 

 

파일이 잘 올라가네요.

sftp를 종료할 때는 exit 입니다.

다른 interactive command를 확인하면 더 유용하게 사용할 수 있을 것 같습니다.

'program > linux-common' 카테고리의 다른 글

rcp remote 상에서의 파일 전송  (0) 2021.07.06
rlogin  (0) 2021.05.12
리눅스 환경 변수 설정  (0) 2021.03.27
linux 패키지 관리 프로그램 snap apt  (0) 2021.03.26
ubuntu 에서 github-desktop 설치하기  (0) 2021.03.26

2. 원격접속과 파일전송
    ■ 원격 접속 명령어 : telnet, rlogin, rsh, ssh
    ■ 파일 전송 명령어 : ftp, rcp, scp, sftp

    ■ 암호화를 하지 않는 명령어: telnet, ftp, rlogin, rsh, rcp
    ■ 암호화를 하는 명령어 : ssh, scp, sftp

3. 원격접속 & 파일전송 명령어(System V 계열)
    가. telnet
        1) telnet 명령어 실행 모드
            ▪ 대화형 모드 (Interractive Mode)
                # telnet
                telnet>
            ▪ 비대화형 모드(Noninterractive Mode)
                # telnet solaris254
                # telnet 172.16.8.254
        2) 기본 사용법
            # telnet 172.16.8.254
               # telnet 172.16.8.254 23    (/etc/services 정의)
            # telnet solaris254            (/etc/hosts 정의, /etc/inet/ipnodes 정의)
                                    /etc/inet/hosts <--- /etc/hosts
                                    /etc/inet/hosts <--- /etc/inet/ipnodes
            ---------------------------------------
            포트 서비스명
            ---------------------------------------
            20,21    FTP
            22        SSH
            23        TELNET
            25        SMTP
            53        DNS
            67,68    DHCP(Bootp)
            80        WEB
            110        POP3
            111        sunrpc
            123        NTP
            143        IMAP
            ---------------------------------------
        3) telnet 연결 화면시 에러 메세지
            가) 상대편 서버의 이름을 잘못 지정한 경우
                메시지 : Unknown host
            나) 서버가 정상적으로 동작하지 않는 경우
                메시지 : Connection refused
                메시지 : Connection timed out
                - ping 명령으로 확인
            다) 로그인시 암호가 틀린 경우
                메시지 : Login incorrect
            라) root 사용자로 로그인시 CONSOLE 변수가 잘못 지정된 경우
                메시지 : Not on system console
                - Solaris 기본 설정으로 /etc/default/login 파일을 열어서 CONSOLE변수 부분을 #으로 주석처리
            마) TCP_Wrapper에 의해 막힌 경우
                메시지 : Connection to solaris254 closed by foreign host.
    가. ftp
        1) ftp 명령어 실습1
            가) 업로드/다운로드 포인터맞추기(upload/download pointer)
                [참고] 업로드/다운로드 포인터
                ===== HOSTA ===== ===== HOSTB =====
                현재 디렉토리 ----------------> 홈디렉토리
                (예) /test /
                upload /tmp/test.solarisXXX ---> /test
                download /root <------------------ /test/test.solarisXXX
            나) 편리한 기능 설정(FTP function)
                ftp> bin (ftp> binary)    binary모드로 전송
                ftp> ascii                ascii 모드로 전송
                ftp> hash                8K마다 #표시
                ftp> prompt            대화형모드설정(토글)
            다) 업로드/다운로드(upload/download)
                ftp> put test.solarisXXX        한개의 파일 업로드
                ftp> get test.solarisXXX    한개의 파일 다운로드
                ftp> mput test.*            여러개의 파일 업로드
                ftp> mget test.*            여러개의 파일 다운로드
            라). 확인 및 접속 종료
                ftp> ls [-al]                파일 확인(서버쪽)
                ftp> dir [-al]                파일 확인(서버쪽)
                [참고] ftp> ! ls                파일 확인(자기자신)
            [참고] 자동 파일 업/다운로드 스크립트
                # rcp 172.16.8.254:/root/shell/suto_ftp.sh /test
                # cat /test/auto_ftp.sh
                내용
                ------------------------------------------------------
                #! bin/ksh
                ftp -n 172.16.8.254 21 << EOF
                user user01 user01            /* user <사용 ID> <사용P/W> */
                bin                            /* 편리한 기능 설정*/
                hash
                prompt
                cd download                    /* 업로드/다운로드 포인터 맞추기 */
                lcd /test
                put test.solarisXXX            /* 파일 전송 */
                bye
                EOF
                ------------------------------------------------------
        3) ftp 명령어 실습 2
        4) ftp 관련 파일들
            가) /etc/ftpd/ftpusers FTP 접속 불가 사용자 정의
                (FTP 서버 사용자 기본 정책)
                - root 사용자는 FTP 서버에 접속 불가능
                - 일반 사용자는 접속 가능(예: user01, user02....)
            나) /etc/shells FTP 접속시 할당할 수 있는 쉘 정의
                - ftp 접속시 해당유저에 할당되어 있는(/etc/passwd파일의 끝) 쉘을 기본으로 할당
                - /etc/shells가 있으면 파일 안에 있는 설정의 쉘을 할당 받는다.
                    -> 해당 쉘을 사용하는 사용자만 FTP 서버에 로그인이 가능하다
            [EX] 실무적인 예(/etc/shells)
            사용자 (예: user01, user02 ...., test01, test02, ...., solaris01, solaris02,...)
                        /bin/ksh            /bin/csh            /bin/bash
                - 호스트별 FTP 접근 제어 : /etc/ftpd/ftphosts, TCP_Wrapper, Firewall(IPFilter), ...
                - 사용자별 FTP 접근 제어 : /etc/ftpd/ftpusers
                - 쉘별 FTP 접근 제어 : /etc/shells
4. 원격접속 & 파일전송 명령어(BSD계열)
Remote Connection & File Transmission for BSD
■ rlogin 명령어    Remote Login CMD
■ rsh 명령어        Remote Shell CMD
■ rcp 명령어        Remote Copy CMD
    가. r 명령어(CMD) 동작원리
    Remote Connection & File Transmission for BSD
    HOSTA ----------> HOSTB
    # telnet B        Auth(ID/PASS)
    # rlogin B        Auth(/etc/hosts.equiv, ~/.rhosts)
    /etc/hosts.equiv System wild Conf.
    ~/.rhosts System specific Conf.
        ____________________
        (호스트이름) (사용자이름)
        HOSTA
        HOSTA        user01
            +
        HOSTA -------> HOSTB
                    /etc/hosts.equiv (All users, root 사용자 인증 제외)
                    ---------------------
                    HOSTA                HOSTA의 모든 사용자 인증(단, 이름이 같은 사용자)
                    HOSTA         +        HOSTA의 모든 사용자 인증
                    HOSTA        user01    HOSTA의 user01 사용자만 인증
                    +            user01    모든 호스트의 user01 사용자 인증
                    +             +        모든 호스트의 모든 사용자 인증
        HOSTA -------> HOSTB
                    ~user01/.rhosts (user01)
                    ---------------------
                    HOSTA                HOSTA의 모든 사용자 인증(단, 이름이 같은 사용자)
                    HOSTA        +        HOSTA의 모든 사용자 인증
                    HOSTA        user01    HOSTA의 user01 사용자만 인증
                    +            user01    모든 호스트의 user01 사용자 인증
                    +            +        모든 호스트의 모든 사용자 인증
    나. rlogin
        - 명령어 사용법
            # rlogin hostname
            # rlogin -l username hostname (-l : login name)
            # rlogin username@hostname
    다. rsh
        # rsh hostname CMD
        # rsh 172.16.8.254 hostname
        # rsh 172.16.8.254 ls -l /tmp
        # rsh 172.16.8.254 ls -l /root/docs
    라. rcp
        # rcp file1 172.16.8.254:/tmp
        # rcp 172.16.8.254:/tmp/file1 /tmp
        # rcp -r dir1 172.16.8.254:/tmp
        # rcp -r 172.16.8.254:/root/shell /root
        # rcp -r 172.16.8.254:/root/* .
        # rcp file1 user01@172.16.8.254:/tmp
    [참고] .rhosts 파일 정책(Policy)
        (a). 사용자 홈디렉토리에 .rhosts 파일을 정기적으로 지우는정책
            # find /export/home -name .rhosts -type f -exec rm {} \;
        (b). 사용자 홈디렉토리에 .rhosts 파일을 못 만들도록 하는 정책
            user01 Home Directory : /export/home/user01
            # cd /export/home/user01
            # mkdir .rhosts (rwxr-xr-x root other)
            # touch .rhosts/.notperm (rw-r--r-- root other)
            # chmod 000 .rhosts
            # chmod 000 .rhosts/.notperm
5. 원격접속 & 파일전송 명령어(암호화 방식)
    Remote Connection & File Transmission for Securiy
        ■ ssh 명령어 Secure Shell
        ■ scp 명령어 Secure Copy
        ■ sftp 명령어 Secure FTP
    가. ssh
        - rsh를 기반으로 만들어져 사용법이 비슷하다.
        # ssh hostname
        # ssh -l username hostname
        # ssh username@hostname
    나. sftp
        - ftp 명령어를 기반으로 만들어져 사용법이 비슷하다.
        # sftp 172.16.8.254
        # sftp user01@solaris254
    다. scp
        - rcp 명령어를 기반으로 만들어져 사용법이 비슷하다.
        # scp /tmp/file1 172.16.8.254:/tmp
        # scp -r /root/test 172.16.8.254:/tmp
        # scp -r 172.16.8.254:/tmp/* /test
        # scp -r file1 user01@172.16.8.254:/tmp

r-commands는 rlogin, rsh, 그리고 rcp 명령어 등과 같이 원격에서 수행되는 명령어로 원격 명령어 라고 한다.

 

이들 명령어들이 모두 원격에서 신뢰된 로그인 또는 접근을 할 수 있기 위해서는 접근할 원격서버의 /etc/hosts.equiv 또는 홈디렉토리내에 있는 .rhosts파일의 접근 허용설정이 있어야 한다. (둘 중 하나의 파일만 만들면 된다.) 그리고 /etc/xinetd.d/rlogin, /etc/xinetd.d/rsh 등의 xinetd관련 설정파일이 정확하게 설정되어 있어야 한다.

 

리눅스에서는 .rhosts 파일의 권한이 파일소유자에게만 rw이어야 한다. 그렇지 않을 경우 OS에서 보안상의 이유로 무시해 버린다.
(리눅스 기본 파일 퍼미션이 rw-r--r-- 이므로 그대로 두면 됨)

 

rlogin  명령어

rlogin은 패스워드를 입력하지 않고 원격서버로 신뢰받는 원격로그인을 하기 위한 리눅스 명령어이다.

 

 명령어위치 : /usr/bin/rlogin

 사용형식  :  rlogin [-8EL][-e char][-l 사용자명] 호스트

 

이제 rlogin을 이용한 원격접속을 시도해 보도록 하겠다. 즉, rlogin을 이용한 패스워드 인증절차 없이 바로 원격서버로의 로그인에 대한 실제 예를 보도록 하겠다. rlogin이 정상적으로 수행되기 위해서는 위에서 설명드렸던 접근허용설정이 되어 있어야만 한다.

 

실제 접속을 위하여 A서버의 특정 계정에서 B서버의 특정 계정으로 패스워드 인증절차없이 바로 로그인하는 예를 보겠다.  

A 서버(192.168.0.100)의 bbb 계정에서   ------>   B 서버(192.168.0.110)의 aaa 계정으로 접속

 

접속을 허용하기 위하여 B서버에는 다음과 같은 설정이 되어 있어야 한다. 즉, B서버내의 aaa의 홈디렉토리인 /home/aaa디렉토리에 .rhosts파일이 이와같이 설정되어 있어야한다는 의미이다. 즉, 원격서버에서 B서버의 aaa계정의 홈디렉토리(/home/aaa)로 접속하기 위해서는 .rhosts파일내에 원격서버의 IP주소인 192.168.0.100과 계정명이 설정이 되어 있어야하며 이설정의 의미는 192.168.0.100서버의 bbb계정에서 이 서버의 aaa홈디렉토리로의 rlogin 원격접속을 허용한다는 의미가 된다. 

 $ cat .rhosts
192.168.0.110  bbb

 

.rhosts파일에 설정된 “192.168.0.100 bbb”이라는 설정은  192.168.0.100(A서버)의 bbb이라는 계정에서 B서버의 aaa계정으로 패스워드 인증절차 없는 원격로그인을 허용하겠다라는 설정이다. 

 

여기서 한가지 주의하실 것은 .rhosts파일의 퍼미션을 반드시 600으로 설정하셔야한다. .rhosts파일의 퍼미션이 600으로 설정하는 이유는 다른 사용자들이 이 파일의 내용을  함부로 볼 수 없도록 설정하기 위한 일종의 보안설정이다.

 $ ls -al .rhosts
-rw-------  1 aaa aaa 261  7월 28  2011 .rhosts

 

B서버의 /etc/hosts.allow파일에서 아래와 같이 192.168.0.100 서버에 대한 허용을 해둬야 한다.

 $ cat /etc/hosts.allow

ALL : 192.168.0.110

 

그리고 B서버내의 /etc/xinetd.d/rlogin파일의 설정은 다음과 같다. 

 $ cat /etc/xinetd.d/rlogin
service login
{
        socket_type         = stream
        wait                    = no
        user                    = root
        log_on_success   += USERID
        log_on_failure       += USERID
        server                  = /usr/sbin/in.rlogind
        disable                = no
}

 

자, 그럼 이제 모든 준비가 끝났으므로 A서버에서 B서버로 패스워드 인증절차 없이 rlogin을 이용하여 바로 원격로그인하는 예를 보겠다.  rlogin명령어로 원격서버로 접속하는 명령의 형식은 다음과 같다. 

 $ rlogin  -l  B서버의계정명  B서버의IP주소

    or    

 $ rlogin  -l  B서버의계정명  B서버의IP도메인

 

192.168.1.100(A서버)의 bbb이라는 계정에서 192.168.0.110서버(B서버)의 aaa계정으로 rlogin접속에 성공한 예입니다. 

A서버(bbb):/home> rlogin -l aaa 192.168.0.110
Last login: Mon Dec 17 08:58:17 from 10.70.209.69
[B서버(aaa):/home> id
uid=501(aaa) gid=501(aaa) groups=501(aaa)

  

주의깊게 보실 것은 A서버의 bbb이라는 계정이 B서버의 aaa이라는 계정으로 rlogin접속을 패스워드 인증절차없이 바로 원격로그인을 하고 있다는 것이다. 그리고 접속에 성공한 이후에 id라는 명령어로 B서버의 aaa이라는 것을 확인하였다.

 

이와같이 패스워드 인증절차 없이 원격로그인을 수행하기 위해서 rlogin을 이용하였으며 rlogin과 같은 r-commands명령어들이 정상적인 수행을 위해서는 몇가지 설정이 필요하다는 점도 배워보았다.  

r-commands명령어들의 보안적인 부분을 보완하기 위하여 반드시 이 설정들이 정상적으로 설정되어 있어야만 가능하다는 점을 꼭 기억하시기 바란다. 
 

 

# rsh 명령어 
Remote Shell이라고 하며, Linux 병렬처리 시스템을 사용하다 보면 동시에 원격으로 파일을 삭제/복사/이동 할 경우가 생기는데, 이때 
rsh를 사용하면 된다.

 

사용 형식)

- 다른호스트로 로그인하기 : rsh 호스트명 
- 다른호스트 명령 실행하기 : rsh 호스트명 "명령" 

 

예제)

 rsh cluster2    : cluster2 호스트에 로그인 
 rsh cluster2 ls : 로그인하지 않고 cluster2 호스트에서 ls 명령 실행하기 
 rsh cluster2 "cp file1 file2" : cluster2 호스트에서 파일 카피하기 

  

 

# rcp 명령어 
rcp는 원격 호스트의 파일을 복사하는 명령어이다. 환결설정 파일에서 xinetd관련 설정파일은

/etc/xinetd.d/rlogin, /etc/xinetd.d/rsh 파일에서 disable = no 로 설정만 해주면 된다. 

(별도 /etc/xinetd.d/rcp 파일이 필요없다.)

 

사용 형식)

 $ rcp [-옵션] 파일1 파일2 

 $ rcp [-옵션] 파일... 디렉토리

 

옵션)

 

 -p : 원 파일의 수정 시간(modification)과 모드(mode)를 그대로 보존한 채로 복사한다

 -r : 디렉토리를 지정할 경우 서브 디렉토리까지 함께 복사한다. 

 

원격 호스트에 파일을 복사한다. 예를 들어 a1.aaa.com이라는 시스템의 test.txt 라는 파일을 

b1.bbb.com 시스템의 /home/bbb 디렉토리 아래에 복사하려면, a1.aaa.com에서

rcp test.txt b1.bbb.com:/home.bbb 라고 명령을 내리기만 하면 된다. cp와 똑같다고 생각하면 된다.

환경변수 GET (보기)

export 

전체 설정 파일 보기

 

export | grep PATH

처럼 활용하기

 

echo $환경변수 이름

export | grep 환경변수이름

 

환경변수 SET(설정하기)

환경변수 설정하기

export PATH=/usr/bin

 

기존 환경변수 뒤에 추가하기

export PATH=$PATH:/usr/bin

 

 

 

'program > linux-common' 카테고리의 다른 글

rcp remote 상에서의 파일 전송  (0) 2021.07.06
rlogin  (0) 2021.05.12
linux 패키지 관리 프로그램 snap apt  (0) 2021.03.26
ubuntu 에서 github-desktop 설치하기  (0) 2021.03.26
리눅스 디렉토리 구조  (0) 2021.03.26

Apt- Ubuntu와 같은 Debian 배포판에서 작동하도록 설계되었으며, 패키지의 내용을 지정된 위치에 설치만 함.추가적으로 라이브러리 설치 등이 필요할수 있음. 데비안 프로젝트

 

snap- 다양한 linux에서 쓸수 있는 범용 설치 패키지.자체 샌드 박스에서 실행되며(라이브러리 의존성 없음) 호스트 시스템과 직접 통신하지 않습니다. -> 느리다. 상업용

'program > linux-common' 카테고리의 다른 글

rlogin  (0) 2021.05.12
리눅스 환경 변수 설정  (0) 2021.03.27
ubuntu 에서 github-desktop 설치하기  (0) 2021.03.26
리눅스 디렉토리 구조  (0) 2021.03.26
proxy configuration setting in terminal command line  (0) 2021.03.25

 

 

github.com/shiftkey/desktop#readme

 

shiftkey/desktop

Fork of GitHub Desktop to support various Linux distributions - shiftkey/desktop

github.com

간단하게 ubuntu에서는 apt repo를 업데이트해서 설치 할수 있다.

 

$ wget -qO - https://packagecloud.io/shiftkey/desktop/gpgkey | sudo tee /etc/apt/trusted.gpg.d/shiftkey-desktop.asc > /dev/null

$ sudo sh -c 'echo "deb [arch=amd64] https://packagecloud.io/shiftkey/desktop/any/ any main" > /etc/apt/sources.list.d/packagecloud-shiftky/desktop.list'

$ sudo apt-get update

 

$ sudo apt install github-desktop

 

아니면 그냥 릴리즈된 패키지 파일 다운로드 받아서 설치해도 됩니다.

'program > linux-common' 카테고리의 다른 글

rlogin  (0) 2021.05.12
리눅스 환경 변수 설정  (0) 2021.03.27
linux 패키지 관리 프로그램 snap apt  (0) 2021.03.26
리눅스 디렉토리 구조  (0) 2021.03.26
proxy configuration setting in terminal command line  (0) 2021.03.25

맨날 까먹는거 노트

 

 

/(루트)

최상의 디렉토리인 루트 디렉토리를 의미하며, 리눅스의 모든 디렉토리들의 시작점이다. 즉, 모든 디렉토리들을 절대경로로 표기할 때에 이 디렉토리로부터 시작해야 한다.

 

/bin

기본적인 명령어가 저장된 디렉토리. 즉, 리눅스 시스템사용에 있어 가장 기본적이라고 할 수 있는 mv, cp, rm 등과 같은 명령어들이 이 디렉토리에 존재하며 root 사용자와 일반사용자가 함께 사용할 수 있는 명령어 디렉토리이다.

 

/boot

리눅스 부트로더(Boot Loader)가 존재하는 디렉토리. 즉, GRUB 과 같은 부트로더에 관한 파일들(grub.conf 등)이 이 디렉토리에 존재한다.

 

/dev

시스템 디바이스(device)파일을 저장하고 있는 디렉토리. 즉, 하드디스크 장치파일 /dev/sda, CD-ROM 장치파일 /dev/cdrom 등과 같은 장치파일들이 존재하는 디렉토리이다.

 

/etc

시스템의 거의 모든 설정파일이 존재하는 디렉토리. /etc/sysconfig(시스템 제어판용 설정파일), /etc/passwd(사용자관리 설정파일), /etc/named.conf(DNS 설정파일) 등과 같은 파일들이 존재한다.

/etc/mai/
sendmail.cf 나 access 파일등의 sendmail 의 설정파일들이 존재하는 디렉토리.

/etc/ssh/

SSH 서비스, 즉 sshd 데몬에서 사용하는 각종 설정파일들이 존재하는 디렉토리.

/etc/squid/

squid 프락시서버의 설정파일들이 저장된 디렉토리.

/etc/samba/

삼바관련 설정파일들이 저장된 디렉토리

/etc/skel/

계정사용자 생성시의 초기화파일들이 저장된 디렉토리(useradd 에서 사용함)

/etc/rc.d/

부팅레벨별 부팅스크립트파일들이 존재하는 디렉토리.

/etc/rc.d/init.d/

시스템 초기화 파일들의 실제파일들이 존재함.

/etc/pam.d/

PAM 설정 정보파일들이 저장된 디렉토리.

/etc/httpd/

RPM 으로 설치된 아파치 설정파일(httpd.conf 등)들이 저장된 디렉토리.

/etc/cron.d/, /etc/cron.daily/, /etc/cron.hourly/, /etc/cron.monthly/, /etc/cron.weekly/

모두 크론설정파일이 존재하는 디렉토리임.

/etc/xinetd.d/

xinetd 수퍼데몬에 의해 서비스되는 서비스설정파일이 존재함.

/home

사용자의 홈디렉토리, useradd 명령어로 새로운 사용자를 생성하면 대부분 사용자의 ID와 동일한 이름의 디렉토리가 자동으로 생성됨.

 

/lib

커널모듈파일과 라이브러리파일 즉, 커널이 필요로하는 커널모듈파일들과 프로그램(C, C++ 등)에 필요한 각종 라이브러리 파일들이 존재하는 디렉토리.

 

/media

DVD, CD-ROM, USB 등과 같은 탈부착이 가능한 장치들의 마운트포인트로 사용되는 디렉토리.

 

/mnt

/media 디렉토리와 비슷한 용도로 탈부착이 가능한 장치들에 대하여 일시적인 마운트포인트로 사용하는 디렉토리.

 

/proc

일명 "가상파일시스템" 이라고 하는 곳으로 현재 메모리에 존재하는 모든 작업들이 파일형태로 존재하는 곳이다. 디스크상에 실제 존재하는 것이 아니라 메모리상에 존재하기 때문에 가상파일시스템이라고 부른다. 실제 운용상태를 정확하게 파악할 수 있는 중요한 정보를 제공하며 여기에 존재하는 파일들 가운데 현재 실행중인 커널(kernel)의 옵션 값을 즉시 변경할 수 있는 파라미터파일들이 있기 때문에 시스템 운용에 있어 매우 중요한 의미를 가진다.

 

/root

시스템 최고관리자인 root 사용자의 개인 홈디렉토리.

 

/sbin

ifconfig, e2fsck, ethtool, halt 등과 같이 주로 시스템 관리자들이 사용하는 시스템관리자용 명령어를 저장하고 있는 디렉토리.

 

/tmp

일명 "공용디렉토리" . 시스템을 사용하는 모든 사용자들이 공동으로 사용하는 디렉토리. mysql 에서 사용하는 mysql.sock 등과 같은 소켓파일, 또는 아파치에서 사용하는 세션파일등이 생성되기도 한다. 웹해킹에 사용되기도 해서 주의를 요망.

 

/usr

시스템이 아닌 일반사용자들이 주로 사용하는 디렉토리. 즉, c++, chsh, cpp, crontab, du, find등과 같이 일반사용자들용 명령어들은 /usr/bin 에 위치한다.

/usr/bin/

일반 사용자들이 사용가능한 명령어 파일들이 존재하는 디렉토리.

/usr/X11R6/

X 윈도우 시스템의 루트 디렉토리.

/usr/include/

C 프로그램에 필요한 헤드파일(*.h) 디렉토리.

/usr/lib/

/lib 에 들어가지 않은 라이브러리 디렉토리.

/usr/sbin/

/bin 에 제외된 명령어와 네트워크관련 명령어가 들어있는 디렉토리.

/usr/src/

프로그램 소스(주로 커널소스)가 저장되는 디렉토리.

/usr/local/

MySQL, Apache, PHP 등과 같은 어플리케이션들을 소스로 컨파일설치할 때 사용되는 장소.

/usr/share/man/

명령어들의 도움말을 주는 메뉴얼(manual)페이지 디렉토리. 즉, 이 디렉토리에는 시스템에서 사용하는 모든 맨페이지파일(man page)이 존재함.

/var

시스템운용중에 생성되었다가 삭제되는 데이터를 일시적으로 저장하기 위한 디렉토리. 거의 모든 시스템로그파일은 /var/log 에 저장되고, DNS 의 zone 설정파일은 /var/named 에 저장되고, 메일파일은 /var/spool/mail 에 저장되며, 크론설정파일은 /var/spool/cron 디렉토리에 각각 저장됨.

 

/var/tmp/

/tmp 디렉토리와 같은 공용디렉토리. 즉, /tmp 디렉토리와 /var/tmp 디렉토리의 퍼미션은 1777 로서 sticky bit 가 설정되어 있는 공용디렉토리이다. 리눅스 시스템에서 공용디렉토리는 /tmp 와 /var/tmp 둘뿐이다.

/var/log/

시스템로그파일(messages, secure, xferlog 파일등)이 저장되는 디렉토리.

/var/ftp/

vsftp 등과 같은 FTP 서비스를 위한 다운로드될 파일들 즉, FTP 홈디렉토리.

/var/named/

BIND 즉, DNS 에서 사용하는 zone 파일들이 저장되는 디렉토리.

/var/spool/mail/

각 계정사용자들의 메일파일이 저장되는 디렉토리.

/var/spool/lpd/

프린트를 하기 위한 임시 디렉토리(스풀링 디렉토리).

/var/spool/mqueue/

발송을 위한 메일 일시저장 디렉토리.

/var/spool/cron/

각 사용자들의 cron 설정파일들이 저장된 디렉토리.

/var/spool/at/

atd 즉, 예약작업에 관한 파일들이 저장되는 디렉토리.

 

/lost+found

최상위 디렉토리인 / 디렉토리에만 존재하는 것이 아니라 파일시스템마다 존재할 수 있는 디렉토리임. 이 디렉토리는 fsck 또는 e2fsck 등과 같은 파일시스템 체크 및 복구유틸리티 실행후에 주로 생성이 되는 것으로서 복구되지 않은 채로 블록(block)만 존재하는 파일 즉, 연결이 끊어진 inode 들이 숫자파일형태로 존재하는 곳임. 숫자형태로 존재하는 파일들은 mv 명령어로 파일이름만 바꾸면 바로 복구될 수 있다.



출처: https://webdir.tistory.com/101 [WEBDIR]

'program > linux-common' 카테고리의 다른 글

rlogin  (0) 2021.05.12
리눅스 환경 변수 설정  (0) 2021.03.27
linux 패키지 관리 프로그램 snap apt  (0) 2021.03.26
ubuntu 에서 github-desktop 설치하기  (0) 2021.03.26
proxy configuration setting in terminal command line  (0) 2021.03.25

리눅스에서 프록시 설정.

gui network 옵션과 이 env 둘다 확인해봐야한다.

 

$ export http_proxy="http://PROXY_SERVER:PORT"
$ export https_proxy="https://
PROXY_SERVER:PORT"
$ export ftp_proxy="http://
PROXY_SERVER:PORT"
$ export http_proxy="http://USER:PASSWORD@PROXY_SERVER:PORT"
$ export https_proxy="https://
USER:PASSWORD@PROXY_SERVER:PORT"
$ export ftp_proxy="http://
USER:PASSWORD@PROXY_SERVER:PORT"

Special Characters: If your password contains special characters, you must replace them with ASCII codes, for example the at sign @ must be replaced by the %40 code, e.g. p@ssword = p%40ssword.

 

Check the current proxy server settings:

$ env | grep -i proxy

 

Check your public IP address from the Linux command-line:

$ wget -q -O - checkip.dyndns.org \ | sed -e 's/.*Current IP Address: //' -e 's/<.*$//'

 

Compare the difference in the response time with the configured proxy and without it:

$ time wget -q -O - checkip.dyndns.org \ | sed -e 's/.*Current IP Address: //' -e 's/<.*$//'

 

Check the Internet download speed through the proxy:

$ wget --output-document=\ /dev/null http://speedtest.wdc01.softlayer.com/downloads/test500.zip

Unset Linux Proxy Variables

Use the following commands to disable proxy:

 

 

 

$ unset http_proxy
$ unset https_proxy
$ unset ftp_proxy

 

fluent

$ export {http,https,ftp}_proxy="http://PROXY_SERVER:PORT"

$ unset {http,https,ftp}_proxy

'program > linux-common' 카테고리의 다른 글

rlogin  (0) 2021.05.12
리눅스 환경 변수 설정  (0) 2021.03.27
linux 패키지 관리 프로그램 snap apt  (0) 2021.03.26
ubuntu 에서 github-desktop 설치하기  (0) 2021.03.26
리눅스 디렉토리 구조  (0) 2021.03.26

+ Recent posts