翼度科技»论坛 云主机 LINUX 查看内容

搭建Samba服务器笔记全套

2

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
Top


目录

安装
  1. # 安装samba服务器
  2. yum install -y samba
  3. # samba 服务器地址
  4. smb://user@192.168.0.10
  5. # 查看安装包
  6. rpm -qa |grep samba
复制代码
端口与服务管理
  1. # 启动samba进程
  2. systemctl start smb
  3. # 查看运行状态
  4. systemctl status smb  
  5. # 查看端口
  6. netstat -antulp |grep smb
  7. # 设置开机自启动
  8. systemctl enable smb
  9. chkconfig smb on
  10. # samba的主要配置文件
  11. /etc/samba/smb.conf   
  12. # Samba服务使用的端口和协议:
  13. 1 端口137 (UDP) - NetBIOS名称服务; 美国全国广播公司
  14. 2 端口138 (UDP) - NetBIOS数据报服务
  15. 3 端口139 (TCP) - 共享文件和打印;它基于smbd(SMB) servermessageblock协议,主要用于局域网,文件共享协议) 。
  16. 4 端口389 (TCP) - LDAP (活动目录模式)
  17. 5 端口445 (TCP) - NetBIOS服务在windos 2000或更高版本上使用此端口。 (CIFS、公共互联网文件系统,它将SMB协议扩展到internet,然后实现internet文件共享。
  18. 6 端口901 (TCP) SWAT,用于web管理Samba
  19. windows系统之间的文件共享协议: netbiosextenduserinterface (netbeui )协议和IPX/SPX协议
  20. NetBEUI协议是一种短而精悍、通信效率高的广播型协议,安装后无需设置,特别适用于“网络邻居”中的数据传输。
复制代码
其他常用命令
  1. # 查看 samba 服务状态及其客户端访问情况
  2. smbstatus
  3. /usr/bin/smbclient          # 客户端功能
复制代码
点我回顶部配置

全局配置
  1. [global]
  2.         workgroup = SAMBA
  3.         security = user
  4.         passdb backend = tdbsam        
  5.         config file = /etc/samba/%U.smb.conf  # 使得不同的登录用户只加载其自身的配置,%U 代表用户名
  6.         printing = cups
  7.         printcap name = cups
  8.         load printers = yes
  9.         cups options = raw
  10.         interfaces = ens9f3 192.168.0.200/24    # 访问接口 和 IP  
  11.         hosts allow = 192.168.0.                # 客户端 白名单   
  12.         log file = /var/log/samba/log.%m        # 日志文件配置
  13.         max log size = 50000                    
  14.                 smb ports = 1234                        # 自定义服务端口
  15.                
  16. #
  17. #[homes]
  18. #       comment = Home Directories
  19. #       valid users = %S, %D%w%S
  20. #       browseable = No
  21. #       read only = No
  22. #       inherit acls = Yes
  23. [printers]
  24.         comment = All Printers
  25.         path = /var/tmp
  26.         printable = Yes
  27.         create mask = 0600
  28.         browseable = No
  29. [print$]
  30.         comment = Printer Drivers
  31.         path = /var/lib/samba/drivers
  32.         write list = @printadmin root
  33.         force group = @printadmin
  34.         create mask = 0664
  35.         directory mask = 0775
复制代码
共享库配置
  1. [d200_temp]
  2.        comment = please do not modify it all will
  3.        path= /data/shared/d200_d
  4.        writable = yes
  5.        public = yes
复制代码
点我回顶部用户名密码认证库配置
  1. [d200_temp]
  2.        comment = please do not modify it all will
  3.        path= /data/shared/d200_d
  4.        public = no
  5.        valid users = sit,@ydd
  6.        printable = no
  7.        write list = sit,@ydd
复制代码
Samba 登录用户配置
  1. sit_home_Dir="/raid/shared/d200_d/temp"
  2. sit_pwd="h3c@123"
  3. userdel -r sit &> /dev/null
  4. groupdel ydd &> /dev/null
  5. groupadd ydd
  6. useradd sit -d /raid/shared/d200_d/temp -s /sbin/nologin -p ${sit_pwd}
  7. pdbedit -x sit
  8. echo "sit pwd : ${sit_pwd}"
  9. pdbedit -a -u sit
  10. usermod -a -G ydd  sit
  11. # 添加用户
  12. smbpasswd -a <用户名>
  13.         # 或
  14.         pdbedit -a -u <用户名>
  15. # 重置密码
  16. smbpasswd <用户名>
  17. # 删除用户
  18. pdbedit -x <用户名>
复制代码
点我回顶部防火墙配置
  1. # 开启防火墙
  2. systemctl start firewalld.service  
  3. # 放行 samba  
  4. firewall-cmd --add-service samba --permanent
  5. firewall-cmd --reload                    # 重新加载防火墙配置
  6. firewall-cmd --list-all | grep samba -q  # 查询防火墙信息
  7. # iptables 规则配置
  8. iptables -I RH-Firewall-1-INPUT 5 -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
  9. iptables -I RH-Firewall-1-INPUT 5 -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
  10. iptables -I RH-Firewall-1-INPUT 5 -p udp -m udp --dport 137 -j ACCEPT
  11. iptables -I RH-Firewall-1-INPUT 5 -p udp -m udp --dport 138-j ACCEPT
  12. iptables-save
  13. service iptables  restart
复制代码
设定安全的上下文关系
  1. # 将 samba 目录共享给其他用户,
  2. chcon -t samba_share_t  <共享目录>  # 修改对象的安全上下文
  3. # 第二种方法,
  4. semanage fcontext -a -t samba_share_t <共享目录>
  5. restorecon -FRv /home/kevin  # 刷新上下文,使其立即生效
  6. #如果samba服务器共享目录给多个域,则需要:
  7. setsebool -P allow_smbd_anon_write=1
  8. //If you are setting up this machine as a Samba server and wish to share the home directories
  9. samba服务器要共享家目录时:
  10. setsebool -P samba_enable_home_dirs 1
  11. //If you want to use a remote Samba server for the home directories on this machine
  12. 如果你需在本机上使用远程samba服务器的家目录
  13. setsebool -P use_samba_home_dirs 1
  14. //You can disable SELinux protection for the samba daemon by executing
  15. setsebool -P samba_domain_controller 1
  16. # 可读可写
  17. setsebool -P samba_export_all_rw 1
  18. # 只读
  19. setsebool -P samba_export_all_ro 1
  20. # 关闭selinux关于samba的进程守护的保护
  21. setsebool -P smbd_disable_trans 1    # 0是关闭 1是开启
  22. # 查询SElinux策略内各项 samba 规则的布尔值
  23. [root@localhost ~]# getsebool -a   | grep smb  
  24. smbd_anon_write --> off
  25. [root@localhost ~]# getsebool -a   | grep samba
  26. samba_create_home_dirs --> off
  27. samba_domain_controller --> off
  28. samba_enable_home_dirs --> off
  29. samba_export_all_ro --> off
  30. samba_export_all_rw --> off
  31. samba_load_libgfapi --> off
  32. samba_portmapper --> off
  33. samba_run_unconfined --> off
  34. samba_share_fusefs --> off
  35. samba_share_nfs --> off
  36. sanlock_use_samba --> off
  37. tmpreaper_use_samba --> off
  38. use_samba_home_dirs --> off
  39. virt_use_samba --> off
复制代码
点我回顶部本地系统设置访问读写权限
  1. # 设置文件访问权限
  2. setfacl -R -m g:sit:rwx  <目录>   # 设置用户组权限
  3. setfacl -R -m u:sit:rwx  <目录>   # 设置用户权限
  4. # 获取文件权限信息
  5. getfacl  <文件>
复制代码
Pdbedit 用法
  1. # 命令用于管理Samba服务的帐户信息数据库
  2. pdbedit -a username    # 新建Samba账户
  3. pdbedit -x username    # 删除Samba账户
  4. pdbedit -r -u user     # 修改samba用户信息
  5. pdbedit -L             # 列出Samba用户列表,读取passdb.tdb数据库文件。
  6. pdbedit -Lv            # 列出Samba用户列表详细信息。
  7. pdbedit -c “[D]” -u username    # 暂停该Samba用户账号。
  8. pdbedit -c “[]” -u username     # 恢复该Samba用户账号。
复制代码
Smbpasswd 用法
  1. smbpasswd -a user   # 添加一个samba用户
  2. smbpasswd -d user   # 禁用一个samba用户
  3. smbpasswd -e user   # 恢复一个samba用户
  4. smbpasswd -x user   # 删除一个samba用户
复制代码
点我回顶部其他
  1. # 重新加载配置
  2. smbcontrol all reload-config
  3. # 允许用户执行共享上的所有文件,
  4. acl allow execute always = yes
  5. # 添加网络映射到指定驱动器号
  6. net use H: \\server\users\demo\ /persistent:yes
  7. # 用户管理
  8. https://wiki.samba.org/index.php/User_and_Group_management
复制代码
Windows 下相关转发

查看网络连接 -- 可删除缓存,用于切换登录用户
  1. # 显示当前网络连接列表
  2. net use
  3. # 删除一个网络连接配置
  4. net use 远程连接名称 /del
  5. # 一次性全部删除
  6. net use * /del
  7. # 若以上方法不管用,可进入控制台删除网络凭证
复制代码
Windows 设置 Smb 端口转发
  1. # 使用管理员权限
  2. # 查看端口转发
  3. netsh interface portproxy show all
  4. # 配置端口转发
  5. netsh interface portproxy add v4tov4 listenport=445 listenaddress=127.0.0.1 connectport=samba服务器地址 connectaddress=samba端口
  6. # 清除所有端口转发规则
  7. netsh interface portproxy reset
复制代码
点我回顶部访问 Samba  服务器

服务器 --- Linux
  1. 1、安装samba client
  2.         sudo apt-get install smbclient
  3.         yum install samba-client
  4. 2、获取指定 Samba 服务器的共享列表
  5.         smbclient -L 192.168.1.1 -U <username>
  6.         smbclient -L 192.168.1.1 -U <username> --workgroup=SAMBA
  7. 3、连接共享目录 -- 交互式
  8.         smbclient 192.168.1.1/<共享目录名> -U username
  9. 4、连接共享目录 --- 一次性连接共享目录进行指定操作后退出
  10.         smbclient -U sit -c 'ls'  //172.16.89.129/<共享目录名>
复制代码
服务器 --- Windows
  1. # 1、快捷键 `Win + E` 打开文件资源管理器
  2. # 2、在地址栏中输入 `\\<Samba 服务器地址>`
  3.         若需要验证则再输入用户名和密码登录
复制代码
Apple --- Mac
  1. # 1、打开访达
  2. # 2、快捷键 `Cmd + K` 连接文件服务器
  3.         输入samba 服务器 IP ,
  4.         若需要验证则再输入用户名和密码登录
复制代码
mac如何访问windows共享文件夹--- samba 服务器
点我回顶部Linux 挂载 samba 地址
  1. # 1、安装
  2.         apt install cifs-utils
  3.         # or
  4.         yum install cifs-utils
  5. # 2、在本地创建一个挂载点目录
  6.         sudo mkdir /home/user/shareFiles
  7. # 3、挂载
  8.         sudo mount -t cifs -o username=xxx,password=xxx //<目标IP地址或主机名>/<共享目录名>  <挂载点目录>
  9.         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
  10.         # 或者
  11. mount -t cifs //192.168.1.65/linuxsamba /database -o username=smbuser,password=123456,rw
复制代码
参考网址

Linux下安装部署Samba共享盘的操作手册
腾讯云---Linux/centos上如何配置管理samba服务器
Linux/centos上如何配置管理samba服务器?
Samba服务器的配置与管理
samba客户端的使用与服务端的搭建
Linux系统工程师3.5网络文件系统
smb协议详解和samba服务的配置
使用POSIX ACL设置共享
将Samba设置为独立服务器
smb.conf--- man手册
Samba命令帮助文档
帮助文档-----002
点我回顶部自动化配置脚本
  1. #
复制代码
来源:https://www.cnblogs.com/shiwei1930/p/17835963.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具