구축환경: Ubuntu 14.04 LTS



서버들을 소스패키지를 빌드해 설치하니, apt-get으로 설치했을 때와는 달리 재부팅 시 데몬이 뜨지 않는다.

이 문제를 해결하기 위해 nohup 명령어를 사용해도 안돼서,

Startup Script 추가를 했다.

다른 방법들은 아직 나에게 많이 복잡해서, 정석은 아닌듯 하나 가장 간단한 방법을 사용했다.


소스패키지로 설치한 ftpd가 Ubuntu 시작 시 자동으로 켜지도록 하기 위해,

ftpd --daemon 명령어를 내용으로 한 /etc/init.d/ftpd.sh 파일을 만들었다.

chmod +x ftpd.sh 명령어로 스크립트를 실행가능하게 만들었다.

update-rc.d ftpd.sh defaults

위 명령어를 실행하면 ftpd.sh를 시작 스크립트로 설정한다.

LSB Information이 없다고 Warning이 뜨지만 일단은 패스.


재부팅을 하면 ftpd가 자동으로 켜져있는 것을 확인할 수 있다.

구축환경: Ubuntu 14.04 LTS


1.

http://httpd.apache.org/download.cgi#apache24

위 사이트에서 가장 최신의 Apache HTTP Server(httpd)를 다운 받았다.


2.

tar -xvzf httpd-2.4.29.tar.gz

명령어로 압축을 푼다.


3.

httpd-2.4.29 디렉터리로 이동해서

./configure

명령어를 사용하니 error가 떴다.

apr이 없다고 해서, apt-get 명령어로 관련 패키지를 설치하고 다시 해보니

이번엔 apr-util이 없다고 한다.

INSTALL 문서를 참고해서,

http://apr.apache.org/download.cgi#apr1에서

apr-1.6.3.tar.gz apr-util-1.6.1.tar.gz를 다운받아,

./scrlib/apr와 ./scrlib/apr-util에 각각 압축을 풀고

./configure --with-included-apr 

명령어를 실행했다.

(apr, apr-util 모두 apt-get 명령어로 설치하면 따로 옵션을 줄 필요가 없는데,

그냥 INSTALL 문서를 참고하는게 편해서 이 방식을 택했다. 이게 차후 문제 발생 방지에 좋다는 설명도 함께 있었다.)


4.

이번엔 pcre-config가 필요했다.

INSTALL 문서에 별다른 설명이 없어서 그냥

apt-get install libpcre3

apt-get install libpcre3-dev

두 명령어로 설치를 하고 다시

./configure --with-included-apr 

명령어를 실행했고

configure: summary of build options:


    Server Version: 2.4.29

    Install prefix: /usr/local/apache2

    C compiler:     gcc -std=gnu99

    CFLAGS:          -g -O2 -pthread  

    CPPFLAGS:        -DLINUX -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE  

    LDFLAGS:           

    LIBS:             

    C preprocessor: gcc -E

다음과 같은 결과가 나왔다. 여기서 prefix는 기본값인데, 이걸 변경해 주려면 --prefix=PREFIX 옵션을 주면 된다.

makemake install 명령어를 차례로 실행해주었다.


5.

/usr/local/apache2/bin/apachectl start

명령어를 사용해 데몬을 켜주면 80번 포트가 열리고,

웹 브라우저에 IP 주소를 입력해서 다음과 같은 창이 뜨면 기본적인 웹서버 구축 완료.



+친구의 요청으로 웹페이지의 첫 화면을 바꿔주었다.

이 웹서버의 DocumentRoot/usr/local/apache2/conf/httpd.conf에 설정되어 있다.

/usr/local/apache2/htdocs가 기본값이여서 수정하지 않고 그냥 사용했다.

이 디렉터리 안에 있는 index.html 파일을 수정하면 된다.


구축환경: Ubuntu 14.04 LTS


1.

https://packages.ubuntu.com/source/trusty/sendmail

위 사이트에서 소스를 다운로드했다.


2.

tar -xvzf sendmail_8.14.4.orig.tar.gz

안에 압축파일이 또 있어서

tar -xvzf sendmail.8.14.4.tar.gz

한번 더 압축을 푼 후,

sendmail-8.14.4 디렉터리를 사용자의 홈 디렉터리로 옮겼다.


