- A+
所属分类:linux技术
Top
目录
安装
# 安装samba服务器 yum install -y samba # samba 服务器地址 smb://user@192.168.0.10 # 查看安装包 rpm -qa |grep samba
端口与服务管理
# 启动samba进程 systemctl start smb # 查看运行状态 systemctl status smb # 查看端口 netstat -antulp |grep smb # 设置开机自启动 systemctl enable smb chkconfig smb on # samba的主要配置文件 /etc/samba/smb.conf # Samba服务使用的端口和协议: 1 端口137 (UDP) - NetBIOS名称服务; 美国全国广播公司 2 端口138 (UDP) - NetBIOS数据报服务 3 端口139 (TCP) - 共享文件和打印;它基于smbd(SMB) servermessageblock协议,主要用于局域网,文件共享协议) 。 4 端口389 (TCP) - LDAP (活动目录模式) 5 端口445 (TCP) - NetBIOS服务在windos 2000或更高版本上使用此端口。 (CIFS、公共互联网文件系统,它将SMB协议扩展到internet,然后实现internet文件共享。 6 端口901 (TCP) SWAT,用于web管理Samba windows系统之间的文件共享协议: netbiosextenduserinterface (netbeui )协议和IPX/SPX协议 NetBEUI协议是一种短而精悍、通信效率高的广播型协议,安装后无需设置,特别适用于“网络邻居”中的数据传输。
其他常用命令
# 查看 samba 服务状态及其客户端访问情况 smbstatus /usr/bin/smbclient # 客户端功能
配置
全局配置
[global] workgroup = SAMBA security = user passdb backend = tdbsam config file = /etc/samba/%U.smb.conf # 使得不同的登录用户只加载其自身的配置,%U 代表用户名 printing = cups printcap name = cups load printers = yes cups options = raw interfaces = ens9f3 192.168.0.200/24 # 访问接口 和 IP hosts allow = 192.168.0. # 客户端 白名单 log file = /var/log/samba/log.%m # 日志文件配置 max log size = 50000 smb ports = 1234 # 自定义服务端口 # #[homes] # comment = Home Directories # valid users = %S, %D%w%S # browseable = No # read only = No # inherit acls = Yes [printers] comment = All Printers path = /var/tmp printable = Yes create mask = 0600 browseable = No [print$] comment = Printer Drivers path = /var/lib/samba/drivers write list = @printadmin root force group = @printadmin create mask = 0664 directory mask = 0775
共享库配置
[d200_temp] comment = please do not modify it all will path= /data/shared/d200_d writable = yes public = yes
用户名密码认证库配置
[d200_temp] comment = please do not modify it all will path= /data/shared/d200_d public = no valid users = sit,@ydd printable = no write list = sit,@ydd
Samba 登录用户配置
sit_home_Dir="/raid/shared/d200_d/temp" sit_pwd="h3c@123" userdel -r sit &> /dev/null groupdel ydd &> /dev/null groupadd ydd useradd sit -d /raid/shared/d200_d/temp -s /sbin/nologin -p ${sit_pwd} pdbedit -x sit echo "sit pwd : ${sit_pwd}" pdbedit -a -u sit usermod -a -G ydd sit # 添加用户 smbpasswd -a <用户名> # 或 pdbedit -a -u <用户名> # 重置密码 smbpasswd <用户名> # 删除用户 pdbedit -x <用户名>
防火墙配置
# 开启防火墙 systemctl start firewalld.service # 放行 samba firewall-cmd --add-service samba --permanent firewall-cmd --reload # 重新加载防火墙配置 firewall-cmd --list-all | grep samba -q # 查询防火墙信息 # iptables 规则配置 iptables -I RH-Firewall-1-INPUT 5 -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT iptables -I RH-Firewall-1-INPUT 5 -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT iptables -I RH-Firewall-1-INPUT 5 -p udp -m udp --dport 137 -j ACCEPT iptables -I RH-Firewall-1-INPUT 5 -p udp -m udp --dport 138-j ACCEPT iptables-save service iptables restart
设定安全的上下文关系
# 将 samba 目录共享给其他用户, chcon -t samba_share_t <共享目录> # 修改对象的安全上下文 # 第二种方法, semanage fcontext -a -t samba_share_t <共享目录> restorecon -FRv /home/kevin # 刷新上下文,使其立即生效 #如果samba服务器共享目录给多个域,则需要: setsebool -P allow_smbd_anon_write=1 //If you are setting up this machine as a Samba server and wish to share the home directories samba服务器要共享家目录时: setsebool -P samba_enable_home_dirs 1 //If you want to use a remote Samba server for the home directories on this machine 如果你需在本机上使用远程samba服务器的家目录 setsebool -P use_samba_home_dirs 1 //You can disable SELinux protection for the samba daemon by executing setsebool -P samba_domain_controller 1 # 可读可写 setsebool -P samba_export_all_rw 1 # 只读 setsebool -P samba_export_all_ro 1 # 关闭selinux关于samba的进程守护的保护 setsebool -P smbd_disable_trans 1 # 0是关闭 1是开启 # 查询SElinux策略内各项 samba 规则的布尔值 [root@localhost ~]# getsebool -a | grep smb smbd_anon_write --> off [root@localhost ~]# getsebool -a | grep samba samba_create_home_dirs --> off samba_domain_controller --> off samba_enable_home_dirs --> off samba_export_all_ro --> off samba_export_all_rw --> off samba_load_libgfapi --> off samba_portmapper --> off samba_run_unconfined --> off samba_share_fusefs --> off samba_share_nfs --> off sanlock_use_samba --> off tmpreaper_use_samba --> off use_samba_home_dirs --> off virt_use_samba --> off
本地系统设置访问读写权限
# 设置文件访问权限 setfacl -R -m g:sit:rwx <目录> # 设置用户组权限 setfacl -R -m u:sit:rwx <目录> # 设置用户权限 # 获取文件权限信息 getfacl <文件>
Pdbedit 用法
# 命令用于管理Samba服务的帐户信息数据库 pdbedit -a username # 新建Samba账户 pdbedit -x username # 删除Samba账户 pdbedit -r -u user # 修改samba用户信息 pdbedit -L # 列出Samba用户列表,读取passdb.tdb数据库文件。 pdbedit -Lv # 列出Samba用户列表详细信息。 pdbedit -c “[D]” -u username # 暂停该Samba用户账号。 pdbedit -c “[]” -u username # 恢复该Samba用户账号。
Smbpasswd 用法
smbpasswd -a user # 添加一个samba用户 smbpasswd -d user # 禁用一个samba用户 smbpasswd -e user # 恢复一个samba用户 smbpasswd -x user # 删除一个samba用户
其他
# 重新加载配置 smbcontrol all reload-config # 允许用户执行共享上的所有文件, acl allow execute always = yes # 添加网络映射到指定驱动器号 net use H: \serverusersdemo /persistent:yes # 用户管理 https://wiki.samba.org/index.php/User_and_Group_management
Windows 下相关转发
查看网络连接 -- 可删除缓存,用于切换登录用户
# 显示当前网络连接列表 net use # 删除一个网络连接配置 net use 远程连接名称 /del # 一次性全部删除 net use * /del # 若以上方法不管用,可进入控制台删除网络凭证
Windows 设置 Smb 端口转发
# 使用管理员权限 # 查看端口转发 netsh interface portproxy show all # 配置端口转发 netsh interface portproxy add v4tov4 listenport=445 listenaddress=127.0.0.1 connectport=samba服务器地址 connectaddress=samba端口 # 清除所有端口转发规则 netsh interface portproxy reset
访问 Samba 服务器
服务器 --- Linux
1、安装samba client sudo apt-get install smbclient yum install samba-client 2、获取指定 Samba 服务器的共享列表 smbclient -L 192.168.1.1 -U <username> smbclient -L 192.168.1.1 -U <username> --workgroup=SAMBA 3、连接共享目录 -- 交互式 smbclient 192.168.1.1/<共享目录名> -U username 4、连接共享目录 --- 一次性连接共享目录进行指定操作后退出 smbclient -U sit -c 'ls' //172.16.89.129/<共享目录名>
服务器 --- Windows
# 1、快捷键 `Win + E` 打开文件资源管理器 # 2、在地址栏中输入 `\<Samba 服务器地址>` 若需要验证则再输入用户名和密码登录
Apple --- Mac
# 1、打开访达 # 2、快捷键 `Cmd + K` 连接文件服务器 输入samba 服务器 IP , 若需要验证则再输入用户名和密码登录
mac如何访问windows共享文件夹--- samba 服务器
Linux 挂载 samba 地址
# 1、安装 apt install cifs-utils # or yum install cifs-utils # 2、在本地创建一个挂载点目录 sudo mkdir /home/user/shareFiles # 3、挂载 sudo mount -t cifs -o username=xxx,password=xxx //<目标IP地址或主机名>/<共享目录名> <挂载点目录> mount -t cifs //192.168.1.65/linuxsamba /database -o username=smbuser,password=123456,rw,file_mode=0777,dir_mode=0777,setuid=509,setgid=101 # 或者 mount -t cifs //192.168.1.65/linuxsamba /database -o username=smbuser,password=123456,rw
参考网址
腾讯云---Linux/centos上如何配置管理samba服务器
自动化配置脚本
#