問題と解決策:
/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プロトコルに焦点を当てています。 2つの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
、共有アクセスを維持しながら一度に1つずつchownとchmodを実行します。
https://wiki.samba.org/index.php/Mounting_samba_shares_from_a_unix_client