2017-01-10 1 views
1

신개발입니다. 다음 명령으로 퓨즈를 장착했습니다."기본 권한"옵션을 사용하는 퓨즈 파일 시스템

/mnt/fuse -o default_permissions -o allow_other -o nonempty -o hard_remove –d 

지금 "테스트"사용자로 로그인하고 "testfile"이라는 파일을 만들려고했습니다.

[email protected]:/registration> touch testfile 
touch: setting times of `testfile': Permission denied 

strace를 출력 :

내가 그 퓨즈 응용 프로그램을 이해할 수

-rw-r--r-- 1 root trusted  0 Jan 19 13:51 testfile 

uname({sys="Linux", node="11540302", ...}) = 0 
brk(0)         = 0x8055000 
brk(0x8076000)       = 0x8076000 
open("testfile", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK|O_LARGEFILE, 0666) = 3 
dup2(3, 0)        = 0 
close(3)        = 0 
utimensat(0, NULL, NULL, 0)    = -1 EACCES (Permission denied) 
close(0)        = 0 

그러나 "testfile 위"창조 루트 사용자로 소유자와 성공은 루트 레벨에서 실행 소유자로서 루트로 파일 생성이 발생했습니다. 그 테스트 사용자는 "testfile"에 대해 어떤 작업도 수행 할 수 없기 때문입니다.

내 질문 : 내가 준 때문에 장착하면서 테스트 사용자가 권한을 가지고 수없는 이유

는 "allow_other"은 "testfile 위"에 접근하기?

제 이해가 잘못되었을 경우 제발 저를 시정하십시오.

+0

스택 오버플로는 프로그래밍 및 개발 관련 질문에 대한 사이트입니다.이 질문은 프로그래밍이나 개발에 관한 것이 아니기 때문에 주제와는 거리가 먼 것처럼 보입니다. 도움말 센터에서 [여기에서 내가 질문 할 수있는 항목은 무엇입니까?] (http://stackoverflow.com/help/on-topic)를 참조하십시오. 아마도 [Super User] (http://superuser.com/) 나 [Unix & Linux Stack Exchange] (http://unix.stackexchange.com/)가 더 나은 곳이 될 것입니다. 또한 [Dev Ops에 관한 질문은 어디에 게시합니까?] (http://meta.stackexchange.com/q/134306)를 참조하십시오. – jww

답변

0

fuse 그룹에 test 사용자를 추가보십시오 : 중 하나를 실행 한 후

sed -i -e "s/#user_allow_other/user_allow_other/gi" /etc/fuse.conf 

: 또한

usermod -a -G fuse test 

, #user_allow_other는 (일반적으로 /etc/fuse.conf에서) fuse 구성 파일에 주석이 있는지 확인 그 중 reboot 컴퓨터를 다시 시도하십시오.

1

이 문제의 해결책이 있습니다.

Detailed explanation for this issue.

솔루션 : @dirkt 우리가 우리 자신에 대한 사용 권한을 처리 할 필요가 말했듯이

.

코드 발신자 UID와 GID 얻을 :

fuse_get_context() -> UID를;

fuse_get_context() -> gid;

발신자 사용자 ID 및 그룹 ID를 가져와 퓨즈 API를 통해 생성하는 동안 파일/디렉토리의 소유권을 설정하십시오.

항상 개선의 여지가 있습니다. 내가 틀렸다면 나에게 정정 해주세요.

설명해 주셔서 감사합니다.

관련 문제