음악 폴더가 대충 70GiB 정도 되는데 이게 owncloud로 싱크를 하자니 클라이언트를 켤 때마다 스캐닝을 하는데 대상 폴더가 SMB로 연결이 되어 있다 보니 엄청나게 느려서 쓰지를 못 하겠다. 그래서 좀 나은 syncthing으로 싱크를 하면서 owncloud의 웹 인터페이스를 쓰고 싶었다.
물론 owncloud는 local storage를 external storage로 지정해서 사용이 가능하긴 하지만 그걸로는 살짝 모자란 감이 있다.
아무튼 난 어떤 사람이 쓴 블로그 글을 보고 설정을 했고 결국 퍼미션 문제로 깨졌다.
www-data의 기본 그룹은 owncloud로 만들어 줬지만 syncthing이 돌아가는 내 계정의 기본 그룹은 owncloud가 아니라 kjwon15고 systemd service unit 파일을 수정해서 group을 바꿔주면 이상하게 실행 자체가 되지 않았다. 특정 디렉터리에 만드는 파일들은 기본적으로 자신의 기본 그룹이 아니라 특정 그룹 소유로 만들고 싶은데 리눅스엔 아쉽게도 그런 기능이 없다. 대신 비슷한 걸 할 수 있는 setfacl
/getfacl
을 찾았다.
스택오버플로에 나와 있듯이 setfacl -d -m group:owncloud:rwx < 경로>
를 해 주니 syncthing을 통해 생성 된 파일들이 kjwon15:kjwon15 소유더라도 owncloud 그룹이 읽고 쓸 수 있게 되어서 더이상 퍼미션 문제로 파일을 쓰지 못하고 처참히 날아가는 일이 사라졌다.
getfacl
명령을 통해 확인해 보면 다음과 같이 나온다.
# file: .
# owner: www-data
# group: owncloud
user::rwx
group::rwx
other::---
default:user::rwx
default:group::rwx
default:group:owncloud:rwx
default:mask::rwx
default:other::---
ls -l
명령으로 퍼미션을 확인할 땐 평소에 보던 -rwxrwxrwx
패턴 뒤에 +
표시가 붙어서 추가적인 설정이 있음을 알려 준다.