samba 服务
1.samba 简介
- Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序组成
- SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它在局域网内的不同计算机之间提供文件及打印机等资源的共享服务
- SMB协议是C/S型协议,客户机通过协议可以访问服务器上的共享文件系统,打印机以及其他资源
1.1 Samba监听端口
TCP | UDP |
---|---|
139 | 137 |
445 | 138 |
tcp端口对应的服务是samba服务,其作用是提供服务器中文件、打印资源的共享访问
udp端口对应的服务是nmbd服务,其作用是提供基于NetBIOS主机名称的解析
1.2samba 进程
进程 | 对应 |
---|---|
nmbd | 对应netbios |
smbd | 对应cifs协议 |
window+ldap | 对应windows AD活动目录 |
1.3 samba 用户
账户 | 密码 |
---|---|
都是系统用户/etc/passwd Samba | 服务自有密码文件,通过smbpasswd -a USERNAME命令设置 |
**//smbpasswd命令:**
-a //添加系统用户为samba用户并为其设置密码
-d //禁用用户账号
-e //启用用户账号
-x //删除用户账号
**//下载samba服务**
[root@localhost ~]# yum -y install samba*
[root@localhost ~]# useradd tom
**//将用户加入到samba中**
[root@localhost ~]# smbpasswd -a tom
New SMB password:
Retype new SMB password:
Added user tom.
1.4 samba安全级别
安全级别 | 作业 |
---|---|
user | 基于本地验证 |
server | 由另一台指定的服务器对用户身份进行认证 |
domain | 由域控进行身份验证 |
1.5 samba配置文件
- /etc/samba/smb.conf(主配置文件)
samba的三大组成 | 作用 |
---|---|
[global] | 全局配置,此处的设置对samba服务器都有效 |
[homes] | 宿主目录共享位置,此处用来设置Linux用户的默认设置,对应用户的宿主目录 |
[printers] | 打印机共享设置 |
- 常用的配置文件参数
参数 | 作用 |
---|---|
workgroup | 表示设置工作组目录 |
server string | 表示描述samba服务器 |
security | 表示设置安全级别,其值可为share、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.xxx.xxx |
hosts allow | 设置允许那台主机访问,例如:hosts deny = 192.168.xxx.xxx |
printable | 表示设置是否为打印机 |
2.配置共享方式
方式一:配置用户认证共享
1、关闭防火墙(服务端)
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost ~]# vim /etc/selinux/config
**//将第六行中的 enforcing 改为 disabled**
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
[root@localhost ~]# setenforce 0
1.1、服务端操作
**//下载samba服务**
[root@localhost ~]# yum -y install samba*
**//启动服务**
[root@localhost ~]# systemctl start nmb smb
[root@localhost ~]# useradd lol
[root@localhost ~]# smbpasswd -a lol
New SMB password:
Retype new SMB password:
Added user lol.
[root@localhost ~]# mkdir /123
**//配置共享**
[root@localhost ~]# vim /etc/samba/smb.conf
.......
**//在后面添加配置共享**
[zhao]
path = /123
writable = yes
guest ok = yes
hosts allow = 192.168.206.130
write list = lol
**//更改用户对共享目录的权限**
[root@localhost ~]# setfacl -m u:lol:rwx /123
[root@localhost ~]# getfacl /123
getfacl: Removing leading '/' from absolute path names
# file: 123
# owner: root
# group: root
user::rwx
user:lol:rwx
group::r-x
mask::rwx
other::r-x
[root@localhost ~]# cd /123
[root@localhost 123]# ls
[root@localhost 123]# touch 1 2 3
[root@localhost 123]# ls
1 2 3
2.客户端操作
**//关闭防火墙(四步)**
[root@super ~]# systemctl stop firewalld
[root@super ~]# systemctl disable firewalld
[root@super ~]# vim /etc/selinux/config
**//将第六行中的 enforcing 改为 disabled**
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
[root@super ~]# setenforce 0
setenforce: SELinux is disabled
**//客户端只需下载samba-client服务**
[root@super ~]# yum -y install samba-client
**//查看服务端有哪些共享资源,-L后为服务端ip**
[root@super ~]# smbclient -L 192.168.206.129 -U lol
Enter SAMBA\share's password:
OS=[Windows 6.1] Server=[Samba 4.6.2]
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
zhao Disk
lol Disk Home Directories
OS=[Windows 6.1] Server=[Samba 4.6.2]
Server Comment
--------- -------
Workgroup Master
--------- -------
SAMBA LOCALHOST
2.1挂载(临时挂载)
**//创建挂载目录**
[root@super ~]# mkdir /123
[root@super ~]# mount -t cifs //192.168.206.129/zhao /123 -o username=lol,password=1
[root@super ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/rhel-root 17G 1.1G 16G 7% /
devtmpfs 901M 0 901M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 8.7M 904M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 1014M 143M 872M 15% /boot
tmpfs 183M 0 183M 0% /run/user/0
/dev/sr0 3.8G 3.8G 0 100% /mnt
//192.168.206.129/zhao 17G 1.6G 16G 9% /123
2.2永久挂载
**//创建挂载目录**
[root@super ~]# mkdir /123
[root@super ~]# vim /etc/fstab
........
**//在最后一行添加以下内容**
//192.168.206.129/zhao /123 cifs defaults,username=lol,password=1 0 0
[root@super ~]# mount -a
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/rhel-root 17G 1.1G 16G 7% /
devtmpfs 901M 0 901M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 8.7M 904M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 1014M 143M 872M 15% /boot
tmpfs 183M 0 183M 0% /run/user/0
/dev/sr0 3.8G 3.8G 0 100% /mnt
//192.168.206.129/zhao 17G 1.6G 16G 9% /123
方式二:配置匿名共享
1.服务端操作
**//关闭防火墙**
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost ~]# vim /etc/selinux/config
**//将第六行中的 enforcing 改为 disabled**
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum -y install samba*
[root@localhost ~]# systemctl start nmb smb
[root@localhost ~]# mkdir /456
[root@localhost ~]# chmod 777 /456/
[root@localhost ~]# ll /
总用量 1
drwxrwxrwx. 2 root root 6 3月 26 15:32 456
[root@localhost ~]# vim /etc/samba/smb.conf
# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.
[global]
workgroup = SAMBA
security = user
map to guest = Bad User **//添加此行即可**
**//添加配置共享**
[root@localhost ~]# vim /etc/samba/smb.conf
**//在最后面添加以下内容**
[zuo]
comment = zuo
path = /456
browseable = yes
guest ok = yes
writable = yes
public = yes
[root@localhost ~]# systemctl restart smb
[root@localhost ~]# cd /456
[root@localhost 456]# touch 1 2 3
[root@localhost 456]# ls
1 2 3
2.客户端操作
**//关闭防火墙(四步)**
[root@super ~]# systemctl stop firewalld
[root@super ~]# systemctl disable firewalld
[root@super ~]# vim /etc/selinux/config
**//将第六行中的 enforcing 改为 disabled**
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
[root@super ~]# setenforce 0
setenforce: SELinux is disabled
**//客户端只需下载samba-client服务**
[root@super ~]# yum -y install samba-client
**//查看服务端有哪些共享资源**
[root@super ~]# smbclient -L 192.168.206.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
zuo Disk zuo
IPC$ IPC IPC Service (Samba 4.6.2)
OS=[Windows 6.1] Server=[Samba 4.6.2]
Server Comment
--------- -------
Workgroup Master
--------- -------
SAMBA LOCALHOST
**//此处为临时挂载,永久挂载上面有,可仿照操作。**
[root@super ~]# mkdir /123
[root@super ~]# mount -t cifs //192.168.206.129/zuo /123 -o username='Bad User'
[root@super ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/rhel-root 17G 1.1G 16G 7% /
devtmpfs 901M 0 901M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 8.7M 904M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 1014M 143M 872M 15% /boot
tmpfs 183M 0 183M 0% /run/user/0
/dev/sr0 3.8G 3.8G 0 100% /mnt
//192.168.206.129/zuo 17G 1.6G 16G 9% /123
[root@super ~]# cd /123
[root@super 123]# ls
[root@super 123]# ls
1 2 3