775 권한에도 불구하고 소유자와 그룹 구성원의 쓰기 동작이 다릅니다.

775 권한에도 불구하고 소유자와 그룹 구성원의 쓰기 동작이 다릅니다.

다음 줄을 사용하여 fstab을 통해 원격 공유를 마운트했습니다.

//path/to/target /media/f cifs gid=<mygroup's id>,dir_mode=0775,file_mode=0775 0 0

따라서 아래의 모든 항목에는 /media/f다음과 같은 권한이 있습니다.

$ ls -al
drwxrwxr-x 0 root mygroup ...

Django 웹 www-data애플리케이션 이 . 그러나 이것은 작동하지 않습니다. 권한 오류가 발생합니다.mygroup/media/f

이 문제를 해결하기 위해 설치 줄을 설정으로 변경했습니다.둘 다그리고 마운트 지점에 user 및 group 을 갖게 gid합니다 . 이제 내 마운트 지점은 다음과 같습니다.uidwww-datamygroup

$ ls -al
drwxrwxr-x 0 www-data mygroup ...

모두 괜찮습니다.

질문: 내 웹 애플리케이션이 /media/f폴더를 소유할 때는 폴더에 쓸 수 www-data:mygroup있지만 폴더가 소유할 때는 쓸 수 없는 이유는 무엇입니까 root:mygroup(폴더가 www-data의 구성원임을 알면서 mygroup)

www-data(사용자의) 그룹 멤버십을 "고정" 하기 위해 재설치 및 재부팅을 시도했지만 mygroup작동하지 않았습니다.

이상한 점은 root:mygroup소유권이 설정된 후 sudo su www-data터미널에서 쓰기를 시도 하면 /media/f모든 것이 잘 작동한다는 것입니다. 거기서 무슨 일이 일어났는지 아세요? uwsgi이는 django를 실행하는 프로세스가 내가 부여하려는 전체 권한으로 실제로 실행되지 않는 것과 같습니다 www-data.

아이디어?

답변1

이는 위의 맥락에 매우 특정한 것으로 밝혀졌습니다. 저는 황제 패턴을 사용하여 웹 사이트를 제공하기 위해 uWSGI를 사용하고 있습니다. 매개변수 uid=www-data와 를 설정했습니다 gid=www-data. 이로 인해 내 클라이언트 프로세스가 사용자 및 그룹과 관련된 권한을 갖게 될 것으로 예상했습니다.www-data 또한www-data(사용자)가 속한 그룹과 관련된 권한입니다. 가정은잘못된. Vassals는 실행되지 않습니다(기본적으로)어느보충 그룹 ID.

uWSGI(최신 버전)가 이 문제를 해결한 것으로 나타났습니다. add-gid=mygroupuWSGI 구성에서 이를 수동으로 지정할 수 있습니다 . 이 매개변수를 여러 번 지정하여 원하는 대로 가신 프로세스에 많은 gid를 추가할 수 있습니다. 이 기능은 uWSGI 1.9.15부터만 사용할 수 있으므로 이 방법을 사용하려면 업그레이드해야 할 수도 있습니다.

완전한 서면 기록여기.

관련 정보