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
도 백업되는 한 태그 정보를 복원할 수 있습니다.