설정파일 같은 경우에는 로컬에는 개인정보로 채워진 파일이, 깃에는 빈 파일이 올라가야 할 경우가 있습니다. 

gitignore를 사용하면 깃에서 아예 해당 파일이 삭제되어 버리므로 적절한 방법이 아니었습니다. 

다음의 방법을 사용하면 git에는 개인 정보가 적히지 않은 파일로, 로컬에서는 개인정보가 적힌 파일로 유지할 수 있습니다. 

git update-index --assume-unchanged 파일명

이 명령어를 사용하면 깃은 해당파일을 변경하지 않은 것으로 인식해 수정 내용이 반영되지 않게 됩니다. 

다음의 명령어를 사용해 다시 변경내역에 추가할 수 있습니다. 

git update-index --no-assume-unchanged 파일명

또한 다음의 명령어로 현재 어느 파일이 unchanged 목록에 존재하는지 알 수 있습니다. 

git ls-files -v | grep ^h

DLNA를 설치한다면 대부분의 스마트 TV에서 서버에 직접 접속해 동영상, 사진, 음악등을 볼 수 있습니다. 여러 프로그램이 있지만, minidlna가 가장 설치가 간단하고 smi 자막도 잘 지원하는 등 작동도 잘 되었습니다. 

 

다음의 명령어로 minidlna를 설치해줍니다. 

sudo apt-get install minidlna -y

sudo 권한으로 /etc/minidlna.conf 파일을 열어 다음의 내용을 수정합니다. 

media_dir="미디어 파일들이 저장된 경로"
friendly_name="서버의 이름"
inotify=yes               -> 자동새로고침

음악, 동영상, 사진의 폴더를 따로 지정할 수도 있습니다. 아래 내용과 같이 수정해주면 됩니다. 

media_dir=V,"동영상파일 경로"
media_dir=M,"음악파일 경로"
media_dir=P,"사진파일 경로"

설정이 완료되었으므로, 서비스를 재시작하고 파일들을 다시 로드합니다. 

sudo service minidlna restart
sudo service minidlna force-reload

 

구글 드라이브 같은 일반적인 클라우드 서비스를 이용하지 않고 굳이 자작 Nas를 이용하는 가장 큰 이유는 토렌트 서버입니다. 외부에서도 시드 파일만 심어주면 자동으로 다운로드를 하기 때문에 두 말할 필요가 없이 편리합니다. 

 

다음의 명령어를 사용해 transmission을 설치합니다. 

sudo apt-get install transmission-daemon -y

우선 트랜스미션이 사용할 폴더를 미리 생성해두는 편이 좋습니다. 생성할 폴더는 세가지 입니다. 

  1. Download : 다운로드가 완료된 파일이 저장될 폴더.

  2. Watch : 해당 폴더에 시드 파일을 넣어두면 자동으로 다운로드 목록에 추가됩니다. 

  3. Temp : 다운로드가 진행중인 파일이 저장될 폴더입니다. 다운로드가 완료되면 Download 폴더로 이동됩니다. 

 

원하시는 곳에 폴더를 만든 후, 해당 폴더의 권한을 777로 바꿔주어야 합니다. transmission의 권한을 바꿔주는 방법도 있지만, 저는 폴더의 권한을 바꾸는 방법을 사용하겠습니다. 아래의 명령어로 폴더의 주인, 권한을 모두 바꿔줍니다. 보안이 불안하다면 사용자만 접근할 수 있는 곳에 폴더를 숨겨두는것도 좋습니다. 

sudo chown -R "사용자그룹"."사용자명" /폴더경로
sudo chmod -R 777 /폴더경로

 

더욱 편리한 사용을 위해서는 몇가지 설정을 해주어야 하는데, transmission이 실행된 상태에서는 설정이 되지 않습니다. 작동을 멈추고 설정을 해줄 파일을 편집기로 열어줍니다. 

sudo service transmission-daemon stop
sudo vi /etc/transmission-daemon/settings.json

다음의 항목을 필요에 따라 수정합니다. 