3.

sendmail 디렉터리로 이동해,

./Build

위 명령어로 빌드해준다.

이 때, 'undefined reference to~' 오류가 나서

sendmail-8.14.4/ 디렉터리 안의 devtools/Site/에

APPENDDEF(`confLIBS', `-lresolv')

위 내용만을 가진 site.config.m4 파일을 생성하여

./Build -c

명령어로 다시 빌드했다.


4.

cf/cf/ 디렉터리에서

cp generic-linux.mc sendmail.mc

명령어로 sendmail.mc 파일을 만들어준 후,

./Build sendmail.cf

명령어로 sendmail.cf 파일을 생성한다.


5.

mkdir /etc/mail

명령어로 디렉터리를 만들어주고

./Build install-cf

명령어를 입력하면

/etc/mail/sendmail.cf

/etc/mail/submit.cf

두 파일이 생성된다.


6.

sendmail/ 디렉터리 내에서

./Build install

명령어를 이용해 sendmail을 설치한다.

(설치 전, smmsp 그룹과 smmsp 사용자를 생성해야한다고 해서 만들었다.)

위 명령어를 사용하니 /usr/man/man8 디렉터리가 없다고 해서,

mkdir /usr/man/man8 /usr/man/man5 /usr/man/man1

세 디렉터리를 만들고 다시 명령어를 이용했다.


7.

touch /etc/mail/local-host-names

mkdir /var/spool/mqueue

두 명령어로 필요한 파일과 디렉터리 생성


8.

/usr/sbin/sendmail -L sm-mta -bd -q30m

위 명령어로 데몬을 실행하고, 25번 포트가 열려있는지 확인한다.

명령어 옵션은 https://www.computerhope.com/unix/usendmai.htm 참고


9.

sendmail xxx@gmail.com

위 명령어를 사용한 후, 메일 내용을 적고 .을 누르면 메일이 전송된다.

Gmail의 정크 메일함에서 발송한 메일을 확인할 수 있었다.

구축환경: Ubuntu 14.04LTS


Ubuntu에 DNS 서버 구축을 하기 위해, BIND9 소스 패키지를 빌드하여 설치하였다.


https://packages.ubuntu.com/trusty/bind9


먼저, BIND9의 소스 패키지는 위 링크에서 다운 받았다.

다운 받은 압축 파일을

tar -xvzf bind9_9.9.5.dfsg.orig.tar.gz

명령어를 사용해 압축 해제한 후, bind9-9.9.5.dfsg 디렉터리로 이동하여

./configure --without-openssl

명령어를 사용해 빌드에 필요한 프로그램을 확인했다. OpenSSL을 사용하지 않으려고 옵션을 주었다.

따로 필요한 프로그램은 없어 바로 빌드했다.

make

명령어를 이용하여 빌드를 한 후,

make install

명령어로 설치해주었다.


설치가 끝나면 /usr/local/sbin에 named를 비롯한 여러 BIND 9 라이브러리들의 실행파일이 생성되어,

명령어만 입력해도 프로그램들을 실행시킬 수 있다.


named로 DNS 서버를 켜기 전, 먼저 DNS 서버를 설정해야한다.

http://zytrax.com/books/dns/ch7/

위 링크를 참고하여 설정하였다. (configuration 파일과 zone 파일 작성법이 나와있다.)

(이 글은 내 컴퓨터의 IP가 192.168.0.101, 호스트 컴퓨터의 IP가 192.168.0.27이라고 가정하고 작성함)



먼저, /etc/hosts 파일을,

127.0.0.1 my.local localhost

127.0.0.1 ns

위와 같이 수정하였다.


apt-get 명령어로 BIND9를 설치하면 자동으로 /etc/named.conf 파일, /etc/bind/named.conf.options 등이 생성되는 것 같은데,

소스 패키지를 빌드하여 설치한 경우엔 생성되지 않는다. (bind9-9.9.5.dfsg 디렉터리의 FAQ 참고)

그렇기 때문에 디렉터리와 파일을 생성하여 설정해주었다.


/etc/bind/named.conf.options 파일을,

options {

 directory "/var/cache/bind";

 

 forwarders {

 ##KT 네임서버 IP 

 168.126.63.1; 

 168.126.63.2;

 };


 listen-on-v6 { any; };

};

다음과 같이 만들어, 내부 도메인이 아닌 경우 KT 네임서버에 묻게 했다.

여기서, options는 DNS 서버의 전체적인 제어에 대한 설정을 하는 절이며,

listen-on-v6는 BIND가 IPv6 쿼리 listen 여부를 설정하는 문장이다.(IP나 Port 설정도 가능)


/etc/bind/named.conf.local 파일을,

zone "my.local" IN {

 type master;

 file "/etc/bind/zones/my.local.db";

};


zone "0.168.192.in-addr.arpa" {

 type master;

 file "/etc/bind/zones/rev.0.168.192.in-addr.arpa";

};

다음과 같이 만들어, zone을 추가하였다.

여기서, zone은 네임서버가 지원할 zone을 정의하는 절이며,

type은 zone의 type을 설정하는 문장이다. (type에 대한 정의는 위 링크에서 참고)

file은 zone에 의해 사용될 파일을 설정하는 문장이다.


/etc/named.conf 파일은 다음과 같이 간단하게 만들었다.

include "/etc/bind/named.conf.options";

include "/etc/bind/named.conf.local";

보다시피, 위에서 만든 파일들을 include 했다.


그 후, named.conf.options에 정의한 zone에 대한 zone 파일을 생성한다.

/etc/bind/zones라는 디렉터리를 만들어서, 그 안에 zone 파일들을 생성했다.


먼저, my.local.db 파일을 다음과 같이 만들었다.

;

; BIND data file for local loopback interface

;

$ORIGIN my.local.

$TTL 604800

@ IN SOA ns.my.local. master.my.local. (

 10 ; Serial

 604800 ; Refresh

 86400 ; Retry

 2419200 ; Expire

 604800 ) ; Negative Cache TTL

;

; name servers - NS records

my.local. IN NS ns.my.local.


; name servers - A records

localhost IN A 127.0.0.1

gateway IN A 192.168.0.1

ns IN A 192.168.0.101


; hosts - A records

testcom IN A 192.168.0.27

여기서, SOA는 zone에 대한 설정을 하는 레코드고,

NS는 도메인에 대한 네임서버를 정의, A는 호스트에 대한 아이피를 설정하는 레코드다.


rev.0.168.192.in-addr.arpa 파일은 다음과 같이 만들었다.

;

; BIND reverse data file for broadcast zone

;

$TTL 604800

@ IN SOA ns.my.local. master.my.local. (

 14 ; Serial

 604800 ; Refresh

 86400 ; Retry

 2419200 ; Expire

 604800 ) ; Negative Cache TTL

;

; name server

@ IN NS ns.my.local.

; PTR Records

1 IN PTR gateway.my.local.

27 IN PTR testcom.my.local.

101 IN PTR ns.my.local.

여기서 PTR은 아이피에 대한 도메인을 설정하는 레코드다.



설정이 다 끝나면,


named-checkconf 명령어로 configuration에 구문 에러가 있는지 확인하고,

zones 디렉터리로 이동하여, named-checkzone을 사용해 zone 파일이 정확하게 작성되었는지 확인한다.

ex) named-checkzone my.local my.local.db

