Samba가 "루트"를 소유자로 하여 모든 새 파일/디렉토리를 생성하는 이유는 무엇입니까?

Samba가 "루트"를 소유자로 하여 모든 새 파일/디렉토리를 생성하는 이유는 무엇입니까?

새 Samba 인스턴스를 생성했는데 작동하지만 새 파일을 Samba 공유에 복사하면 owner:groupas root:myuser. Linux 자체에서 생성한 모든 파일은 myuser:myuser왜 Samba를 root소유자로 설정해야 합니까? force user및 옵션을 알고 있지만 force group구성된 모든 Samba 공유에 전역적으로 적용되는 것처럼 보이기 때문에 사용하고 싶지 않습니다. 2명의 다른 사용자에 대해 2개의 공유를 설정한 경우 해당 사용자를 소유자로 설정하고 그룹 파일을 생성하며 root콘텐츠의 소유자나 그룹이 아니어야 합니다.

관련 사항은 smb.conf다음과 같습니다:

[global]
# Make Samba follow symlinks
follow symlinks = yes
wide links = yes
unix extensions = no

# Custom shares
[myuserhome]
path=/home/myuser
browseable=yes
writeable=yes
create mask = 0664
directory mask = 0755
valid users = myuser
admin users = myuser

답변1

제목의 질문에 대한 대답은 다음과 같습니다. 왜냐하면 당신이 그렇게 말했기 때문입니다.

man smb.conf(강조 내) 에서 :

관리자 사용자(S)

공유 관리 권한을 부여받을 사용자 목록입니다. 이것은 그들이 의미한다모든 파일 작업은 슈퍼유저(루트)로 수행됩니다.

이 목록에 있는 모든 사용자는 파일 권한에 관계없이 공유에서 원하는 모든 작업을 수행할 수 있으므로 이 옵션을 매우 신중하게 사용해야 합니다.

디렉터리 권한을 올바르게 설정했고 공유 디렉터리의 항목을 루트로 조작하는 습관을 들이지 않았다면 admin usersSamba 구성에 이 줄이 전혀 필요하지 않습니다.

Samba 또는 Linux에서 공유 액세스용 디렉터리를 설정하려는 경우 가장 쉬운 방법은 디렉터리에 대한 그룹을 설정한 다음 root최상위 공유 디렉터리의 소유자, 그룹을 해당 그룹으로 설정하는 것입니다. 필요한 경우( 또는 별도로) 권한과 이에 대한 설정을 공유합니다 drwxrws---.drwxrwsr-xchmod 2770chmod 2775

이제 디렉터리에 대해 setgid 비트( chmod g+s)가 설정되었습니다. 이는 그룹 소유권이 이 디렉터리에 생성된 모든 새 파일이나 하위 디렉터리에 상속되고 setgid 비트 자체가 새 디렉터리에 자동으로 상속된다는 의미입니다. 그런 다음 필요에 따라 디렉토리를 Samba와 공유하십시오.

중요한 것은 당신이 창조한다는 것이다.최상위 레이어만루트로 -사용자가 나머지 작업을 수행하도록 하세요.

공유 디렉터리의 내용을 직접 유지 관리해야 하는 경우 디렉터리에 대한 쓰기 권한을 부여하는 그룹에 일반 사용자 계정을 추가하고 "필요한 작업 수행"일반 사용자 계정으로. 그렇지 않은 경우, 반드시 무언가를 해야 하는 경우가 아니라면 루트 중심의 손을 해당 디렉터리에서 멀리 두십시오. 이것은 매우 드문 예외라는 것을 알게 될 것입니다.

일반적인 "그룹" 원칙(즉, 모든 사용자에게 UID=GID만 할당된 개인 그룹이 있고 umask가 그룹 쓰기 액세스를 제한하지 않음)을 따르는 최신 Linux 시스템에서는 다른 작업을 수행할 필요가 없습니다. 모든 것이 작동합니다. 괜찮습니다. 수정이 필요한 모든 사람은 그룹 소유권이 부여한 권한을 사용하여 수정할 수 있습니다.

디렉토리에 하나도 없으면끈끈한 비트( chmod +t) 설정, 디렉토리에 대한 쓰기 액세스 권한이 있는 사람은 누구나 삭제할 수 있습니다.그 안에 있는 모든 것, 루트가 소유한 하위 디렉터리 포함.

관련 정보