마운트된 디렉터리에 쓸 수 없습니다(chown 이후).

마운트된 디렉터리에 쓸 수 없습니다(chown 이후).

/mnt/nasfstab 항목을 사용하여 삼바 공유를 마운트했습니다. 모든 것을 읽을 수 있지만 sudo글을 써야 합니다(권한이 거부되었지만 touch test.txt는 아님 sudo touch.txt). 나는 시도했다:

chown -R user:user /mnt/nas그리고chown -R user /mnt/nas

물론 루트로서 내 사용자 이름을 사용합니다. 그룹을 지정하지 않으면 읽을 수 없다는 오류가 발생하는데 lost+found, 이는 신경쓰지 않아도 될 것 같습니다. ls -l어느 쪽이든 내 사용자의 쓰기 권한이 표시되지 않습니다.

질문 루트가 아닌 Samba 사용자는 공유에 쓸 수 없습니다.허용된 답변에는 권한을 변경하라고만 나와 있는데 이는 도움이 되지 않습니다.

이것:루트가 아닌 사용자의 Samba 마운트 문제방금 내가 이미 시도한 매뉴얼 페이지를 읽으라고 말했습니다. 나는 답을 찾지 못했습니다.

내 SMB 공유에는 마법 같은 것이 없다고 생각합니다. 단지 명령에 능숙하지 못할 뿐입니다 chown. 무엇을 다르게 해야 합니까?

답변1

나는 다음을 발견했습니다.설치 매뉴얼 페이지:

smbfs에 대한 마운트 옵션 nfs와 마찬가지로 smbfs 구현에는 마운트 시스템 호출에 대한 이진 인수(struct smb_mount_data)가 필요합니다. 이 매개변수는 smbmount(8)에 의해 구성되며 현재 버전의 mount(2.12)는 smbfs에 대해 아무것도 모릅니다.

이것은 나를 다음으로 이끈다smbmount 매뉴얼 페이지:

경고: smbmount는 더 이상 사용되지 않으며 더 이상 유지되지 않습니다. smbmount 대신 Mount.cifs(mount -t cifs)를 사용해야 합니다.

이것은 나를 다음으로 이끈다mount.cifs 매뉴얼 페이지:

mount.cifs는 Linux CIFS 파일 시스템을 마운트합니다. 일반적으로 "-t cifs" 옵션이 사용될 때 mount(8) 명령에 의해 간접적으로 호출됩니다.

파일 및 디렉터리 소유권 및 사용 권한 핵심 CIFS 프로토콜은 파일 및 디렉터리에 대한 UNIX 소유권 정보나 모드를 제공하지 않습니다. 따라서 파일과 디렉터리는 일반적으로 uid= 또는 gid= 옵션에 의해 설정된 값이 소유한 것으로 나타나며 설치의 기본 file_mode 및 dir_mode로 설정된 권한을 갖게 됩니다. chmod/chown을 통해 이러한 값을 변경하려고 시도하면 성공을 반환하지만 효과는 없습니다.

클라이언트와 서버가 Unix 확장자를 협상할 때 파일과 디렉터리에는 서버에서 제공하는 uid, gid 및 모드가 할당됩니다. CIFS 마운트는 일반적으로 단일 사용자이고 어떤 사용자가 마운트에 액세스하는지에 관계없이 동일한 자격 증명이 사용되기 때문에 새로 생성된 파일과 디렉터리에는 일반적으로 공유를 마운트하는 데 사용된 자격 증명에 해당하는 소유권이 부여됩니다.

클라이언트와 서버에서 사용되는 uid와 gid가 일치하지 않는 경우 forceuid 및 forcegid 옵션이 도움이 될 수 있습니다. 그러나 이 모드를 재정의하는 해당 옵션이 없다는 점에 유의하십시오. forceuid 또는 forcegid가 적용될 때 파일에 할당된 권한은 실제 권한을 반영하지 않을 수 있습니다.

Unix 확장이 협상되지 않으면 "dynperm" 설치 옵션을 사용하여 서버에서 로컬로 에뮬레이션할 수도 있습니다. 이 설치 옵션이 적용되면 새로 생성된 파일과 디렉터리에 겉보기에 적절한 권한이 부여됩니다. 그러나 이러한 권한은 서버에 저장되지 않으며 향후 언제든지 사라질 수 있습니다(커널이 inode 캐시를 플러시하는 경우). 일반적으로 이 설치 옵션은 사용하지 않는 것이 좋습니다.

noperm 옵션을 통해 클라이언트의 권한 확인을 완전히 무시할 수도 있습니다. 서버측 권한 확인은 재정의될 수 없습니다. 서버에서 수행하는 권한 확인은 항상 공유를 마운트하는 데 사용된 자격 증명과 일치하며 반드시 공유에 액세스하는 사용자와 일치하지는 않습니다.

이는 chown 시도가 아무 작업도 수행하지 않는 이유를 설명합니다.

저는 실제로 SMB 공유를 설치하거나 구성한 적이 없으므로 추측할 수 있지만 fstab 항목은 아마도 다음과 같아야 할 것 같습니다.

//SERVER/sharename /mnt/mountpoint cifs _netdev,username=myuser,password=mypass,uid=xxx,gid=xxx 0 0

여기에서 uid를 사용자 ID로, GID를 사용자 ID로 채울 수 있습니다. (참고: forceuid 및 forcegid가 필요할 수 있음)

사용자 이름과 비밀번호 옵션은 Samba 공유를 인증하는 데 사용됩니다.

또 다른 (아마도 가장 좋은) 옵션은 적절한 사용자 공유를 설정하는 것입니다.

Arch Wiki - 삼바 사용자 공유

관련 정보