ex) named-checkzone 0.168.192.in-addr.arpa rev.0.168.192.in-addr.arpa


그 후 named 명령어를 입력하면, DNS 서버가 켜진다.


host 컴퓨터에선, DNS 서버로 192.168.0.101을 사용하게 한 후, DNS 서버가 잘 기능하는 지 테스트했다.

telnet ns.my.local, ftp ns.my.local등의 명령어로 DNS 서버에 등록된 도메인으로 IP를 잘 찾아 접속하는 지 확인했고,

내부 도메인이 아닌 경우를 테스트 하기 위해 google 등의 일반 사이트에 웹 브라우저를 사용해 접속해보았다.

구축 환경 : VirtualBox / ubuntu 14.04 LTS

(17.11.29 VirtualBox가 아닌 환경에서 테스트 완료)


ubuntu에 telnet과 ftp 서버 구축을 하기 위해, 소스 패키지를 빌드하여 설치하였다.

여태 많은 시도를 해봤는데, 항상 같은 소스 패키지를 받았던 게 문제였나보다. 버전은 달리 해봤지만..

계속 netkit-telnet, netkit-ftp를 받아서 시도했는데 항상 이것저것 에러가 뜨면서 빌드가 되지 않았다.

(vsftpd도 시도 했었는 지는 기억이 나지 않음)

