문제와 해결책:
/srv/samba
소유권은 입니다root:root
. 해당 그룹을 변경하면 원격 시스템의 사용자를 사용하여 설치할 수 있습니다chgrp prv /srv/samba/
. (원격으로 마운트하려는 폴더)의 소유권은 이미 입니다.prv:prv
문제 는 해당 폴더의 상위 폴더에서 발생합니다./srv/samba/foo
prv:prv
/srv/samba/
CentOS와 SMB를 처음 사용하면서 여러 게시물과 가이드를 읽었지만 어느 것도 문제를 해결하지 못했습니다.
2개의 서버(prvback 및 prvfront)가 있고 prvfront/mnt/foo에 prvback/foo를 마운트해야 합니다.
회신하다:
smbstatus -V
:Version 3.6.23-53.el6_10
/etc/samba/smb.conf
:
[foo]
path = /srv/samba/foo
read only = no
public = yes
domain = bar
valid users = prv
/etc/init.d/smb status
:smbd (pid 42) is running
pdbedit -L -v
Unix username: prv
NT username:
Account Flags: [U ]
User SID: S-1-5-21-3498247421-334271864-1173299791-1001
Primary Group SID: S-1-5-21-3498247421-334271864-1173299791-513
Full Name:
Home Directory: \\prvback\prv
HomeDir Drive:
Logon Script:
Profile Path: \\prvback\prv\profile
Domain: PRVBACK
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: Wed, 06 Feb 2036 16:06:39 CET
Kickoff time: Wed, 06 Feb 2036 16:06:39 CET
Password last set: Fri, 23 Oct 2020 10:08:32 CEST
Password can change: Fri, 23 Oct 2020 10:08:32 CEST
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
- 방화벽 규칙 4개 추가
cat /etc/sysconfig/iptables
-A INPUT -s 172.16.0.0/12 -m state --state NEW -p tcp --dport 139 -j ACCEPT
-A INPUT -s 172.16.0.0/12 -m state --state NEW -p tcp --dport 445 -j ACCEPT
# [EDIT1]
-A INPUT -s 172.16.0.0/12 -m state --state NEW -p udp --dport 137 -j ACCEPT
-A INPUT -s 172.16.0.0/12 -m state --state NEW -p udp --dport 138 -j ACCEPT
/etc/init.d/iptables restart
- [편집 1]구성된 SELinux 컨텍스트
semanage fcontext -a -t samba_share_t "/srv/samba/foo(/.*)?"
restorecon -v /srv/samba/foo/
ls -dlZ /srv/sambla/
drwxrwxrwx. root root unconfined_u:object_r:samba_share_t:s0 foo
- [해결책]
/srv/samba
그룹 소유권 변경 :chgrp prv /srv/samba/
앞쪽
smbclient
권한이 없어도 연결을 사용할 수 있습니다.
smbclient //<prvback_IP>/foo -U prv
Enter prv's password:
Domain=[SDIS2] OS=[Unix] Server=[Samba 3.6.23-53.el6_10]
smb: \>
smb: \> ls
NT_STATUS_ACCESS_DENIED listing \*
- 원격 볼륨을 마운트할 수 없습니다.
mount.cifs //<prvback_IP>/foo /mnt/foo -o user=prv,password=p4ssw0rd,uid=500,gid=500,domain=SDIS2
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page
fstab
항목을 사용하여 마운트 할 수 없습니다 .
//<prvback_IP>/foo /mnt/foo cifs user,uid=500,gid=500,rw,nounix,iocharset=utf8,file_mode=0550,dir_mode=0770,suid,username=prv,password=p4ssw0rd,domain=sdis2 0 0
# then
mount -a
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page
내가 처한 상황에서 벗어날 수 있는 방법을 아는 사람이 있나요? 이것은 매우 순진한 질문이었고 내가 얼마나 길을 잃었는지 보여주었습니다.
2020년 10월 26일 요약 1개 수정
/srv/samba/foo
폴더 에 컨텍스트 추가- UDP iptables 규칙 추가
- => 동일한 동작(
smbclient
연결은 정상,mount
error13 권한 거부 반환)
답변1
Samba는 네트워크의 Windows 공유에 대한 연결을 허용하는 CIFS/SMB 프로토콜에 중점을 둡니다. 두 Linux 시스템 간에 사용할 수 있지만 개인적으로 NFS를 선호합니다.
CentOS 7.x 이상SELinux방해자가 될 수 있습니다. 따라서 두 시스템의 루트로서 setenforce 0
selinux를 허용 모드로 전환하는 작업을 수행합니다. 모든 Samba 공유 폴더에는 애플리케이션 samba_share_t
컨텍스트가 필요합니다. 그렇지 않으면 selinux는 이를 거부하고 selinux는 기본값으로구현하다모델. /etc/selinux/config
편집하고 재부팅하여 selinux를 영구적으로 허용 모드로 전환 할 수 있습니다 . 비활성화로 설정하지 마십시오.
기본적으로 두 방화벽 모두에서 방화벽을 비활성화하고 SMB(또는 NFS)를 허용합니다.
systemctl disable firewalld
Samba는 통신을 위해 방화벽에서 이 포트를 열어야 합니다.
- UDP 137
- UDP 138
- TCP 139
- TCP 445
기본 방화벽 설정은 일반적으로 켜져 /etc/firewalld/zones/public.xml
있으며 SSH(tcp-22) 및 DHCP만 켜도록 허용합니다.
그 후 smb.conf
완료 security=user
되면smbpasswd -a <username>
prvback삼바 서버입니다. 그럼 안으로PR 프론트엔드smb 공유를 마운트하려는 samba 클라이언트는 fstab에서 사용자 이름과 비밀번호 조합을 지정합니다. 간단한 폴더 권한 문제를 해결하려면 prvback Samba 서버를 시작한 다음 chmod 777 /foo
, 공유 액세스를 유지하면서 한 번에 한 단계씩 chown 및 chmod를 수행하세요.
https://wiki.samba.org/index.php/Mounting_samba_shares_from_a_unix_client