以下为本人在fedora 37系统下安装samba的记录,供以后参考
运行terminal并切换到超级用户: su
安装samba :dnf install samba
创建共享文件夹(share匿名,secret需要密码):mkdir /share /secret
修改文件夹属性:chmod -R 777 /share; chown -hR nobody:nobody /share (or:chown -hR nobody:nogroup /share)
修改配置文件:vi /etc/samba/smb.conf
示例内容:
[global]
workgroup = SAMBA
netbios name = fedora
security = user
map to guest = bad user
smb passwd file= /etc/samba/smbpasswd
passdb backend = tdbsam
create mode = 0644
force create mode = 0644
directory mode = 0777
force directory mode = 0777
client min protocol=NT1
server min protocol=NT1
[share]
path=/share
browseable=yes
writable=yes
guest ok=yes
read only=no
[Secret]
path=/secret
guest ok= no
writeable= yes
browseable= no
valid users=renjunyu
添加用户
smbpasswd -a renjunyu (添加的用户必须是系统已有帐户,匿名共享可忽略)
配置防火墙
使用firewalld(系统默认,简单好用)
firewall-cmd --get-default-zone
firewall-cmd --list-services
firewall-cmd --zone=FedoraWorkstation --add-service=samba --permanent
使用nftables(暂未试验,可能需要禁用firewalld并启用nftables)
nft add map inet firewalld sambatcp { type inet_service : verdict \;}
nft add element inet firewalld sambatcp { 22 : accept, 139 : accept, 445 :accept }
nft add rule inet firewalld filter_INPUT tcp dport vmap @sambatcp
nft add map inet firewalld sambaudp { type inet_service : verdict \;}
nft add element inet firewalld sambaudp { 137:accept,138:accept}
nft add rule inet firewalld filter_INPUT udp dport vmap @sambaudp
重启防火墙(对于firewalld而言,其实不用重启就能生效)
配置SELinux(暂时先禁用,后期再修改,fedora37默认启用,所以需要关闭)
vi /etc/sysconfig/selinux
将SELINUX=enforcing改为SELINUX=disabled,需要重启系统才能生效。也可使用命令set enforce 0临时关闭,立即生效,重启系统后恢复为enforcing
启动samba服务
systemctl start smbd
systemctl enable smbd
systemctl start nmbd
systemctl enable nmbd
OK了