그러다가, 마지막이다! 하는 맘으로 inetutils라는 소스 패키지를 받게 되었다.

https://www.gnu.org/software/inetutils/ 에 올라온 설명에 따르면,

inetutils는 telnet client/server, ftp client/server, rsh client/server 등의 보편적인 네트워크 프로그램들의 모음이라고 한다.

그래서, 이 패키지를 설치하면 telnet도 ftp도 설치할 수 있다.

telnet 설치하고 다음에 ftp도 따로 설치하려고 했는데 의도치 않게 한꺼번에 하게 되었다.


inetutils 소스 패키지는 위 링크에서도 받을 수 있지만 나는,

https://packages.ubuntu.com/source/trusty/inetutils

여기서 다운 받았다.


다운 받은 압축 파일을

tar -xvJf inetutils_1.9.2.orig.tar.xz

명령어를 사용해 압축 해제한 후, inetutils-1.9.2 디렉터리로 이동하여

./configure

명령어를 사용해 빌드에 필요한 프로그램을 확인했다. 나의 경우엔 따로 필요한 프로그램이 없어서,

make

명령어를 이용하여 빌드를 한 후,

make install

명령어로 설치해주었다.


설치하고 나니 ftp와 telnet 클라이언트는 그냥 ftp, telnet 명령어로 실행이 되었는데

서버의 데몬을 켜는 법을 몰라서 정말 한참 헤매다가 겨우 찾아냈다.

설치를 하고 나면 inetutils-1.9.2 디렉터리에 있는 telnetd와 ftpd 디렉터리 안에

executable 파일이 생긴다는 것을 몰랐던 것이다..

ftpd의 standalone 데몬이기 때문에, ftpd 디렉터리로 이동하여

ftpd --daemon

명령어를 사용하면 데몬이 켜진다.

netstat -ano | grep 21

명령어를 사용하면 포트가 열렸는지 확인할 수 있고, 그 후

ftp localhost 명령어를 사용하거나, 파일질라를 사용하여 접속 테스트를 할 수 있다.


telnetd의 경우, 슈퍼데몬 xinetd를 사용해야 하기 때문에

/etc/xinetd.conf 파일에,

service telnet

{

disable = no

flag = REUSE

socket_type = stream

wait = no

user = root

server = [telnetd executable 파일의 절대 주소. 나의 경우엔 /home/testuser/inetutils-1.9.2/telnetd/telnetd]

log_on_failure += USERID

}

를 추가한 후, (apt-get으로 telnet을 설치했을 땐, server = /usr/sbin/in.telnetd 라고 썼었다.)

service xinetd restart

명령어로 xinetd를 재시작해서 23번 포트를 열어주었다.

netstat -ano | grep 23

명령어를 사용해 포트가 열렸는지 확인한 후,

telnet localhost 명령어를 사용하거나, PuTTY를 사용하여 접속 테스트를 할 수 있었다.


(inetutils 패키지의 telnet과 ftp를 사용한 경우, 별다른 설정 없이 root 로그인이 가능했다.)

리눅스 주요 디렉토리의 종류와 특징



/

최상위 디렉토리 (루트 디렉토리)


/bin

실행 파일들이 모여져있는 디렉토리

cp, ls, mv 등과 같은 기본적인 명령어들의 실행파일이 존재하며,

명령어를 입력하면 bin 디렉토리 안의 해당 프로그램이 실행된다.


/sbin

시스템 관리자용 명령어가 저장되어 있는 디렉토리


/home

사용자의 홈 디렉토리. 예를 들어 testuser라는 유저가 있다면, /home/testuser가 이 사용자의 홈 디렉토리다.


/tmp

프로세스 진행 중 발생하는 임시 파일들이 저장되는 작업 디렉토리로, 모든 사용자가 공동으로 사용한다.


/lib

부팅과 시스템 운영에 필요한 공유 라이브러리 파일 및 커널모듈파일들이 저장된 디렉토리


/usr