"download-dir": "Download 폴더 경로",
"rpc-username": "사용할 유저 이름",
"rpc-password": "사용할 비밀번호(저장 후에 자동으로 암호화됩니다)",
"rpc-whitelist-enabled": false
"incomplete-dir": "Temp 폴더 경로",
"incomplete-dir-enabled": True,
"umask":0,

다음의 항목을 추가합니다. 

"watch-dir": "Watch 폴더 경로",
"watch-dir-enabled": true

토렌트파일이 다운로드가 완료된 후, 해당 다운로드를 정지하거나 삭제하지 않는다면 계속해서 업로드가 지속됩니다. 이를 방지하기 위해 트랜스미션에서는 다운로드가 완료되면 자동으로 삭제되도록 Script를 짜넣을 수 있습니다. 다음의 내용을 Autodelete.sh 라는 이름으로 적당한 곳에 저장합니다. 해당 파일이 들어가있는 디렉토리의 권한은 755로 열려있어야 합니다. 

#!/bin/sh
SERVER="9091 --auth guest:1234"

TORRENTLIST=`transmission-remote $SERVER --list | sed -e '1d;$d;s/^ *//' | cut --only-delimited --delimiter=" " --fields=1`
for TORRENTID in $TORRENTLIST
do
	DL_COMPLETED=`transmission-remote $SERVER --torrent $TORRENTID --info | grep "Percent Done: 100%"`
	STATE_STOPPED=`transmission-remote $SERVER --torrent $TORRENTID --info | grep "State: Seeding\|Stopped\|Finished\|Idle"`
	if [ "$DL_COMPLETED" ] && [ "$STATE_STOPPED" ]; then
		transmission-remote $SERVER --torrent $TORRENTID --remove
	fi
done

guest에는 유저의 아이디를, 1234에는 비밀번호를 집어넣으면 됩니다. 

다시 /etc/transmission-daemon/settings.json 파일을 sudo 권한으로 열어 다음과 같이 수정합니다. 

"script-torrent-done-enabled": True,
"script-torrent-done-filename": "Autodelete.sh파일 경로",

만약 해당 설정을 완료했는데도 삭제가 되지 않을 경우, Autodelete 파일의 권한과 파일이 들어있는 디렉토리의 권한도 확인해주셔야 합니다. 

 

트랜스 미션을 재시작합니다. 

sudo service transmission-daemon start

 

이제 {오드로이드 IP주소}:9091 로 트랜스미션에 어디서든지 접근할 수 있습니다. 

여기까지 설정한 것만으로 이미 sftp 서비스는 이용 가능하지만 sftp를 지원하지 않는 어플리케이션이 있어 부득이하게 ftp가 필요한 경우가 있습니다. 이를 위해 vsftp를 설치합니다. 

sudo apt-get install vsftpd -y

설정 후 /etc/vsftpd.conf를 sudo 권한으로 열어 다음의 내용을 수정합니다. 

chroot_local_user=YES 
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list 
pam_service_name=ftp

chroot_local_user는 접속한 유저가 상위 폴더로 이동할 수 없게 합니다. 

chroot_list_enable을 YES로 해두면, chroot_list_file에 정의한 경로의 파일에 적힌 사용자는 상위 폴더로 이동할 수 있게 됩니다. 

sudo 권한으로 /etc/vsftpd.chroot_list 파일을 열어 상위폴더 이동 권한을 줄 아이디를 입력하면 됩니다. 

 

** 다음팟과 같은 프로그램에서는 상위폴더 이동 제한 기능을 사용할 경우 ftp 기능이 제대로 작동하지 않는 것을 볼 수 있습니다. 이 때, pam_service_name을 vsftp에서 ftp로 수정하면 정상적으로 작동합니다. **

 

vsftpd 서비스를 재시작합니다. 

sudo service vsftpd restart

 

추가 계정을 생성했을 때, 이 계정의 SSH 접근을 막고 ftp만 이용하게 하고 싶다면, /etc/passwd 파일을 sudo 권한으로 열어 추가 계정의 bin/bash 부분을 bin/false로 수정하면 됩니다. 

 

+ Recent posts