삼바 권한이 거부되었습니다

삼바 권한이 거부되었습니다

Linux 호스트(Samba 서버)와 Linux(클라이언트) 및 Windows(클라이언트) 간에 Samba 공유를 배포해야 합니다. 이제 서버의 이 폴더는 Linux와 Windows 클라이언트 컴퓨터 간에 문서를 공유합니다. Samba 서버에서 두 명의 테스트 사용자를 생성했습니다. 이들을 venice와 john이라고 부르겠습니다. 이제 Samba 서버에서 Samba에 대한 파일 컨텍스트를 설정하고 RO 및 RW 부울을 활성화하고 john 및 venice에 대한 권한을 설정했습니다.

> getfacl: Removing leading '/' from absolute path names
> # file: samba/docs/
> # owner: venice
> # group: venice user::rwx user:venice:rwx user:john:rwx group::r-x mask::rwx other::r-x default:user::rwx default:user:venice:rwx
> default:user:john:rwx default:group::r-x default:mask::rwx
> default:other::r-x

삼바 구성 파일에서 다음 구성을 만들었습니다.

[smbdocs]
        comment = Documents share
        path = /samba/docs
        browseable = yes
        read only = yes
        write list = venice john
        guest ok = no
        printable = no
        hosts allow = 10.8.8.51

삼바 설치를 사용하는 경우

mount.cifs //10.8.8.50/smbdocs -o username=venice,password=pass /samba/docs/ 

시스템 수준 권한과 Samba 수준에서 허용하더라도 venice 및 john 사용자를 사용하여 파일을 만들 수 없습니다.

이제 베니스의 uid와 gid를 사용하여 마운트하면

mount.cifs //10.8.8.50/smbdocs -o username=venice,password=pass,uid=1001,gid=1001 /samba/docs/ 

venice 사용자를 사용하여 파일을 생성할 수 있지만 John은 여전히 ​​파일을 생성하거나 편집할 수 없습니다.

어떤 제안이라도

호스트 운영 체제 버전 RHEL 7.4

답변1

RHEL 7에는 기본적으로 SELinux가 활성화되어 있으며~ 할 것이다파일 시스템에 대한 Samba의 액세스를 제한합니다. 예를 들어 사용자 정의 경로에 Samba 공유를 생성하는 경우 /samba/docs해당 SELinux 레이블을 경로에 적용해야 합니다.

Samba 및 기타 서비스가 액세스할 수 있는 디렉터리가 필요한 경우 SELinux 컨텍스트 유형 태그를 사용 public_content_rw_t하고 SELinux 부울을 설정하여 smbd_anon_write파일 소유권을 완전히 제어하는 ​​컨텍스트에서 Samba가 파일 및 디렉터리에 대한 쓰기 액세스를 허용하도록 해야 합니다.public_content_rw_t

setsebool -P smbd_anon_write=1
semanage fcontext -a -t public_content_rw_t "/samba/docs(/.*)?"
restorecon -Rv /samba/docs

/samba/docs다른 서비스(예: httpd또는 )를 통해 ftpd액세스 할 계획이 없다면 samba_share_t대신 컨텍스트를 사용할 수 있으며 그러면 부울 설정이 필요하지 않습니다.

semanage fcontext -a -t samba_share_t "/samba/docs(/.*)?"
restorecon -Rv /samba/docs

semanage fcontext -a...명령은 새 레이블을 정의하는 정규식을 SELinux 구성에 영구적으로 추가하고 restorecon새 레이블을 실제 파일 시스템에 적용합니다. SELinux 컨텍스트 레이블을 사용하여 변경할 수도 있지만 이를 수행할 때마다(예: 백업 복원 후) chcon변경 사항이 손실됩니다. restorecon먼저 태그 정보를 SELinux 구성에 저장하면 백업 방법이 SELinux와 관련이 없더라도 기본 SELinux 구성 /etc도 백업되는 한 태그 정보를 복원할 수 있습니다.

관련 정보