NAS

자작 NAS - ownCloud와 SMB/AFP 경로 맞추기

coucou3 2020. 2. 10. 23:53
반응형

내부 네트워크 파일 공유를 위한 SMB/AFP를 구축했고,

외부 네트워크에서 클라우드 형식으로 공유할 수 있는 ownCloud를 구축했다.

이제 내부 네트워크와 외부 네트워크에서 동일한 경로를 공유할 수 있도록 설정해보자.

 

 

 

 

 

 Samba 경로 변경 

 

우선 Samba 기본 경로를 ownCloud의 data 경로와 맞춰준다.

ownCloud는 .../data/<ownCloud계정이름>/files에 데이터를 저장한다.

Samba의 경로를 이곳으로 변경한다.

$ sudo vim /etc/samba/smb.conf
...
[<저장소이름>]
    path = <기존경로>
    read only = no
...

 

 

 

설정 파일 /etc/samba/smb.conf를 열고, 원래의 저장소 <기존경로>를 ownCloud의 files경로로 바꿔주면 된다.

    path = /home/nas/data/<ownCloud계정>/files

 

 

 

Samba 재시작

$ sudo systemctl restart smbd
$ sudo systemctl restart nmbd

 

 

 

 

 

 AFP 경로 변경 

 

AFP는 /usr/local/etc/afp.conf 파일을 수정한다.

$ sudo vim /usr/local/etc/afp.conf
...
[<저장소이름>]
path = <기존경로>
spotlight = yes
...

 

 

 

마찬가지로 path의 <기존경로>를 ownCloud의 files 경로로 바꿔준다.

path = /home/NAS/data/<ownCloud계정>/files

 

 

 

AFP 재시작

$ sudo systemctl restart avahi-daemon
$ sudo systemctl restart netatalk

 

 

 

*혹시나 위 설정 후 접속이 안될 경우, $ sudo ufw status로 각 포트가 잘 열려있는지 확인이 필요하다.

 

 

 

 

 

 Apache 계정/권한 설정 

 

현재 상태를 확인해보자

먼저 ownCloud에서 폴더를 하나 생성하거나 파일을 업로드하면

 

$ ls -l
total 4
drwxr-xr-x 2 www-data www-data 4096 Feb  9 05:52 'ownCloud Folder'

 

기본적으로 아파치 설정에 따라 www-data 계정으로 권한이 주어진다.

 

 

 

반대로 SMB/AFP에서 폴더를 생성하거나 파일을 업로드할 경우

접속한 Ubuntu 계정으로 권한이 설정된다.

$ mkdir 'AFP Folder'
$ ls -l
total 12
drwxr-sr-x 2 <계정이름> <그룹이름> 4096 Feb  9 06:39 'AFP Folder'

 

 

 

때문에 권한 충돌로 서로간에 제대로 된 파일 읽기/쓰기/실행을 할 수 없다.

 

 

 

아파치를 Ubuntu와 같은 계정으로 실행되도록 설정하여 권한 문제를 해결할 수 있다.

(*개인적인 편의를 위해 하는 작업으로 보안상 어떤 문제가 있는지 모른다.)

 

 

 

아파치 설정 /etc/apache2/ennvars를 열어보면,

$ sudo vim /etc/apache2/envvars
...
# Since there is no sane way to get the parsed apache2 config in scripts, some
# settings are defined via environment variables and then used in apache2ctl,
# /etc/init.d/apache2, /etc/logrotate.d/apache2, etc.
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
...

 

중간 즈음에 export APACHE_RUN_USER와 export APACHE_RUN_GROUP이 있다.

Apache의 유저와 그룹에 대한 설정으로 'www-data'가 기본으로 잡혀있다.

원래 설정은 주석으로 남겨두고, 'www-data' 부분을 모두 Ubuntu NAS에 사용하는 계정으로 바꿔준다.

 

 

 

#export APACHE_RUN_USER=www-data
#export APACHE_RUN_GROUP=www-data
export APACHE_RUN_USER=<계정>
export APACHE_RUN_GROUP=<계정>

 

 

 

저장하고 나와서 아파치를 재실행한다.

$ sudo systemctl restart apache2

 

 

 

이제 ownCloud와 SMB/AFP에 연결된 계정이 동일하기 때문에

모든 폴더/파일에 대한 읽기/쓰기/실행이 가능하다.

 

 

 

 

 


 

 

 

 

2020.02.25 내용추가)

SMB/AFP를 통한 수정은 ownCloud에 바로 반영되지 않는다.

ownCloud 경로의 occ 프로그램을 통해 수정한 내용을 scan해주어야 ownCloud 클라이언트에 반영된다.

$ sudo -u <Ubuntu 계정> php /var/www/owncloud/occ files:scan --all
Scanning files for 2 users
Starting scan for user 1 out of 2 (<user1>)
Starting scan for user 2 out of 2 (<user2>)

+---------+-------+--------------+------------------+
| Folders | Files | Elapsed time | Items per second |
+---------+-------+--------------+------------------+
| 972     | 2180  | 00:01:44     | 30               |
+---------+-------+--------------+------------------+

 

반응형