'FTP'에 해당되는 글 3건
- 2015.03.05
1. DFS 분산 파일 시스템
[ 분산 파일 시스템(distributed file system)_네임스페이스 문제 ]
# 시나리오 : itbank 회사에 파일서버를 2대를 운영 중에 있었습니다. 파일서버 이용자
들은 2대의 파일서버를 이용할 때 2대의 IP를 번갈아 가며 이용해야 하기에 불편함을
가지고 있었습니다. 해서 시스템 관리자인 여러분은 물리적으로 상이한 2대의 시스템의
공유 자원을 논리적으로 하나의 공유 디렉토리로 묶기로 결정.
# DFS 네임스페이스를 이용하여 2대의 파일서버를 논리적으로 하나의 영역으로 묶어
서비스하세요.
1. Server1 파일 서버 구축(공유)
- 1G 하드디스크 2개 추가 후 X, Y 드라이브로 문자 할당
- X 드라이브 공유 ( administrator 모든 권한 )
) X 드라이브 않에 Server1_X.txt 생성
- Y 드라이브 공유 ( administrator 모든 권한 )
) Y 드라이브 않에 Server1_Y.txt 생성
2. Server2 파일 서버 구축(공유)
- 1G 하드디스크 2개 추가 후 X, Y 드라이브로 문자 할당
- X 드라이브 공유 ( administrator 모든 권한 )
) X 드라이브 않에 Server2_X.txt 생성
- Y 드라이브 공유 ( administrator 모든 권한 )
) Y 드라이브 않에 Server2_Y.txt 생성
3. Server3 DFS Server 구축
- 네임 스페이스 이름 : itbank
- DFS 디렉토리 트리 : itbank\server1\X (Server1의 X 드라이브를 대상으로)
\Y (Server1의 Y 드라이브를 대상으로)
itbank\server2\X (Server2의 X 드라이브를 대상으로)
\Y (Server2의 Y 드라이브를 대상으로)
===========================================================
확인 :
Client1에서 Server3의 공유자원 접근 후 server1, server2 디렉토리가 모두 보이나 확인
[Tip]
1) 서버관리자 - 역할 추가 - 파일 서비스 - 분산 파일 시스템
2) ip 주소 적고 찾으면 됨
2. FTP
[방법]
관리도구 - 역할 추가 - IIS - FTP 추가 설치
IIS 관리자 - 사이트 - Default 웹서버 중지
- 사이트 우클릭 - FTP 사이트 추가 - 원하는 설정 적용 (기본 연결로 설정)
고급 보안이 포함 된 방화벽 - tcp의 20, 21, 1025-65535 포트 개방
[Client 접속 방법]
cmd - ftp ftp서버IP 입력
[ FTP 기본 문제 ]
# Server1 User 추가 : test1, test2
1. Server1에 FTP 서버 구축
- C:\
- SSL 인증 없음
- test1 읽기/쓰기 권한
- test2 읽기 권한
- FTP 메세지
) 배너 : 오셨습니까.
) 시작 : 파일 전송 서비스를 시작합니다.
) 끝내기 : 파일 전송 서비스를 종료합니다.
- FTP 디렉토리 목록 스타일 : UNIX
확인 :
# Server2에서 FTP 접속
- test1 : 파일 업로드 및 다운로드 가능하면 성공
- test2 : 파일 다운로드 가능하면 성공. 업로드는 불가능
# 배너 메세지 확인
# 디렉토리 목록 스타일 UNIX 인지 확인
[ FTP(가상 디렉토리 및 홈 디렉토리) 문제 ]
# Server1 FTP Server
# Local User 추가 : samadal, ddasig
# C:\LocalUser 디렉토리 생성
# C:\LocalUser\samadal 디렉토리 생성 후 디렉토리 안에 samadal.txt 생성
# C:\LocalUser\ddasig 디렉토리 생성 후 디렉토리 안에 ddasig.txt 생성
# C:\전역 디렉터리 생성 후 디렉토리 안에 전역입니다.txt 생성
1. FTP Server 설정
- SSL 인증 없음
- 모든 사용자 : 읽기/쓰기
- FTPROOT 디렉토리 : C:\LocalUser
- FTP 사용자 격리 : 사용자 이름 실제 디렉터리(격리 안 함)
- 가상 디렉토리 : C:\전역
별칭 : itbank
확인 :
# samadal 계정 FTP 접속 후 상위 디렉토리로 이동 가능시 성공
# ddasig 계정 FTP 접속 후 상위 디렉토리로 이동 가능시 성공
# 두 계정 모두 itbank라는 가상 디렉토리 접근 가능하면 성공
[ FTP(접근통제 및 계정 홈디렉토리) 문제 ]
# Server1 FTP Server
# Local User 생성 : ddasig, samadal
# C:\LocalUser 않에 ddasig, samadal 디렉토리 생성
1. FTP Server 설정
- SSL 인증 없음
- 지정되지 않은 클라이언트에 대한 액세스 : 거부
허용 항목 : 100.100.100.130(Client1)
- 사용자 이름 디렉터리에서 시작(격리)
- 모든 사용자 : 읽기/쓰기 권한 부여
- FTPROOT 디렉토리 : C:\
확인 :
# Server2에서 ftp 서버 접속 차단되면 성공
# Client1에서 ddasig, samadal 접속하여 접속된 경로가 어딘지 확인(pwd)
# 자신의 홈 디렉토리에서 상위 디렉토리(FTPRoot 디렉토리)로 이동 안 되면 성공
3. FTPS
[일반 FTP 의 보안상 취약점]
Wireshark 설치 - 랜카드 설치 후 패킷 감시 시작
한글 내용의 txt 파일 다운로드 시 FTP-DATA 라는 프로토콜로 해당 내용을 확인할 수 있다.
FTP DATA 를 아래쪽에서 눌러서 확인해보면 16진수로 나온다. FTP DATA 우클릭 - COPY - BYTE - Offset Hex
복사한 HEXA 코드를 프로그램 이용하여 디코딩 해보면 내용을 그대로 볼 수 있다.
즉 암호화가 되지 않아 스누핑 당했을 시 내용이 그대로 노출된다.
따라서 SSL 프로토콜을 이용하여 보안 및 무결성(변조 여부 확인)을 향상시켜줘야 한다.
하지만 리눅스에서 사용 시 Samba를 이용해야 하기 때문에 잘 사용하진 않는다.
[방법]
IIS 관리자 - HOSTNAME - 서버 인증서 - 자체 인증된 인증서 만들기 - 이름 넣고 확인
FTP 서버 - FTP SSL 설정 - 만들어 놓은 SSL 인증서 선택 - SSL 연결에 128비트 암호화 사용 - 적용
1) SSL 연결 허용 : SSL 해도 안해도 연결 허용
2) SSL 연결 필요 : SSL만 이용
FTP 의 바인딩 설정에서 IP 주소가 * 혹은 본인의 IP 인지 확인
[ FTPS 문제 ]
# 브릿지 설중 후 진행
1. Server1에 IIS 역할 추가(FTP 게시 포함)
2. 기본 웹 사이트 중지 또는 제거
3. FTP 게시 추가
- 사이트 이름 : 자유
- FTPRoot 디렉토리 : 자유
- 연결 바인딩 : 모든 IP
- 포트 21
- SSL 필요
- 기본 인증 : 모든 사용자 읽기/쓰기 권한
4. 인증서 제작
- IIS -> 서버 인증서 -> 자체 서명된 인증서 만들기
) 인증서 이름 : 자유
5. FTP SSL 인증서 선택 후 128비트 암호화
확인 :
리얼 PC에 FileZilla 실행 후 FTPS 서버 접속 후
인증서 받은 후 보안 통신 되는지 확인
4. Webserver
역할추가 - IIS 기본 설치 - Hostname - 사이트 - Default Web Site 제거
C:\inetpub\wwwroot 안에 IIS의 기본 페이지가 만들어져 있다. 안에 내용물 삭제
이 곳에 test.htm 파일을 생성
<title>정지웅</title><br>
<h1>안녕하세요</h1>
사이트 우클릭 - 웹 사이트 추가 - 원하는 설정 - 웹사이트 - 기본 문서 - test.htm 설정 (위에부터 우선순위 있으며 필요 없는것 삭제)
(포트번호 바꿨다면 방화벽에서 해당 포트 개방 필요)
Client에서 웹으로 접속해보면 내가 띄우고자 하는 페이지가 나온다.
'Study > WinServer' 카테고리의 다른 글
[36] DNS 동적 업데이트 및 이중화 (0) | 2015.05.07 |
---|---|
[35] DHCP 인증 with AD (0) | 2015.05.07 |
[34] 메일서버 + VPN 문제 (2) _ VPN 설정, DHCP Local 멀티넷, DHCP 원격 멀티넷 (0) | 2015.05.07 |
[33] 메일서버 + VPN 문제 (1) _ Nmail 설치 (0) | 2015.05.07 |
[32] DNS 전달자, 조건부 전달자 (0) | 2015.05.07 |
- 2014.12.11
1. vnc
[vnc 안될 때 대처 방법]
1) samadal(내가 사용하려는) 계정으로 로그인하여 vncpasswd 설정
2) /etc/sysconfig/vncserver 설정
18 # VNCSERVERS="2:myusername"
19 # VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -localhost"
20 VNCSERVERS="1:root 2:samadal"
21 VNCSERVERARGS[1]="-geometry 800x600"
22 VNCSERVERARGS[2]="-geometry 800x600"
3) /etc/rc.d/init.d/vncserver restart
그래도 안될 시 4) 후 다시 시도
4) # killall -9 Xvnc and # rm -rf /tmp/.X*(or # reboot)
[telnet, ssh, vnc 비교]
telnet ssh vnc
보안 취약 강함 취약
속도 빠름 빠름 느림
그래픽 X X O
환경 TUI CLI(=TUI) GUI
프로그램 os기본 Linux 기본 P/G 별도설치
2. vnc with ssh
(위 까지의 설정이 완료 됬다는 가정 하에 진행한다.)
위에서 설정한 vnc는 보안에 취약하다. 이 점을 극복하기 위해 ssh를 이용한 vnc를 설명하려고 한다.
아래 설명하는 방법은 ssh tunneling 이라는 기술이며 이 경우 말고도 ftp 등 다양한 방법으로도 사용될 수 있다.
A PC에서 B PC로의 원격 접속을 SSH로 연결할 때의 원리는 다음과 같다.
A와 B 사이의 SSH 통로
A PC 서비스 --------------------------------> B PC 서비스
1) A와 B 사이의 SSH 연결
Windows에서는 putty 등의 프로그램, Linux에서는 자체 ssh 명령어로 A와 B사이를 SSH로 연결해둔다.
이 때 주의할 것은 일반적인 연결이 아닌 옵션을 통한 연결을 해야한다는 것이다.
여기서 주는 옵션은 A PC의 특정 포트와 B PC의 특정 포트를 연결하는 것이다. 여기선 각각 (a포트, b포트라 하겠다.)
putty 혹은 자체 프로그램으로 이러한 옵션이 설정되있는 SSH를 실행하여 로그인 한다.
2) 프로그램 실행
A PC의 a포트와 B PC의 b 포트가 ssh로 연결되었다.
이제 A PC의 실행하려는 프로그램에서 목적지 주소를 localhost:a 로 주면 이미 만들어진 ssh 통로를 따라
데이터가 암호화 된 상태로 B PC의 b 포트에 도착, 암호화를 풀어 B PC에서 정상 작동하게 되는 것이다.
[in Windows]
대표적인 프로그램인 putty를 예로 들겠다.
Remote 될 PC의 연결 설정을 load 한다.
좌측 메뉴의
Connention - SSH - X11 - Enable X11 forwarding 체크
- Tunnels - Source port : localhost에 연결될 포트(a) 입력
- Destination : serverip:port
Session - Save
설정한 뒤 Open을 눌러 연결 해놓은 상태에서 vncviewer 프로그램 실행하여 serverip:포트(a) 를 입력하면 된다.
[in Linux]
# ssh -NfL 3020:localhost:5901 -N -f -l id 192.168.1.1
-Nf : SSH 연결 하지 않고 Background 에서만 연결 되어 있도록 설정. 원격 커맨드 명령을 진행하려면 # ssh id@ip 명령어 입력.
-L 3020:localhost : localhost 의 5901번 포트를 ssh로 열어두겠다는 뜻.
5901 : Remote 될 PC에서 사용중인 포트번호.
-l id : ssh 인증 위한 id
192.168.1.100(sshserver.mydomain.com) : Remote server ip
vncview program 실행하여 localhost:3020 으로 접속.
[trouble shooting]
1) -bash: ssh: command not found
openssh clients 설치가 안되서 그렇다. yum install -y openssh clients 진행.
3. ftp
ftp : File Transfer Protocol의 약자로 TCP/IP 환경에서의 파일 전송용 Application Protocal 이다.
[종류]
- 시스템에 등록되어 있는 사용자들을 위한 FTP Service
- 익명의 모든 사용자에게 개방하는 익명(Anomyous) FTP Service
[vsftpd 서버 설정]
아래 파일들이 핵심 파일들이다.
/etc/vsftpd/vsftpd.conf : vsftpd의 메인 환경 설정 파일
/usr/sbin/vsftpd : vsftpd의 실행파일
/etc/rc.d/init.d/vsftpd : vsftpd의 데몬파일
[/etc/vsftpd/vsftpd.conf]
vsftpd 설치가 우선이지만 내가 실습하는 환경에선 이미 설치되어있다.
실습 전에 백업하는 습관 갖기
# cp /etc/vsftpd/vsftpd.conf /backup/
* 익명연결
웹 브라우저에 ftp://자신의ip 혹은 alftp 로 익명연결하면 연결된다.
이 것은 아래에 것으로 설정 변경
12번줄 YES -> no
# vi /etc/vsftpd/vsftpd.conf
12 anonymous_enable=no
13 #
설정 변경 뒤에는 재시작 해야한다.
# /etc/rc.d/init.d/vsftpd restart
이젠 웹으로 시도 시 암호창을 띄우게 되고, alftp로는 접속이 안된다.
이젠 계정을 입력해서 접속하면 된다.
samadal 계정으로 접속 하면 업로드, 다운로드, 삭제 등이 가능하다.
* write 권한 no
ftp로 보는 것과 다운로드만 되고 쓰는 것(업로드 및 삭제, 수정)은 안되게 설정 변경
18번줄 YES -> no
# vi /etc/vsftpd/vsftpd.conf
18 write_enable=no
19 #
* 모든 유저 접속 막기
/etc/passwd 파일에 존재하는 사용자들의 접속을 막는 것 설정
15번줄 Yes -> no
# vi /etc/vsftpd/vsftpd.conf
15 local_enable=no
16 #
* 익명사용자 권한 부여
익명 접속자에게 업로드 및 디렉터리 생성을 가능하게 하는 설정 (삭제는 불가)
27, 31번줄 : 주석 해제
# vi /etc/vsftpd/vsftpd.conf
27 anon_upload_enable=YES
28 #
29 # Uncomment this if you want the anonymous FTP user to be able to create
30 # new directories.
31 anon_mkdir_write_enable=YES
하지만 역시나 실패. pub 디렉터리에 o+w 권한을 줘야할 것 같다.
아래처럼 권한을 줘가면서 테스트 해보자.
/var/ftp/ /var/ftp/pub/
755 755 - 접속 가능, 업로드 및 다운로드 불가
757 - 접속 가능, 업로드 및 다운로드 가능
757 755 - 접속 불가
757 - 접속 불가
익명의 ftp 서버에선 /var/ftp/ 가 최상위이다.
그런데 익명의 사용자에게 /vaf/ftp/ 에 7 권한을 준다는 것은 root 권한이나 마찬가지다.
그렇기 때문에 접속 자체를 막는 것이다.
일부 사용자의 경우 SELinux 때문에 실패 할 수도 있다. (나는 iptables 서비스를 꺼두었다. 미니멀에선 기본설정이다.)
그 때엔 아래 명령어로 해결 가능할 수도 있다.
# setsebool -P ftp_home_dir=1
# setsebool -P allow_ftpd_full_access on
# setsebool -P ftp_home_dir on
* umask
업로드 및 다운로드 시 파일에 대한 권한 설정 - umask
21 # if your users expect that (022 is used by most other ftpd's)
22 local_umask=022
23 #
* 접속 메세지
ftp 접속 시 메세지를 띄울 때 사용. 로그인하는 계정의 $HOME 에 .message 로 문서파일 만들면 됨
Alftp 의 경우 환경설정에서 알림창에 관한 설정 해줘야 함
35 dirmessage_enable=YES
36 #
* Active/Passive Mode 설정
ftp 서버는 별도의 데이터 전송 포트를 이용하는데 이 때 사용할 포트번호를 지정하는 옵션
42 connect_from_port_20=YES
43 #
Active : Client가 접속하고 싶은 포트로 접속
Passive : Server에서 지정해주는 포트로 접속하라고 알려줌
* log 기록 남기기(xferlog)
기본 저장 위치는 /var/log/xferlog 이고 저장되는 파일 명 변경 원할 때 설정
51 # WARNING - changing this filename affects /etc/logrotate.d/vsftpd.log
52 #xferlog_file=/var/log/xferlog
53 #
[log 기록 분석 실습]
(p287 ~ 288 참조)
dvd/Packages/mysql* -> ~samadal/ 로 복사
Alftp 로 d: 에다가 다운로드
~samadal 안에 있는 mysql* 삭제
다시 d:에 있는 mysql*을 ~samadal로 업로드
# vi /var/log/xferlog
Thu Dec 11 14:29:03 2014 1 192.168.1.1 9221512 /export/home/samadal/mysql-server-5.1.73-3.el6_5.i686.rpm b _ o r samadal ftp 0 * c
Thu Dec 11 14:29:03 : 접근시간
1 : 작업시간
192.168.1.1 : 접속 ip
9221512 : 용량
/export/ho~ : 파일명
b:바이너리파일
일반 문서파일: a(아스키)
o:outgoing(=downlod)
i: incoming(=upload)
r samadal : /etc/passwd 에 있는 samadal 로 접속
a ? : 익명연결
ftp : ftp로 접속
0 : 인증방식, None (1 = rfc931)
(rfc : 접속하는 방법들을 문서화, 931 : 일련번호)
c : complete(성공)
i : incomplete(실패)
* vsftpd 방식 log
기본(xferlog)방식 : upload & download 만보여짐
xferfog 표준 포맷은 사용자의 로그인, 디렉터리 생성 등의 로그를 남기지 않지만 vsftpd 로그 기록 방식은 이를 포함한 보다 상세한 로그를 남길 수 있다.
56 xferlog_std_format=YES
57 #
no 로 바꾸고 재시작, 업로드 및 다운로드 진행
# vi /var/log/vsftpd.log
Thu Dec 11 14:47:16 2014 [pid 7515] [samadal] OK DELETE: Client "192.168.1.1", "/export/home/samadal/mysql-server-5.1.73-3.el6_5.i686.rpm"
=> vsftp 방식으로 로그 기록 남김
* idle_session_timeout
사용자가 ftp 접속 후 일정 시간 동안 아무런 작업을 하지 않으면 자동으로 접속을 끊게 되는데 이때 설정하는 시간. 단위는 초
58 # You may change the default value for timing out an idle session.
59 #idle_session_timeout=600
* date_connection_timeout
ftp 서버로부터 데이터 전송이 끝난 후에 또 다른 데이터의 전송이 이루어지지 않을 경우의 종료 대기시간. 단위는 초
61 # You may change the default value for timing out a data connection.
62 #data_connection_timeout=120
* 최상위로의 폴더 탐색 금지, 접근한 곳 외에 대한 접근 금지
접속하면 최상위로 접근하여 어디든 갈 수 있다.
거기에 /etc/passwd 파일 등의 것을 다운로드 가능하다. - 보안상 취약
접근한 곳 외에 접근 금지하게끔 하는 것, vsftpd 서버 설정 중 가장 먼저 해야 할 것이다.
96번줄 : 주석 풀기
95 # users to NOT chroot().
96 #chroot_local_user=YES
97 #chroot_list_enable=YES
98 # (default follows)
99 #chroot_list_file=/etc/vsftpd/chroot_list
100 #
하지만 가끔은 필요한 계정도 필요할것.
97과 99가 한 쌍으로 움직여 해당 기능 실행한다.
[실습]
위 설정 파일에서 97, 99번줄 주석 해제
user1 계정 생성
아직 데몬 재시작 안했다. alftp 통해 user1 으로 접속해보자
하지만 접속이 안되는데, 그 이유를 보니 chroot_list 를 읽을수 없다고 뜬다.
# cat > /etc/vsftpd/chroot_list
samadal
으로 samadal 을 해당 리스트에 올리니 samadal 로 접속 시 최상위까지 다 보인다.
user1으로 해보니 역시 자기 홈 디렉터리뿐이 보이지 않는다.
* ftp를 xinetd(슈퍼 데몬) 관리 하에 두기
110번 줄을 no 로 바꾸면 xinetd 를 거쳐 접속하게 된다.
110 listen=YES
111 #
* 접근 금지 host 목록
# vi /etc/hosts.deny
데몬명:ip:allow(혹은 deny)
ex)
vsftpd:192.168.1.*:deny
all:all:deny <- 모든 프로그램에 대하여 거절, putty도 사용 불가
# vi /etc/hosts.allow 가 존재하며, 접근 허용하는 목록도 작성 가능하다.
기본적으로 막는 것이 우선 이지만 같은 ip를 allow나 deny 2군데 모두 쓰면 allow가 되어버린다. 그러니 deny 만 건드리는 것이 좋다.
[문제]
기본으로는 root의 ftp 접속이 막혀있다.
교재 참조하여 root의 ftp 접속을 허용해보자.
# vi /etc/vsftpd/user_list
# vi /etc/vsftpd/ftpusers
에서 root 앞에 주석 붙이면 된다.
거기에 root이니 모든 디렉터리 접근 가능하게 설정하자.
# vi /etc/vsftpd/chroot_list
루트가 구지 ftp 서버를 이용할 필요는 없으니 실습 후에는 루트에게 허락한 권한 모두 수거.
[vsftpd 추가 옵션]
* 익명 사용자 최대 전송 속도 제한
익명 계정 접근 시 다운로드할 수 있는 최대 전송속도. 0은 제한 없음이며 단위는 bps
anon_max_rate=0
* 로컬 사용자 최대 전송 속도 제한
로컬 계정 접근 시 다운로드할 수 있는 최대 전송속도. 0은 제한 없음이며 단위는 bps
local_max_rate=0
* 최대 접속자수 제한
최대 접속자수 지정 옵션, 접속할 수 있는 최대 client 수 제한
max_clicnets=0
* 접속 최대 횟수 제한
client 호스트당 접속할 수 있는 최대 회수 제한
max_per_ip=0
* 익명 사용자가 사용할 홈 디렉터리 지정
anon_root=/var/ftp
'Study > CentOS' 카테고리의 다른 글
[28] nfs(2), nfs auto mount, autofs(1) (0) | 2015.04.04 |
---|---|
[27] auto mount, 응급복구, nfs(1) (0) | 2015.03.28 |
[25] vnc(1) (0) | 2015.03.28 |
[24] openSSH, system-config-firewall, scp, sftp (0) | 2015.03.28 |
[23] xinetd, telnet, krb5-telnet (0) | 2015.03.28 |
[05] alias, touch, head, tail, more, less, nl, |(파이프), cat, ftp, date, clock, cal
| Study/CentOS 2015. 3. 27. 16:52- 2014.11.12 수업내용
※ Limadal_20141106_Class1_32bit 의 VMware 이미지.
root / .$hooni203
samadal / samadal
1. alias
[명령어 설명]
특정 문장 및 명령어에 대한 단축키 설정. 1회성으로 터미널 닫으면 없어짐
ex) alias 1='clear'
저장되어 있는 명령어의 목록 확인 : alias
※ ls -l : ll 으로 기본 설정되어있음.
※ alias에 저장 된 명령을 지울 때 : unalias [source]
ex) unalias 1
2. touch
[명령어 설명]
크기가 0이면서 현재 시간 정보가 있는 파일을 생성한다.
똑같은 명령어 쓰면 시간만 변경된 새 파일로 변경됨
기존에 있는 파일 이름을 쓰면 시간만 현재 시간으로 바뀜
touch [target]
-t [년월일시분] [target] // 파일의 시간 정보 변경 가능
ex)
alias 에 저장되어 있는 단축키 = ls -l
# ll
합계 1
-rw-r--r-- 1 root root 884 2014-11-12 12:59 inittab
# touch ./testfile
# ll
합계 1
-rw-r--r-- 1 root root 884 2014-11-12 12:59 inittab
-rw-r--r-- 1 root root 0 2014-11-12 13:00 testfile
다시 touch 하면 시간이 바뀜
# touch ./testfile
# ll
합계 1
-rw-r--r-- 1 root root 884 2014-11-12 12:59 inittab
-rw-r--r-- 1 root root 0 2014-11-12 13:01 testfile
파일에서 시간만 바뀜
# touch ./inittab
# ll
합계 1
-rw-r--r-- 1 root root 884 2014-11-12 13:02 inittab
-rw-r--r-- 1 root root 0 2014-11-12 13:01 testfile
touch -t 년월일시분 대상
# touch -t 199908200422 ./testfile
# ll
합계 1
-rw-r--r-- 1 root root 884 2014-11-12 13:02 inittab
-rw-r--r-- 1 root root 0 1999-08-20 04:22 testfile
3. head
[명령어 설명]
파일의 내용 중 처음부터 아래로 10줄 출력
head [option] [source]
-n(number) [source] : 처음부터 n개 출력
ex)
위에서 3개만 출력
# head -3 /etc/passwd
root:x:0:0:root:/root:/bin/ksh
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
4. tail
[명령어 설명]
파일의 내용중 마지막부터 위로 10줄 출력
tail [option] [source]
-n(number) [source] : 아래부터 n개 출력
ex)
# tail -3 /etc/passwd
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
samadal:x:500:500:madalgyo:/home/samadal:/bin/bash
5. more
[명령어 설명]
내용이 많은 파일을 화면단위로 끊어서 출력한다
엔터 : 1줄 씩 내림
스페이스 : 1페이지 씩 내림
more [source]
q : 종료
ex)
# more /etc/passwd
more을 단독으로만 쓰면 파일만 볼 수 있다.
따라서 목록을 보여주는 다른 명령어와 함께 사용해야 한다.
# ls -l /etc/ | more
합계 1740
drwxr-xr-x. 5 root root 4096 2014-10-30 01:52 ConsoleKit
-rw-r--r--. 1 root root 4439 2014-07-17 00:02 DIR_COLORS
-rw-r--r--. 1 root root 5139 2014-07-17 00:02 DIR_COLORS.256color
-rw-r--r--. 1 root root 4113 2014-07-17 00:02 DIR_COLORS.lightbgcolor
drwxr-xr-x. 5 root root 4096 2014-10-30 01:54 NetworkManager
drwxr-xr-x. 2 root root 4096 2014-10-30 01:54 PackageKit
-rw-r--r--. 1 root root 45 2014-02-12 21:04 Trolltech.conf
drwxr-xr-x. 6 root root 4096 2014-10-30 01:54 X11
drwxr-xr-x. 3 root root 4096 2014-10-30 01:54 abrt
drwxr-xr-x. 4 root root 4096 2014-10-30 01:57 acpi
--More--
more 명령어의 단점 : 앞 페이지를 볼 수 없는 단점이 있다.
6. less
[명령어 설명]
more은 앞쪽 재검색이 불가능한 반면 less는 재검색이 가능한 명령어이다.
엔터 및 k : 1줄 아래로
j : 1줄 위로
q : 종료
스페이스 : 1페이지 아래로
역시나 ls -l /etc/ | less 처럼 사용 가능하다.
※ more는 명령어, less는 프로그램 이다.
7. nl (number line)
[명령어 설명]
총 몇행인지 궁금할 때 사용하는 명령어
행 번호를 붙여 출력하라는 명령어.
ex)
# nl /etc/passwd | less
nl 역시 파일에만 쓸 수 있는 명령어지만 명령어 조합으로 디렉터리에도 사용 가능하다.
# nl /etc/
nl: /etc/: 디렉터리입니다
맨 위 합계 표시도 갯수에 들어가는 것 주의
# ls -l /etc/ | nl
8. | (파이프)
명령어 | 명령어 | 명령어 처럼 서브 명령어를 여러개 사용 가능.
파이프를 쓰면 맨 뒤에서부터 적용된다.
* 파이프를 사용 할 떄에는 명령어의 성격을 생각하며 사용해야 한다.
ex)
less가 작동하지 않음. nl로 행번호 붙여서 출력한 뒤에 less를 진행할 수 없기 때문.
# ls -l /etc/ | less | nl
9. cat
[명령어 설명]
파일 내용 "출력"
ex) cat /etc/passwd = cat < /etc/passwd
파일 내용 "입력"
ex) cat /etc/passwd > /testfile
파일 "생성"
ex) cat > ./test -> 내용입력 -> ctrl+d (정상종료)
* ctrl+c : 강제 종료, ctrl+z : 강제정지
파일 내용 "추가"
ex) cat >> ./test
아래쪽에 추가하여 기재 가능
파일 내용 "병합"
ex) cat ./a ./b > ./c)
a 밑에 b가 합쳐져서 c 만듬
행번호 붙여 cat 출력
# cat -n /etc/passwd
10. ftp 접속 (p183)
[실습 순서]
1) window에서 index.html 파일 생성 : d드라이브에서 파일 새로 만들기
2) 실행(win_key+r) -> cmd -> 드라이브 변경(d:)
3) ftp 리눅스ip 입력(ex. ftp 192.168.1.142)
4) 계정, password 입력 -> 오류시 quit 입력 // 기본적으로 root 는 ftp 사용 불가
5) login successful 메시지 확인
6) put [source] : 업로드 명령어 & get [source] : 다운로드 명령어
11. date, rdate
[명령어 설명]
date : 현재의 자신의 서버 시간을 확인하는 명령어.
rdate : 타임서버 관련 명령어
date [월일시분년] : 해당 시간으로 서버 시간을 변경
ex )
현재 시간 확인
# date
2014. 11. 12. (수) 14:56:39 KST
옵션 시간으로 내 서버 시간 변경
# date 082013201999
1999. 08. 20. (금) 13:20:00 KST
# date
1999. 08. 20. (금) 13:20:02 KST
time.bora.net 서버의 현재 시간 확인
# rdate -p time.bora.net
rdate: [time.bora.net] Wed Nov 12 14:59:35 2014
# date
1999. 08. 20. (금) 13:21:43 KST
time.bora.net 서버 시간으로 내 서버 시간을 맞춤
# rdate -s time.bora.net
# date
2014. 11. 12. (수) 15:00:45 KST
12. clock
[명령어 설명]
clock : 자세한 시간 보여줌. (nano second 까지)
ex)
# clock
2014년 11월 12일 (수) 오후 10시 00분 48초 -0.924519 seconds
13. cal (calendar)
[명령어 설정]
달력을 출력하는 명령어.
ex)
현재 시각 기준의 달력 출력. date 설정에 따라 바뀜
# cal
2015년 달력 출력
# cal 2015
1999년 08월 20일 달력 출력
# cal 20 08 1999
'Study > CentOS' 카테고리의 다른 글
[07] vi(2), 유용한 vi 명령어 메모 (0) | 2015.03.27 |
---|---|
[06] 명령어 find, shutdown, vi(1) & FTP 방화벽 설정 관련(집) (0) | 2015.03.27 |
[04] cp, mv, mkdir, rmdir, rm (0) | 2015.03.27 |
[03] Linux 명령어 구조, 절대경로vs상대경로, pwd, cd, ls, clear (0) | 2015.03.27 |
[02] Linux의 특징 및 Prompt의 구조, Putty 설정 팁 (0) | 2015.03.27 |