내부 네트워크 파일 공유를 위한 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 |
+---------+-------+--------------+------------------+
'NAS' 카테고리의 다른 글
자작 NAS - ownCloud SSL 보안설정 (0) | 2020.02.21 |
---|---|
자작 NAS - 웹하드 구축하기 (ownCloud) (0) | 2020.02.02 |
자작 NAS (7) - 내부 네트워크 전송 속도 변경(기가비트) (0) | 2020.01.31 |