메뉴 건너뛰기

Hodol's Blog

Documents 삽질노트[20140422]

2014.04.22 23:28

Hodol 조회 수:9473

1. yum에 RPM fusion repository 추가하기

 Fedora에서 기본적으로 제공되는 yum repository에는 ffmpeg와 같은 것들이 없다. RPM Fusion repository를 이용한다.

 # rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm

 # yum install ffmpeg

 

2. yum 비공식 repository 추가하기

 위에서 rpmfusion을 소개하였지만, rpmfusion 외에도 비공식 저장소가 많다. 다음 사이트를 방문하면 자세한 과정을 알 수 있다.

 http://iambongsu.com/371

 

3. 업데이트로 인한 변경사항들을 몰라서 엎치락 뒤치락 하다 보면 설치할 필요가 없는 패키지들을 설치하게 된다. Uninstall을 하면 그만이겠지만, 문제는 의존성에 의해 설치된 패키지들은 언제, 어떻게, 왜 설치되었는지를 모르면 삭제해야할지 말아야할지 참 난감하다. 이를 해결하기 위해 뒤적거리다가 yum의 history 기능과 undo 기능으로 해결할 수 있음을 알았다. 

 

 # yum history list

 위 명령은 이제껏 내린 yum 명령으로 처리된 내용들의 기록을 볼 수 있다.

 

 # yum history info [숫자]

 [숫자]는 위 yum history list 로 출력되는 yum 명령 처리내역의 각 고유숫자이다.  각 처리 내역의 상세한 기술을 볼 수 있다. 자신이 과거에 입력한 yum 명령어가 포함되어 출력되는데 과거 yum 명령을 되짚어보는데 많은 도움이 되니 참고하도록 하자.

 

 # yum history undo [숫자]

 [숫자]가 나타내는 yum 명령을 취소한다. 패키지 삭제 뿐만 아니라, yum 명령으로 지운 패키지들을 재설치도 하니 참고하도록 하자. 물론, 의존성에 의해 설치된 패키지들도 알아서 삭제된다. 하지만 다음과 같은 사항은 어떻게 처리되는지 잘 모르겠다 : 서로 다른 두 개의 패키지 A, B가 다른 한 패키지 C에 의존하며, A를 B보다 먼저 설치했다고 하자. yum history undo 기능으로 A를 삭제했을 경우, C의 삭제 여부를 확인하지 않았다. (귀찮... 서버 하드도 너덜너덜해서 실험하기도 겁이 나느니라!)

 

# yum list installed [packageName]

설치된 패키지 목록 보기

 

참고 : http://lesstif.com/pages/viewpage.action?pageId=6979667

 

4. 

$ yum clean all

캐쉬된 데이터들을 모두 지운다.

 

5.
$ yum update

모든 패키지들을 업데이트한다.

 

5.5. 참고 사이트
http://egloos.zum.com/pelican7/v/3083901  

 

6. PHP 다운그레이드하기

 새로 업데이트를 한 PHP(버전 5.5.11)와 최신 XE가 맞질않아서 PHP를 다운그레이드 해야했다. http://scolor.tistory.com/39 를 참고하였다.

 # rpm --import http://repo.webtatic.com/yum/RPM-GPG-KEY-webtatic-andy

 # cd /etc/yum.repos.d/

 # wget http://repo.webtatic.com/yum/webtatic.repo

 # yum remove php [php와 관련된 패키지들]

 # yum --enablerepo=webtatic --exclude=php*5.5.11* php [앞에서 지운 패키지들]

 

7. 아파치가 업데이트 되면서 mod_scgi 모듈이 사라졌다. mod_scgi에 의존하는 rutorrent를 돌릴 수가 없었는데, 이 mod_scgi를 기능을 대신하여 proxy_scgi 모듈(맞나?)을 사용할 수 있다. 아파치에 기본으로 내장되어 있었다. 사용방법은 httpd.conf 파일 또는 00-proxy.conf 파일..(사실 /etc/httpd/ 디렉토리 안에 어느 conf 파일이든 상관없다)에 다음과 같이 추가한다.

 

 ProxyPass /RPC2 scgi://127.0.0.1:5000/

 

참고 사이트 : https://bugzilla.redhat.com/show_bug.cgi?id=1013485

 

