Samba
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,有服务端和客户端程序构成。随着Linux的普及,如何共享Linux下的文件成为用户关心的问题。其实,几乎所有的Linux发行套件都提供了一个很好的工具Samba——通过它可以轻松实现文件共享。
一、SMB文件共享
通用lnternet文件系统(CIFS)也称为服务器信息块(SMB),是适用于MicrosoftWindows服务器和客户端的标准文件和打印机共享系统。
Samba服务可用于将Linux文件系统作为CIFS/SMB网络文件共享进行共享,并将Linux打印机作为CIFS/SMB打印机共享进行共享。
[root@shareserver ~]# ———————服务端 ip:172.25.254.227
[root@client ~]# ——————客户端 ip:172.25.254.127
1、安装以及启动服务
在服务端:
[root@shareserver ~]# yum install samba samba-client samba-common -y
#samba —— 提供samba服务的主命令;
#samba-client —— 提供测试服务
#samba-common —— 提供管理命令;
[root@shareserver ~]# systemctl start smb #启动smb服务
[root@shareserver ~]# systemctl enable smb.service #开机启动smb服务
[root@shareserver ~]# systemctl stop firewalld #关闭火墙
[root@shareserver ~]# systemctl disable firewalld #关闭火墙并且开机不启动
[root@shareserver ~]# netstat -antlp | grep smb # 查看samba的端口
客户端进行测试:
[root@client ~]# yum install samba-client -y #安装
匿名登陆
因为在服务端未设置,所以不用输入密码,直接回车,登陆成功
[root@client ~]# smbclient -L //172.25.254.227 #匿名登陆服务端,并查看信息,-L表示查看共享列表
2、添加smb用户(在服务端)
smb用户必须是本地用户!!!
添加用户student、tom
[root@shareserver ~]# smbpasswd -a student # 把本机用户student添加到sam服务器上
New SMB password: # 设置samba用户的密码,此密码与本机用户的密码无关
Retype new SMB password: # 确认samba用户的密码
Added user student. # 成功
[root@shareserver ~]# smbpasswd -a tom
New SMB password:
Retype new SMB password:
Added user tom.
[root@shareserver ~]# pdbedit -L # 查看smb中的所有用户
student:1000:Student User
tom:1001:
smbpasswd 常用参数:
-a student: 添加用户student为samba用户
-d student:禁用samba用户student
-e student: 启用samba用户student
-x student: 删除samba用户student
可以用 smbpasswd 添加 smb 用户
还可以用 pdbedit 添加 smb 用户
pdbedit 常用参数
–a student:新建Samba用户。
–x student:删除Samba用户。
–L:列出Samba用户列表,读取passdb.tdb数据库文件。
–Lv:列出Samba用户列表的详细信息。
–c “[D]” –u student:暂停该Samba用户的账号。
–c “[]” –u student:恢复该Samba用户的账号。
客户端测试:
[root@client ~]# smbclient -L //172.25.254.227 -U tom # 指定tom用户登陆,-U表示指定用户
可能出现的错误:
输入密码导致的错误:
[root@client ~]# smbclient //172.25.254.227/tom -U tom # 登陆共享服务端,查看共享用户的家目录信息时发现被拒绝
服务端samba_enable_home_dirs布尔值的影响:
在服务端排错:
[root@shareserver ~]# getenforce
Enforcing # selinux与samba服务冲突
[root@shareserver ~]# getsebool -a | grep samba
[root@shareserver ~]# setsebool -P samba_enable_home_dirs on # 分享home目录即可。