시스템이 아닌 일반 사용자들이 주로 사용하는 디렉토리로, 각종 실행프로그램이나 매뉴얼 등을 포함한다.


/etc

시스템의 거의 모든 설정파일이 존재하는 디렉토리


/var

내용이 수시로 변경될 수 있는 변수를 담고 있는 파일들이 위치하는 디렉토리


/dev

시스템 디바이스 파일을 저장하고 있는 디렉토리

'Ubuntu > Etc' 카테고리의 다른 글

Ubuntu 운영체제의 /etc/securetty 파일 / tty와 pts의 차이점  (0) 2017.10.23

파일 및 디렉터리의 허가권


먼저 파일 및 디렉터리의 허가권을 확인하기 위해선,

ls -l [파일 또는 디렉토리의 이름] 명령어를 사용해 속성을 확인해야한다.

명령어를 사용하면 파일 유형(-, d) 뒤에 'rwxr-xr--' 같은게 표시될 것이다. 이게 파일 허가권 정보다.


'r'은 read, 'w'는 write, 'x'는 execute의 약자이며,

맨 앞 3개는 소유자, 중간 3개는 그룹, 마지막 3개는 그 외 사용자의 파일 접근 권한을 의미한다.

rwxr-xr--은 소유자는 읽고 쓰고 실행할 수 있으며,

그룹은 읽고 실행할 수 있되 쓰지는 못하고, 그 외 사용자는 읽기만 할 수 있음을 의미한다.


허가권은 숫자로도 표현할 수 있는데, 먼저 2진수로 표현한 후 

10진수로 바꿔준 것이다. (ex) rwx -> 110 -> 7 / r-x -> 101 -> 5 / r-- -> 100 -> 4)


허가권 변경 명령어

chmod [옵션] [허가권] [파일 또는 디렉토리의 이름]

'-R' 옵션: 디렉터리와 파일들의 권한을 재귀적으로 모두 바꿈

ex) chmod -R 777 /home/test

-> 디렉토리와 그 밑 모든 폴더 및 파일을 사용자, 그룹, 그 외 사용자 모두가 읽고 쓰고 실행할 수 있게 함



파일 및 디렉터리의 소유권

소유권은 파일을 소유한 사용자와 그룹을 의미한다


소유권 변경 명령어


chown [사용자 이름][.그룹 이름] [파일 또는 디렉토리의 이름]

파일 또는 디렉토리를 소유한 사용자를 변경할 때나, 파일 또는 디렉토리를 소유한 사용자와 그룹을 함께 변경할 때 사용한다.

ex) chown testuser.testgroup test -> test의 소유자를 testuser로 변경하고, 파일을 소유한 그룹을 testgroup으로 변경함


chgrp [그룹이름] [파일 또는 디렉토리의 이름]

파일 또는 디렉토리를 소유한 그룹만 변경할 때 사용한다.

'Ubuntu > 명령어' 카테고리의 다른 글

vi 에디터 명령어 정리  (0) 2017.10.25
Ubuntu 압축 풀기 - tar 명령어  (0) 2017.10.16
Ubuntu 운영체제의 apt-get 명령어 사용법  (0) 2017.10.16

몇년 전에 리눅스를 사용하면서 vi 에디터 명령어를 조금 외웠었다.

그런데 오랜만에 다시 하려니까 기억나는 건 :q!... :wq.... i.... 딱 이 세가지.

Putty로 원격지 서버에 접속해서 편집할 땐 저거만 알아도 별 무리가 없었는데,

직접 Ubuntu OS를 깔고 vi 에디터를 사용하려니 저걸론 부족해서 조금 더 찾아봤다.

전부 다 정리하긴 무리가 있고, 자주 사용하게 되는 것들만 정리해봤다.


vi Tutorial Editor Modes

출처: http://www.livefirelabs.com/unix_tip_trick_shell_script/unix_operating_system_fundamentals/vi-tutorial-part-1.htm

먼저, 사용법을 간략하게 표현한 표부터 첨부하겠다.


라인 명령 모드(Last line Mode)로 바꾸기 위해선 먼저 :를 눌러야한다.

Enter키를 누르면 다시 명령 모드로 돌아올 수 있다.

입력 모드로 바꾸기 위해선 i, a 등이 사용되는데 밑에 정리하겠다.


