Unix/Arch Linux

Arch Linux에 유저권한으로 Resilio Sync 설치

ForceCore 2018. 9. 28. 20:54

http://forcecore.tistory.com/1325

시간이 흘러서 Resilio Sync로 개명이 되었네.

https://wiki.archlinux.org/index.php/Resilio_Sync

설치 자체는 AUR에 rslsync 패키지를 설치시키면 된다. 어려운 것은 대몬 부분이다.


$ rslsync --dump-sample-config > ~/.config/rslsync/rslsync.conf

device_name 은 설정해줘야 한다.


https도 강제해볼까...

  ,"force_https" : true // disable http

  ,"ssl_certificate" : "/path/to/cert.pem"

  ,"ssl_private_key" : "/path/to/private.key"

이 네 군데만 건드려주면 된다.


/path/to/private.key 이 부분은 실제로 인증서를 만든 다음 그대로 설정해준다:

https://wiki.archlinux.org/index.php/OpenSSL#Certificates

여기 나오는대로 인증서를 만들어준다. .pem, .key 파일을 만들어야 함.

유저로서 실행시킬 것이니까 system wide하게 하지 말고 유저 권한으로 과정을 전부 수행한다.


$ cd ~/.config/rslsync

$ mkdir private

$ chmod 700 private

$ touch private/key.pem

$ chmod 0600 private/key.pem

$ openssl genpkey -algorithm RSA -out private/key.pem -pkeyopt rsa_keygen_bits:4096

$ openssl req -key private/key.pem -x509 -new -days 3650 -out selfcert.pem

인증서도 생성했으니 다시 ssl_certificate, ssl_private_key 부분을 위에 만든 인증서로 지정해준다.


일단 잘 되나 실행부터 해보자.

$ rslsync --config ~/.config/rslsync/rslsync.conf --nodaemon

그리고 브라우저를 켜서

https://192.168.0.xx:8888

등 서버의 ip로 접속을 해보자. 설정파일에서 포트를 특별히 바꾸지 않았으면 8888일 것이다. 설정파일에서 유저 설정을 하지 않아도 웹으로 최초 접속시 생성 및 설정이 가능하다. 훌륭하게 잘 되는군...


이제 대몬으로 만들 차례. 시스템 서비스로 만들지 않으면 수동으로 실행을 해야 하는데 그렇게 하는 순간 rsync보다 우위가 없어진다 -_-;;; 반드시 귀찮아도 해야 하는 과정이다.

Arch Linux용 rslsync 패키지가 업데이트 되어서 설치하자마자 아래와 같이 바로 대몬화 할 수 있다고 안내가 나올 것이다.

        * Running rslsync user instance (using current user account)


          User instance MUST be configured before use. To perform configuration,

          install rslsync-autoconfig package or follow manual configuration steps:


            1. Copy /etc/rslsync/rslsync.conf to ~/.config/rslsync/rslsync.conf for

            the user you wish to configure rslsync:


              mkdir -p ~/.config/rslsync

              cp /etc/rslsync.conf ~/.config/rslsync/rslsync.conf


            2. Replace user-specific references with the appropriate information,

            including the following settings:


              - storage_path

              - pid_file

              - webui.listen

              - webui.login

              - webui.password


            3. Make sure folder you specified as storage_path and folder where pid_file will

            be located both exist in the filesystem, since rslsync will not create it for you.


          Execute:


            to reload user systemd modules:       systemctl --user daemon-reload

            to start rslsync manually:             systemctl --user start rslsync

            to autostart rslsync on user login:    systemctl --user enable rslsync


위에 이야기 된대로 enable을 하고 start하니 서버가 작동을 한다. 옛날보다 설치가 훨씬 쉬워졌다.


문제는, 저 서비스가 시작되는 시점이 언제냐면, GUI든 ssh든 유저가 로그인 할 때이다. 즉, 시스템이 재시작된다고 시작되지 않는다!!! loginctl을 써야 함.


# loginctl enable-linger username


이렇게 하면 자동으로 시작해줄 것이다. 실제로 재부팅을 해가면서 테스트 해보자.