리눅스 NFS는 마스크를 만들고 사용자를 강제로 만듭니다.


11

두 개의 Linux 서버가 있습니다.

파일 서버
데비안 5.0.3 (2.6.26-2-686)
삼바 버전 3.4.2

아파치
우분투 10.04 LTS (2.6.32-23-generic)
Apache 2.2.14

Windows PC에서 파일에 액세스 할 수 있도록 파일 서버 에 여러 Samba 공유가 있습니다. 또한 수출하고 /data/www-data받는 아파치 나는 그것이로 장착 한 서버 /var/www.

NFS 마운트에서 파일을 만들 때를 제외하고는 설정이 정상입니다. Apache에서 읽을 수 없거나 시스템의 다른 사용자가 수정할 수없는 파일로 끝납니다.

삼바와 함께, 나는 지정할 수 있습니다 force user, force group, create maskdirectory mask, 모든 파일은 내 아파치 웹 서버에 적합한 권한으로 생성되는이 보장합니다. NFS로 이것을 수행하는 방법을 찾을 수 없습니다. NFS를 사용하여 권한과 소유권을 강제하는 방법이 있습니까?

Linux에서 꽤 많은 시간을 보냈지 만 Windows를 사용하지 않더라도 Linux 권한에 익숙하지 않아도됩니다 ...이 작업을 수행하는 올바른 방법이 아닌 경우 대체 제안.

답변:


12

Windows에서 온다면 NFS가 다르다는 것을 알게 될 것입니다.

당신이 겪고있는 문제는 매우 일반적입니다. NFS는 사용자와 그룹 ID가 둘 다 동일하게 맵핑된다는 가정하에 시스템간에 파일 / 디렉토리의 UID 및 GID를 전달합니다 . 즉, 서버의 UID / GID가 NFS 클라이언트로 다시 전달되는 상황이 발생할 수 있지만 클라이언트의 /etc/passwd또는 에서 일치 할 수 /etc/group없으므로 액세스 할 수 없습니다.

(원격) 과거에는 NIS 및 NIS +와 공동으로 논의되었지만이 프레임 워크에 포함 된 다른 체계가 있습니다 (삼바의 Winbind가 그 중 하나임). 그러나 여기에는 중앙 ID 서버가 필요하며 많은 수작업으로 고정되는 권한이 필요합니다.

이 문제를 해결하는 방법에는 여러 가지가 있지만 가장 저렴하고 빠른 방법은 두 컴퓨터에서 같은 그룹 ID 번호를 가진 그룹 (예 : 그룹 ID 50000)을 만들고 파일 서버에서 그룹 비트를 설정하는 동시에 적절한 사용자를 추가하는 것입니다. 클라이언트의 그룹; 그런 다음 파일에 대한 그룹 권한을 사용하여 액세스를 제어하십시오. 훌륭한 해결책은 아니지만 효과가 있습니다. 런타임에 그룹을 명시 적으로 변경하는 서비스 (권한 삭제)에 문제가있을 수 있으며 런타임에 그룹이 생성 한 그룹이되도록 그룹을 제어하는 ​​설정을 변경해야 할 수도 있습니다.

Windows 공유 (일명 Samba)를 통해 인바운드되는 파일의 경우 그룹을 사용자가 만든 것과 동일하게 만들면됩니다. 그렇게하면 모든 파일이 자동으로 "올바른"GID를 얻습니다.


고려 된 답변에 감사드립니다. 그룹 비트 방법을 살펴보고 어떻게 진행하는지 알려 드리겠습니다.
Mike

www-data파일 서버에서 그룹을 만들고 필요한 사용자를 지정한 다음 www-data두 서버 에서 동일한 그룹 ID 를 설정했습니다 . 또한 /data/www-data폴더 의 그룹 비트를로 설정합니다 chmod -R g+s /var/www-data. 이제 완벽하게 작동합니다. 당신의 도움을 주셔서 감사합니다.
Mike

그것을 듣고 기뻐!
에이버리 페인

NFS가 Mac 클라이언트를 위해 이것을 할 수 있다면 좋을 것입니다.
d -_- b

9

또한 all_squash내 보낸 파일 및 폴더를 모두 익명 (사용자 및 그룹)으로 만들어 특정 GID 및 UID에 첨부 하는 옵션을 사용할 수 있습니다 .

/data/www-data apache(rw,all_squash,anonuid=<your UID>,anongid=<your GID>,sync)

문제는 apache서버의 모든 사용자 가 마운트 포인트를 nobody nobody사용자 및 그룹으로보고 마운트에 쓸 수 있다는 것입니다 (그러나 Samba 서버에서는 파일이 <your UID>/ 로 생성됩니다 <your GID>).


내 문제가 해결되었습니다!
Luciano Andress Martini
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.