전체 권한으로 여러 사용자의 홈 디렉터리에 폴더를 바인딩하여 마운트하는 방법

전체 권한으로 여러 사용자의 홈 디렉터리에 폴더를 바인딩하여 마운트하는 방법

의 파일을 제공하는 웹 서버가 있습니다 /var/www/vhosts/mysite. 제가 하려는 작업은 사용자가 로그인하고 파일을 편집하고 로그아웃할 수 있도록 이 vhosts폴더를 마운트하는 것입니다. /home/myuser/vhosts문제는 마운트가 해당 폴더의 권한을 무시하지 않는다는 것입니다. 일부 파일은 www-data 또는 다른 사용자가 생성할 수 있습니다. 다른 사용자가 만든 경우 www-data도 읽거나 수정하는 데 문제가 있습니다.

지금까지 시도한 것은 fstab을 사용하여 바인드 마운트를 만드는 것입니다. 폴더는 사용자의 홈 디렉토리에 성공적으로 마운트되었으며 acl을 사용하여 폴더에 그룹을 할당 rwx하고 www-data와 사용자를 그룹에 추가하여 폴더 에 쓸 수 있도록 허용했습니다 . 폴더를 바인드 마운트하는 방법이 있는지 궁금합니다. 그러나 권한은 영향을 받지 않으므로 www-data는 항상 문제 없이 읽기/쓰기/실행할 수 있으며 사용자에게 전체 권한도 허용합니다.

답변1

먼저 이러한 사용자를 www-data 그룹에 추가하려고 합니다. 그런 다음 의도된 방법은 chmod g+s /home/user/vhost. 그러면 SGID이 폴더에 그룹이 새 파일에 사용된다는 의미로 설정됩니다 . 불행하게도 이것은 하위 디렉토리에는 도움이 되지 않습니다. 이를 최신 상태로 유지하려면 디렉토리 트리 수정 후 정기적으로 다음을 실행해야 합니다 find /home/user/vhost -type d -exec chmod g+s {} \;. 그러면 모든 하위 디렉토리가 검색되고 SGID. 가장 짜증나는 부분은 하위 항목을 추가하기 전에 상위 디렉토리에 이 작업을 수행해야 한다는 것입니다. 즉, 변경 사항을 적용할 때 이 작업을 여러 번 실행해야 하고, 이를 잊어버린 경우 chown 명령만 수행하면 됩니다. 그래도: find /home/user/vhost -type d -exec chown user:www-data {} \;.

이것이 내가 하라고 말하는 것이지만, 나는 이 모든 계획이 나에게 단지 짜증스러울 뿐이라는 것을 알게 되었습니다. 실제로 제가 하는 일은 전혀 관련 없는 권한을 사용하여 개발 서버에서 작업하는 것입니다. 변경한 후에는 prod 서버와 동기화하고 모든 것이 항상 올바른지 확인하기 위해 매번 모든 소유권과 권한을 설정하는 스크립트가 있습니다. 이 방법을 사용하면 권한이 중단되는 이유에 대해 걱정할 필요가 없기 때문에 많은 시간이 절약됩니다. 방금 스크립트를 실행하면 모든 것이 마술처럼 다시 작동합니다.

관련 정보