CentOS: 원격 마운트 SMB

CentOS: 원격 마운트 SMB

문제와 해결책: /srv/samba소유권은 입니다 root:root. 해당 그룹을 변경하면 원격 시스템의 사용자를 사용하여 설치할 수 있습니다 chgrp prv /srv/samba/. (원격으로 마운트하려는 폴더)의 소유권은 이미 입니다. prv:prv문제 는 해당 폴더의 상위 폴더에서 발생합니다./srv/samba/fooprv: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연결은 정상, mounterror13 권한 거부 반환)

답변1

Samba는 네트워크의 Windows 공유에 대한 연결을 허용하는 CIFS/SMB 프로토콜에 중점을 둡니다. 두 Linux 시스템 간에 사용할 수 있지만 개인적으로 NFS를 선호합니다.

CentOS 7.x 이상SELinux방해자가 될 수 있습니다. 따라서 두 시스템의 루트로서 setenforce 0selinux를 허용 모드로 전환하는 작업을 수행합니다. 모든 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

관련 정보