8. 중국 쪽에서 root의 권한으로 지속적인 SSH 접속시도가 있었다. 아무래도 패스워드 대조를 통한 해킹 시도인 것 같은데 이에 대한 대응은 따로 게시물을 작성하고자 한다. 네트워크랑 프로세스를 모니터링을 할 필요성이 생겼다. http://iprize.tistory.com/643 에서 18 가지 시스템 모니터링 툴을 소개하고 있다. 소개하는 툴은 다음과 같다.

 top, vmstat, w, uptime, ps (나는 ps aux | grep 프로세스명 또는 계정명 으로 주로 사용해왔다. 하지만 이 명령어는 여러가지 옵션이 있어서 깜짝 놀랐다.),  free,  iostat, sar, mpstat, pmap, netstat, ss, iptraf, tcpdump, strace, cat /Proc/파일이름 (뭥미?!), Nagios, Cacti.

 

9. Fedora 유저라면 피토하는 SELINUX. 해커, 크래커 뿐만 아니라 유저마저도 멘붕하게 만든다는 보안 시스템이다. 일단 Fedora 측은, 제발 SELINUX 끄지 말라고 신신당부한다. 그래서 이번에는 사용해보기로 했다. 일단 Trobleshoot이라는 기능이 있는데, 이는 SELINUX에 의해 막힌 기능을 관리자에게 알리고, 만약 막을 필요가 없을 경우 관리자가 어떻게 해결하는지를 알려준다. Xwindow에 root로 로그인을 하여 troubleshoot를 실행하면 된다. 또한 간결한 원격 작업을 위해 커맨드 라인으로 이 troubleshoot 기능을 사용하고 싶은 분이라면 http://lesstif.com/pages/viewpage.action?pageId=19857527 를 참고하도록 하자.

 

10. XE (제로보드)의 최상위 디렉토리에 rewrite 모드를 위한 .htaccess 숨김 파일이 있다. 이거 때문에 적절한 퍼미션을 주었음에도 불구하고 403 에러를 맛보는 상쾌함을 즐길 수 있다. 이를 해결하긴 했는데, 어떻게 해결한지 기억이 안난다.

 

11. 리눅스 서버 설치 메뉴얼 사이트, 쩔어!

http://www.server-world.info/en/

 

12. 방화벽. firewalld라는 새로운 방화벽 시스템을 사용함에도 불구하고, 정밀한 설정을 위해서는 기존의 iptables 명령어와 chain, rule 등의 관련 개념을 알고 있어야 한다. 해킹당해도 뭐 손해볼게 없는 서버라 방화벽은 신경 안 썼는데, 이번 중국쪽으로부터의 침입이 네트워크 자원을 갉아먹는지라 이를 막겠노라고 iptables에 대해 조금 공부를 하게되었다. http://webdir.tistory.com/170 에 좋은 설명이 있다.

 

13 vsftpd의 chroot의 개념은 유저의 계정으로 ftp 접속을 하였을 때 보여주는 최상위 디렉토리를 설정하는 것이다. 즉, 실제로는 / 가 최상위 디렉토리지만 보안상 이유로 /home/유저/ 디렉토리의 상위 디렉토리들에 접근하지 못하게 할 필요가 있다. chroot의 설정을 통해 /home/유저/디렉토리가 마치 최상위 디렉토리인 것처럼  보여지게 하여 상위디렉토리로의 접근을 막을 수 있다 .

 

14. XE에서 사용자 서명에 스크립트 코드(예. 구글 광고)를 삽입하려면 잘 안된다. /xe설치경로/files/member_extra_info/signature/번호/번호.signature.php 파일을 열어 원하는 스크립트 코드를 추가하고 저장해보자.

 

2015.4.20. 추가

14. CSS에서 화면 높이와 스크롤과 문서 높이의 관계
element.scrollHeight - element.scrollTop === element.clientHeight

 

15. 리눅스 커맨드 라인에서 USB 수동으로 마운트 시키기

다음 명령으로 디바이스 정보를 얻는다.

# fdisk -l

sdd1이 usb라면 다음 명령으로 마운트를 한다.

# mount -t vfat /dev/sdd1 /media/usbmount/

 

16. 디렉토리별 용량 확인

$ du -h --max-depth=1