一 samba初步了解(2台服务器,服务端 客户端)

1. 什么是samba

Samba服务类似于windows上的共享功能,可以实现在Linux上共享文件,windows上访问,当然在Linux上也可以访问到。

是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。 


二 安装配置samba 服务端

yum install -y samba samba-client 

vi /etc/samba/smb.conf

   [global]部分 

MYGROUP 改为WORKGROUP       (windows默认的工作组名字,修改成相同名字即在一个工作组)。

max log size = 50            把日志做切割,最大50M


security = share           这里指定samba的安全等级。share=用户不需要账户及密码即可登录samba服务器,user,需要输入用户密码


homes,printers两段开头的全部注释掉


   末尾处加入:

[share] 

comment = share all       

path = /tmp/samba         共享目录

browseable = yes          是否可浏览

public = yes              所有的人

writable = no             不可写


/etc/init.d/smb start    开启smb

ps aux |grep smb         查看进程

mkdir /tmp/samba      创建对应目录

chmod 777 /tmp/samba   修改权限

windows 访问samba   运行输入 \\192.168.239.136\share  (快捷运行是windows+r)

不能访问时检测 防火墙和selinux和windows本身的防火墙(没有创建、tmp/samba 也会出现不能访问)

netstat -lnp       查看监听端口

iptables -nvl     查看防火墙规则

getenforce       查看selinux状态


三 Linux访问samba共享文件

安装客户端软件 yum install -y samba-client

smbclient //192.168.239.136/share  不需要输入密码直接回车即可,输入?,可看到能使用的命令

mount挂载samba目录:mount -t cifs //192.168.239.136/share  /mnt

如果缺少cifs,yum list |grep cifs 查找出缺少的包安装

再执行挂载,df -h 可查看挂载

实验samba可写

vi /etc/samba/smb.conf    编辑配置文件

writable= no,修改成yes   修改为可写

/etc/init.d/smb restart   重启


四 用户认证方式访问samba(需要帐号密码,服务端)

   vi /etc/samba/smb.conf

security = share修改为 user     

passdb backend = tdbsam        用户的密码存放形式是tdbsam


最后还需加入:注释掉之前加入的。

[myshare] 

comment = share for users           

path = /samba                    目录修改另一个

browseable = yes                 是否可浏览

writable = yes                   是否可写

public = no                      是否公开

创建目录:mkdir /samba

修改权限:chmod 777 /samba

创建系统账号:

useradd user1

useradd user2

添加user1/user2为samba账户:

pdbedit -a user1                   

pdbedit -a user2 


列出samba所有账号: pdbedit –L

重启服务 service smb restart

smbclient -Uuser1 //192.168.239.136/myshare 登录

windows登录访问  \\192.168.239.136/myshare



五 Linux访问samba共享文件

安装客户端软件 yum install -y samba-client

命令格式:smbclient //IP/共享名 -U 用户名

如:smbclient //127.0.0.1/share  如果是匿名访问可以省略掉-U

mount挂载samba目录:mount -t cifs //192.168.0.22/myshare  /mnt -o username=user1,password=123456  

samba配置文件

smbpasswd:该方式是使用smb工具smbpasswd给系统用户(真实用户或者虚拟用户)设置一个Samba密码,客户端就用此密码访问Samba资源。smbpasswd在/etc/samba中,需要手工创建该文件。

cat /etc/passwd | mksmbpasswd.sh >/etc/samba/smbpasswd

tdbsam:使用数据库文件创建用户数据库。数据库文件叫passdb.tdb,在/etc/samba中。passdb.tdb用户数据库可使用 smbpasswd -a 创建Samba用户,要创建的Samba用户必须先是系统用户。也可使用pdbedit创建Samba账户。(注意,使用smbpasswd -a  username 这个同样也是tdbsam,并非上面的那种)

pdbedit参数很多,列出几个主要的:

pdbedit -a username:新建Samba账户。

pdbedit -x username:删除Samba账户。

pdbedit -L:列出Samba用户列表,读取passdb.tdb数据库文件。

pdbedit -Lv:列出Samba用户列表详细信息。

pdbedit -c “[D]” -u username:暂停该Samba用户账号。

pdbedit -c “[]” -u username:恢复该Samba用户账号。

ldapsam:基于LDAP账户管理方式验证用户。首先要建立LDAP服务,设置 “passdb backend = ldapsam:ldap://LDAP Server”


https://blog.51cto.com/zhangxiaoxiong/1785066