라인 명령 모드에서,

w는 저장, q는 종료키라고 생각하면 된다.

:w를 누르면 편집한 내용이 저장 되고 :q를 누르면 종료된다.

:wq를 누르면 저장 후 종료, :q!를 누르면 편집 내용을 무시하고 종료할 수 있다.

vi 에디터를 열 때, 파일명을 지정하지 않았다면 :w 뒤에 원하는 파일명을 입력하면 된다.


다음은 명령 모드에서 입력 모드로 전환하는 키다.

i

 현재 커서의 위치부터 입력

I

 현재 커서 줄의 맨 앞에서부터 입력 

a

 현재 커서의 위치 다음 칸부터 입력 

A

 현재 커서 줄의 맨 마지막부터 입력 

o

 현재 커서의 다음 줄에 입력

O

 현재 커서의 이전 줄에 입력 

 현재 커서 위치의 한 글자를 지우고 입력 

S

 현재 커서의 한 줄을 지우고 입력


명령 모드에서 커서를 이동할 때 사용하는 키다.

h

 커서를 왼쪽으로 한 칸 이동

j

 커서를 아래로 한 칸 이동

k

 커서를 위로 한칸 이동

l

커서를 오른쪽으로 한 칸 이동 

ctrl+F

 다음 화면으로 이동 

ctrl+B

 이전 화면으로 이동 

^

 현재 행의 처음으로 이동 

$

 현재 행의 마지막으로 이동 

gg

 제일 첫 행으로 이동 

G

 제일 끝 행으로 이동 

[n]G

 해당 숫자(n)의 행으로 이동 

:[n]+Enter

 해당 숫자(n)의 행으로 이동 


명령 모드에서 삭제, 복사, 붙여넣기와 관련된 키다.

 현재 커서가 위치한 글자 삭제

X

 현재 커서가 위치한 앞 글자 삭제 

dd

 현재 커서의 행 삭제 

[n]dd

 현재 커서부터 숫자(n)만큼의 행 삭제 

yy

 현재 커서가 있는 행을 복사 

[n]yy

 현재 커서부터 숫자(n)만큼의 행을 복사

p

 복사한 내용을 현재 행 이후에 붙여넣기

P

 복사한 내용을 현재 행 이전에 붙여넣기


명령 모드에서 문자열을 찾는 키다.

 /[문자열]+Enter

 해당 문자열을 찾음(현재 커서 이후)

n

 찾은 문자 중에서 다음 문자로 이동


이 외에도 라인 명령 모드에서

:%s/[기존문자열]/[새문자열] 을 사용하면 문자열을 치환할 수 있고,

:set number 를 입력하면 vi 에디터의 앞에 행 번호가 표시된다.



Ubuntu에서 소스 패키지로 Samba를 빌드하여 설치했다.


1. # apt-get install acl attr autoconf bison build-essential \

  debhelper dnsutils docbook-xml docbook-xsl flex gdb krb5-user \

  libacl1-dev libaio-dev libattr1-dev libblkid-dev libbsd-dev \

  libcap-dev libcups2-dev libgnutls-dev libjson-perl \

  libldap2-dev libncurses5-dev libpam0g-dev libparse-yapp-perl \

  libpopt-dev libreadline-dev perl perl-modules pkg-config \

  python-all-dev python-dev python-dnspython python-crypto \

  xsltproc zlib1g-dev

먼저 위 명령어를 통해, 의존성이 있는 패키지들을 설치해준다.

Ubuntu 14.04 이상의 버전에선 libgnutls-dev가 libgnutls28-dev으로 대체되었다고 하는데..

깜빡하고 그냥 돌렸는데 별다른 문제는 없었다.


2. samba.org에서 소스를 다운 받는다. (Releases에서, Current stable relase에 Samba x.y.z (gzipped)를 다운)


3. tar -xvzf [다운 받은 압축 파일명] 

위 명령어를 사용해 압축을 푼다.


4. ./configure -> make -> sudo make install

압축이 풀리고 생긴 디렉터리 안으로 이동해 위 명령어를 차례로 사용하면 설치가 완료된다.

./configure 명령을 치니, no와 not found가 떠서 걱정했는데 'configure' finished successfully라고 무사히 나왔다.

