Samba简介与配置(匿名&本地用户验证)
Samba简介
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。
在此之前我们已经了解了NFS,NFS与samba一样,也是在网络中实现文件共享的一种实现,但不幸的是,其不支持windows平台,而本章要提到的samba是能够在任何支持SMB协议的主机之间共享文件的一种实现,当然也包括windows。
SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。
SMB协议是C/S型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。
Samba监听端口:
- TCP:相对应的服务是smbd服务,其作用是提供对服务器中文件、打印资源的共享访问。
- 139
- 445
- UDP:相对应的服务是nmbd服务,其作用是提供基于NetBIOS主机名称的解析。
- 137
- 138
samba进程:
- nmbd:对应netBIOS
- smbd:对应cifs协议
- winbindd+ldap:对应Windows AD活动目录
samba用户:
- 账户:都是系统用户/etc/passwd
- 密码:Samba服务自有密码文件,通过smbpasswd -a USERNAME命令设置
#smbpasswd命令:
-a Sys_User #添加系统用户为samba用户并为其设置密码
-d #禁用用户帐号
-e #启用用户帐号
-x #删除用户帐号
Samba安全级别:
- user:基于本地的验证
- server:由另一台指定的服务器对用户身份进行认证
- domain:由域控进行身份验证
- share:匿名访问(现版本已取消这个安全级别,匿名访问配置方式发生了改变)
Samba配置文件:
- /etc/samba/smb.conf
- [global]:全局配置,此处的设置项对整个samba服务器都有效
- [homes]:宿主目录共享设置,此处用来设置Linux用户的默认共享,对应用户的宿主目录。当用户访问服务器中与自己用户名同名的共享目录时,通过验证后将会自动映射到该用户的宿主目录中
- [printers]:打印机共享设置
常用配置文件参数:
参数 | 配置 |
---|---|
workgroup | 表示设置工作组名称 |
server string | 表示描述samba服务器 |
security | 表示设置安全级别,其值可为share、user、server、domain |
passdb backend | 表示设置共享帐户文件的类型,其值可为tdbsam(tdb数据库文件)、ldapsam(LDAP目录认证)、smbpasswd(兼容旧版本samba密码文件) |
comment | 表示设置对应共享目录的注释,说明信息,即文件共享名 |
browseable | 表示设置共享是否可见 |
writable | 表示设置目录是否可写 |
path | 表示共享目录的路径 |
guest ok | 表示设置是否所有人均可访问共享目录 |
public | 表示设置是否允许匿名用户访问 |
write list | 表示设置允许写的用户和组,组要用@表示,例如 write list = root,@root |
valid users | 设置可以访问的用户和组,例如 valid users = root,@root |
hosts deny | 设置拒绝哪台主机访问,例如 hosts deny = 192.168.72.1 |
hosts allow | 设置允许哪台主机访问,例如 hosts allow = 192.168.72.2 |
printable | 表示设置是否为打印机 |
可以使用testparm命令测试配置文件是否有语法错误,以及显示最终生效的配置
配置Samba
配置匿名共享
#安装Samba
[root@lynkser ~]# yum -y install samba
#编辑配置文件
[root@lynkser ~]# vim /etc/samba/smb.conf
[global]
map to guest = Bad_User
#创建共享目录
[root@lynkser ~]# mkdir /share
[root@lynkser ~]# chmod 777 /share/
#添加共享配置
[root@lynkser ~]# vim /etc/samba/smb.conf
[lynk]
comment = lynk
path = /opt/share
browseable = yes
guest ok = yes
writable = yes
public = yes
#检查下配置有没有问题
[root@lynkser ~]# testparm /etc/samba/smb.conf
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
Processing section "[printers]"
Processing section "[print$]"
Processing section "[lynk]"
Loaded services file OK.
Server role: ROLE_STANDALONE
#启动服务
[root@lynkser ~]# systemctl start smb
[root@lynkser ~]# systemctl enable smb
#添加用户
[root@Lynkser ~]# useradd Bad_User
[root@Lynkser ~]# smbpasswd -a Bad_User
New SMB password:
Retype new SMB password:
Added user BadUser.
#配置防火墙富规则
[root@lynkser ~]# firewall-cmd --add-rich-rule 'rule family=ipv4 source address=192.168.26.0/24 service name=samba accept' --permanent
success
[root@lynkser ~]# firewall-cmd --reload
success
#配置SElinux
[root@lynkser ~]# setsebool -P samba_enable_home_dirs on
[root@lynkser ~]# chcon -Rt samba_share_t /opt/share
在客户端验证服务
#安装Samba客户端
[root@lynk ~]# yum install -y samba-client
#配置防火墙富规则
[root@lynk ~]# firewall-cmd --add-rich-rule 'rule family=ipv4 source address=192.168.26.129 service name=samba accept' --permanent
success
[root@lynk ~]# firewall-cmd --reload
success
#查看共享的资源
[root@lynk ~]# smbclient -L 192.168.26.129 -U "Bad User"
Enter SAMBA\Bad User's password:
OS=[Windows 6.1] Server=[Samba 4.6.2]
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
lynk Disk lynk
IPC$ IPC IPC Service (Samba 4.6.2)
OS=[Windows 6.1] Server=[Samba 4.6.2]
Server Comment
--------- -------
Workgroup Master
--------- -------
#挂载Samba服务端共享文件到本地
[root@lynk ~]# mkdir /opt/share
[root@lynk ~]# mount -t cifs //192.168.26.129/lynk /opt/share -o username='Bad User'
[root@lynk ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 1.4G 17G 8% /
devtmpfs 479M 0 479M 0% /dev
tmpfs 489M 0 489M 0% /dev/shm
tmpfs 489M 6.7M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 297M 108M 190M 37% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/sr0 3.8G 3.8G 0 100% /cdrom
//192.168.26.129/lynk 18G 1.4G 17G 8% /opt/share
#测试文件权限
[root@lynk ~]# cd /opt/share
[root@lynk share]# touch a
[root@lynk share]# mkdir b
[root@lynk share]# ll
total 0
-rw-r--r--. 1 nobody nobody 0 Jan 14 18:23 a
drwxr-xr-x. 2 nobody nobody 0 Jan 14 18:23 b
配置用户认证共享
#安装samba
[root@lynkser ~]# yum -y install samba
#新建samba用户并设置密码
[root@lynkser ~]# useradd -M lynksmb
[root@lynkser ~]# smbpasswd -a lynksmb
New SMB password:
Retype new SMB password:
Added user lynksmb.
#将lynksmb映射为share用户
[root@lynkser ~]# echo 'lynksmb = share' >> /etc/samba/smbusers
#编辑配置文件
[root@lynkser ~]# vim /etc/samba/smb.conf
username map = /etc/samba/smbusers
#创建共享文件并更改属主
[root@lynkser ~]# mkdir /opt/share
[root@lynkser ~]# chown -R lynk.lynk /opt/share
#添加一个共享配置
[lynk]
comment = lynk
path = /opt/share
browseable = yes
guest ok = yes
writable = yes
write list = share
public = yes
#检查配置文件
[root@lynkser ~]# testparm /etc/samba/smb.conf
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
Processing section "[printers]"
Processing section "[print$]"
Processing section "[lynk]"
Loaded services file OK.
Server role: ROLE_STANDALONE
#启动服务
[root@lynkser ~]# systemctl start smb
[root@lynkser ~]# systemctl enable smb
#配置防火墙富规则
[root@lynkser ~]# firewall-cmd --add-rich-rule 'rule family=ipv4 source address=192.168.26.0/24 service name=samba accept' --permanent
success
[root@lynkser ~]# firewall-cmd --reload
success
#配置SElinux
[root@lynkser ~]# setsebool -P samba_enable_home_dirs on
[root@lynkser ~]# chcon -Rt samba_share_t /opt/share
在客户端验证服务
#安装Samba客户端
[root@lynk ~]# yum install -y samba-client
#配置防火墙富规则
[root@lynk ~]# firewall-cmd --add-rich-rule 'rule family=ipv4 source address=192.168.26.129 service name=samba accept' --permanent
success
[root@lynk ~]# firewall-cmd --reload
success
#查看共享资源
[root@lynk ~]# smbclient -L 192.168.26.129 -U share
Enter SAMBA\share's password:
Domain=[LYNKSER] OS=[Windows 6.1] Server=[Samba 4.6.2]
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
lynk Disk lynk
IPC$ IPC IPC Service (Samba 4.6.2)
lynksmb Disk Home Directories
Domain=[LYNKSER] OS=[Windows 6.1] Server=[Samba 4.6.2]
Server Comment
--------- -------
Workgroup Master
--------- -------
#挂载Samba服务端共享文件到本地
[root@lynk ~]# mkdir /opt/share
[root@lynk ~]# mount -t cifs //192.168.26.129/lynk /opt/share/ -o username=share,password=wasdjkl
[root@lynk ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 1.4G 17G 8% /
devtmpfs 479M 0 479M 0% /dev
tmpfs 489M 0 489M 0% /dev/shm
tmpfs 489M 6.7M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 297M 108M 190M 37% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/sr0 3.8G 3.8G 0 100% /cdrom
//192.168.26.129/lynk 18G 1.4G 17G 8% /opt/share
#测试文件权限
[root@lynk ~]# cd /opt/share
[root@lynk share]# touch a
[root@lynk share]# mkdir b
实例
需求:
- 在server上配置SAMBA服务
- SAMBA服务器必须是STAFF工作组的一个成员
- 共享/common目录,共享名为common
- 只有192.168.26.0/24域内的客户端可以访问common共享
- common共享必须是可以浏览的
- natasha可以浏览共享中的内容,验证密码为tangkai
[root@lynkser ~]# yum install -y samba-*
[root@lynkser ~]# vim /etc/samba/smb.conf
workgroup = STAFF
[common]
path = /common
browseable = yes
[root@lynkser samba]# mkdir /common
[root@lynkser samba]# systemctl mask iptables.service ebtables.service
Created symlink from /etc/systemd/system/iptables.service to /dev/null.
Created symlink from /etc/systemd/system/ebtables.service to /dev/null.
[root@lynkser samba]# firewall-cmd --add-rich-rule 'rule family=ipv4 source address=192.168.26.0/24 service
name=samba accept' --permanent
success
[root@lynkser samba]# firewall-cmd --add-rich-rule 'rule family=ipv4 source address=192.168.26.0/24 service name=samba-client accept' --permanent
success
[root@lynkser samba]# firewall-cmd --reload
success
[root@lynkser samba]# useradd natasha
[root@lynkser samba]# smbpasswd -a natasha
New SMB password:
Retype new SMB password:
Added user natasha.
[root@lynkser samba]# setfacl -m u:natasha:r-x /common
[root@lynkser samba]# setsebool -P samba_enable_home_dirs 1
[root@lynkser samba]# chcon -Rt samba_share_t /common
[root@lynkser samba]# systemctl start smb nmb
[root@lynkser samba]# systemctl enable smb nmb
Created symlink from /etc/systemd/system/multi-user.target.wants/smb.service to /usr/lib/systemd/system/smb.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/nmb.service to /usr/lib/systemd/system/nmb.service.
[root@lynk ~]# yum install -y samba-client*
[root@lynk ~]# firewall-cmd --add-rich-rule 'rule family=ipv4 source address=192.168.26.129 service name=samba-client accept' --permanent
success
[root@lynk ~]# firewall-cmd --reload
success
[root@lynk ~]# mount -t cifs -o username=natasha,password=tangkai //192.168.26.129/common /mnt
[root@lynk ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 1.4G 17G 8% /
devtmpfs 479M 0 479M 0% /dev
tmpfs 489M 0 489M 0% /dev/shm
tmpfs 489M 6.7M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 297M 108M 190M 37% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/sr0 3.8G 3.8G 0 100% /cdrom
//192.168.26.129/common 18G 1.4G 17G 8% /mnt
[root@lynk ~]# cd /mnt
[root@lynk mnt]# ll
total 0
-rw-r--r--. 1 root root 0 Jan 15 00:04 aa
- 在server通过samba共享目录/storage
- 共享名为share
- 共享目录只能被192.168.26.0/24内的用户使用
- 共享目录share可以浏览
- 用户sarah能以读的方式访问此共享,密码为tangkai
- 用户kitty能以读写的方式访问此共享,密码为tangkai
- 此共享永久挂载在客户机的/mnt/dev目录,并使用用户sarah进行认证,任何用户可以临时通过kitty获得读写权限
[root@lynkser common]# mkdir /storage
[root@lynkser common]# chcon -Rt samba_share_t /storage
[root@lynkser common]# adduser sarah
[root@lynkser common]# adduser kitty
[root@lynkser common]# smbpasswd -a sarah
New SMB password:
Retype new SMB password:
Added user sarah.
[root@lynkser common]# smbpasswd -a kitty
New SMB password:
Retype new SMB password:
Added user kitty.
[root@lynkser common]# setfacl -m u:sarah:r-x /storage
[root@lynkser common]# setfacl -m u:kitty:rwx /storage
[root@lynkser common]# vim /etc/samba/smb.conf
[common]
path = /common
browseable = yes
valid user = natasha
[share]
path = /storage
browseable = yes
valid user = sarah,kitty
writable = no
write list = kitty
[root@lynkser common]# systemctl reload smb nmb
[root@lynk /]# umount /mnt
[root@lynk /]# mkdir /mnt/dev
[root@lynk /]# vim /etc/fstab
//192.168.26.129/share /mnt/dev cifs multiuser,username=sarah,password=tangkai,sec=ntlmssp 0 0
[root@lynk /]# vim /etc/fstab
[root@lynk /]# yum -y install cifs-utils*
[root@lynk /]# ls /home
lynk
[root@lynk /]# su - lynk
[lynk@lynk ~]$ cifscreds add -u kitty 192.168.26.129
Password:
Samba简介与配置(匿名&本地用户验证)的更多相关文章
- CentOS 6.8 ftp服务安装配置 基于本地用户和虚拟用户
CentOS 6.8 ftp服务安装配置 基于本地用户和虚拟用户 一.安装ftp服务 1.检查是否已经安装 # rpm -qa | grep ftp ftp-0.17-54.el6.x86_64 vs ...
- 疑难问题解决备忘录(3)——ubuntu12.04配置vsftp本地用户登录
vsftpd.conf相关项设置 local_enabled = YES write_enable=YES pam_service_name=ftp pam_service_name按默认的vsftp ...
- Samba服务的配置总结
之前介绍了Linux下Samba服务器部署,这里简单总结下Samba服务参数的配置说明: Samba服务的主配置文件是smb.conf,默认在/etc/samba/目录下.smb.conf含有多个段, ...
- Linux:FTP服务匿名用户,本地用户,虚拟用户配置
匿名用户 FTP协议占用两个端口号: 21端口:命令控制,用于接收客户端执行的FTP命令. 20端口:数据传输,用于上传.下载文件数据. 实验:匿名访问,服务器192.168.10.10 客户 ...
- 演示vsftpd服务匿名访问模式、本地用户模式的配置
文件传输协议(FTP,File Transfer Protocol) 即能够让用户在互联网中上传.下载文件的文件协议,而FTP服务器就是支持FTP传输协议的主机,要想完成文件传输则需要FTP服务端和F ...
- 记录一次centos6.4版本的VSFTP本地用户登陆的配置
其实vsftp是一个非常常用而且简单的服务,但是假如服务不是你配置的前者没有留下参考档案,的确是件头疼的事儿,特此记录下. 首先是vsftp的安装当然安装有源码的编译和yum等 这里我选择rpm包的y ...
- Linux:ftp服务本地用户,虚拟用户配置
本地用户 1. 修改ftp配置文件, anonymous_enable=NO 默认为YES,修改为NO,禁止匿名访问, 监听端口,可以根据自己的需求修改,为了安全起见自定义为好 2. /etc/ ...
- CentOS6.5下搭建ftp服务器(三种认证模式:匿名用户、本地用户、虚拟用户)
CentOS 6.5下搭建ftp服务器 vsftpd(very secure ftp daemon,非常安全的FTP守护进程)是一款运行在Linux操作系统上的FTP服务程序,不仅完全开源而且免费,此 ...
- centos7 配置 ftp 服务器(本地用户)
2021-09-02 1. 安装 # 安装 vsftpd yum -y install vsftpd 2. 启动服务并添加到开机自启 # 启动 vsftpd systemctl start vsftp ...
随机推荐
- cookie.js插件
/*! cookiejs v1.0.23 | MIT (c) 2018 kenny wong | https://github.com/jaywcjlove/cookie.js */!function ...
- 2017-2018-2 20165312实验二《Java面向对象程序设计》实验报告
2017-2018-2 20165312实验二<Java面向对象程序设计>实验报告 实验中遇到的问题 1.增加MyUtil的测试类之后,TestCase是红色的,但是没有找到junit.j ...
- rpm软件包、yum软件仓库、systemd初始化进程
rpm软件包.yum软件仓库.systemd初始化进程 作者:Eric 微信:loveoracle11g 红帽软件包管理器rpm (Redhat Package Manager) RPM会建立统一的数 ...
- linux添加zabbix service并开机自动启动
最近有个数据库相关操作后需要重启操作系统,重启后发现zabbix监控一直没有数据,迷了半天原来zabbix压根就没有启动.想了半天决定把zabbix添加到系统服务,并设置开机启动. 1.按一定的规则编 ...
- html5 + shiro
偶然与巧合 舞动了蝶翼 谁的心头风起 前赴而后继 万千人追寻 荒漠唯一菩提 似擦肩相遇 或擦肩而去 命运犹如险棋 无数时间线 无数可能性 终于交织向你
- java多线程中最佳的实践方案是什么?
java多线程中最佳的实践方案是什么? 给你的线程起个有意义的名字.这样可以方便找bug或追踪.OrderProcessor, QuoteProcessor or TradeProcessor 这种名 ...
- linux服务之apache(二)
1.ip/pv/uv(用来统计网站被访问情况) ip:表示该网站一天被多少ip访问过,一天一个ip之算做一次. pv:表示页面被访问的次数 uv:独立访客,一个用户就是一个uv. 2.创建虚拟主机 利 ...
- Postgres——pgadmin复制无主键单表至本地数据库
数据库中存在无主键单表gongan_address_all ,需要将余杭区数据导出成另外一张表,因为数据量太大,sql语句效率太差. 通过sql语句查询出余杭区数据,并导出成csv,sql等格式,再导 ...
- python常用库,包网址
常用包下载:https://pypi.org/ 1.NumPy: https://www.numpy.org/ 2.pandas: http://pandas.pydata.org/ 3.SciPy: ...
- leetcode22
public class Solution { public IList<string> GenerateParenthesis(int n) { List<string> l ...