cifs 공유 읽기 실패, 권한이 거부됨 - cifs samba 디렉터리 권한이 거부됨

cifs 공유 읽기 실패, 권한이 거부됨 - cifs samba 디렉터리 권한이 거부됨

cifs를 통해 클라이언트 간에 데이터를 공유하기 위해 삼바 서버를 설정하려고 합니다. 테스트로서 동일한 시스템에 삼바 공유를 마운트하고 디렉토리 내용에 액세스하려고 시도했습니다. 설치 명령은 다음과 같습니다.

mount -t cifs -o username=sthomaso,workgroup=WORKGROUP //server/scratch /mnt/server/scratch

...비밀번호를 입력하면 제대로 작동합니다. 가능하더라도 cd /mnt/server/scratch디렉토리의 내용을 나열하려고 하면 ls오류가 발생합니다 ls: reading directory .: Permission denied.

서버에서 내 것은 다음 /etc/samba/smb.conf과 같습니다.

[global]
    security = user
    workgroup = WORKGROUP

[homes]
    writeable = yes

[scratch]
    path = /var/scratch
    valid users = @feausers
    writeable = yes

다음 명령을 사용하여 "sthomaso" 사용자를 tdbsam에 추가합니다.

pdbedit -a -u sthomaso

사용자 "sthomaso"는 "feausers" 그룹에 속하며 "groups sthomaso" 명령을 사용하여 확인됩니다.

/bin/ls -lF /var | grep scratch보여주다:

drwxrwx--T. 2 root feausers 4096 Jun 14 14:40 scratch/

/var/log/samba/log.smbd성공적인 연결 확인이 포함되어 있습니다.

<snip> smbd/service.c:1070(make_connection_snum)
<snip> connect to service scratch initially as user sthomaso (uid=500, gid=501) (pid 99999)

공유를 성공적으로 마운트한 것 같습니다. 그런데 디렉터리를 읽을 수 없고 파일에 액세스할 수 없는 이유는 무엇입니까?

답변1

참고로 저는 Red Hat으로부터 도움을 받았습니다. 문제는 SELinux가 권한을 제한하고 있다는 것입니다. SELinux가 제공하는 제어 기능이 필요하지 않으므로 /etc/selinux/config를 편집하고 재부팅하여 비활성화합니다.

답변2

이 질문에 대한 보다 적절한 답변은 문서 상단에 나와 있습니다 /etc/samba/smb.conf.example.

Use the samba_export_all_ro or samba_export_all_rw Boolean to share system directories.  To share such directories and only allow read-only permissions:
setsebool -P samba_export_all_ro on
To share such directories and allow read and write permissions:  
setsebool -P samba_export_all_rw on

또한 auditd에 의해 생성된 setroubleshoot 로그를 보면 1-100의 상대적 신뢰도로 문제를 잠재적으로 해결하는 방법에 대한 몇 가지 제안을 제공합니다.

이러한 로그와 권장 사항을 보려면 다음을 실행하세요.sealert -a /var/log/audit/audit.log

즉, 이 문제를 해결하려면 다음 명령을 실행하십시오.setsebool -P samba_export_all_rw on

그런 다음 서비스를 다시 시작하십시오.

편집하다:

또한 다음 명령을 사용하여 적절한 selinux 컨텍스트를 samba 공유에 적용해야 합니다.

semanage fcontext -a -t samba_share_t "/PATH_TO_SHARE(/.*)?"

관련 정보