make와 make install에는 다소 시간이 걸린다. make를 할 시에도 warning이 조금 뜨나 error는 뜨지 않아 성공적으로 완료되었다.


5. vi /usr/local/samba/etc/smb.conf

[testuser]

comment = samba directory

path = /home/testuser/samba

valid user = testuser

public = yes

writable = yes

위 내용을 configuration 파일에 추가한다.


6. ./smbpassword -a testuser

Samba를 설치 했던 디렉터리 안의 bin 디렉터리로 이동하여

위 명령어로 valid user에 입력해둔 Samba 유저를 생성한다.


7. ./smbd

위 명령어로 데몬 실행 후 445, 139 포트가 열렸는지 확인한다.



윈도우에서 테스트할 때, 실행창에 \\[Samba Server IP] 를 입력 하면 된다.

(path에 입력한 디렉터리의 소유권, 허가권에 유의)


참고: https://wiki.samba.org/index.php/Build_Samba_from_Source

(http://www.groundcontrol.com/galileo/ch5-ethernet.htm을 번역한 글입니다.)


이더넷 케이블을 구매하는 것은 꽤나 비싸고, 미리 만들어진 길이는 항상 사용자의 요구를 충족시키진 못한다.

벌크 이더넷 케이블 (Category 5e) 한 상자와 RJ45 커넥터가 있다면 이더넷 케이블을 만드는 것은 쉽다.

(Category 6 케이블을 사용해도 된다.)


이더넷 케이블의 종류


Straight Through

Standard Ethernet

Straight Through 이더넷 케이블은 거의 모든 목적으로 쓰이는 표준 케이블로, 주로 Patch cable이라고 불린다.

위 그림에 보이는 것처럼 색상의 순서를 맞추는 것이 좋다.

초록색 와이어들은 다른 와이어들과 달리 서로 붙어 있지 않다는 것을 유의하자.

이런 구성은 와이어를 더 오래 사용할 수 있도록 한다.


Crossover

Crossover Cable

Crossover 이더넷 케이블의 목적은 한 컴퓨터와 다른 컴퓨터나 기기를

라우터, 스위치 혹은 허브를 통하지 않고 바로 연결할 수 있도록 한다.



이더넷 케이블 만들기


잘려진 케이블의 피복을 끝에서 2.5cm 정도 잘라낸다.

와이어들을 풀고, 비슷한 색상끼리 짝 짓는다.

손가락으로 와이어들을 잡고, 보이는 것처럼 쫙 펴준다.

색상 순서를 바로 잡는게 중요하다.

가위를 사용해 8개의 와이어들을 1.3cm의 길이로 반듯하게 자른다.

조심스럽게 8개의 와이어들을 커넥터에 밀어 넣는다.

파란색 피복의 위치를 체크하자. 또한 모든 와이어들이 끝까지 가는 지 확인하자.

위에서 본 모습. 모든 와이어들이 안에 들어가 있다. 짧은 와이어는 없다.

잘못된 방법 - 파란색 피복이 커넥터 안에 들어가지 않아 제자리에 고정되어 있지 않다.

와이어들이 너무 길다. 와이어들은 잘려진 피복에서 1.3cm 정도만 나와있어야 한다.

잘못된 방법 - 와이어들이 커넥터의 끝에 닿지 않았다.

Criming Ethernet

커넥터를 이더넷 클림퍼 안에 조심스럽게 넣고 핸들을 꼭 누른다.

커넥터의 구리로 된 splicing tab들이 8개의 와이어들에 각각 통과될 것이다.

또한 파란 피복이 커넥터에 타이트하게 고정된다.

크림퍼에서 케이블을 꺼내면, 케이블을 사용할 준비가 끝난다.

Ethernet Repeat Steps

표준 'Straight Through' 케이블을 만드는 경우, 반대편에도 위와 같은 작업을 반복한다.

Crossover 케이블을 만드는 경우, 반대편을 작업할 때, 와이어의 색상 배치를 위의 Crossover 사진의 우측과 같이 해준다.

Ethernet Cable Tester

케이블을 설치하기 전에 테스트를 해본다. 이더넷 케이블 테스트기를 사용하면 좋다.


* CAT-5, CAT-5e 또는 CAT-6 이더넷 케이블의 최대 길이는 100미터다.

+ Recent posts