Linux使用Samba实现文件共享
Samba服务是现在Linux系统与Windows系统之间共享文件的最佳选择。
[root@study ~]# yum install samba -y #安装samba服务
[root@study ~]# cat -n /etc/samba/smb.conf #查看samba主配置文件
Samba服务程序中的参数以及作用
| [global] | 参数 | 作用 | 
| workgroup = MYGROUP | 
 #工作组名称  | 
|
| server string = Samba Server Version %v | 
 #服务器介绍信息,参数%v为显示SMB版本号  | 
|
| log file = /var/log/samba/log.%m | 
 #定义日志文件的存放位置与名称,参数%m为来访的主机名  | 
|
| max log size = 50 | 
 #定义日志文件的最大容量为50KB  | 
|
| security = user | 
 #安全验证的方式,总共有4种  | 
|
| 
 #share:来访主机无需验证口令;比较方便,但是安全性很差  | 
||
| 
 #user:需验证来访主机提供口令后才可以访问;提高了安全性  | 
||
| 
 #server:使用独立的远程主机验证来访主机提供的口令(集中管理账户)  | 
||
| 
 #domain:使用域控制器进行身份验证  | 
||
| 
 passdb backend = tdbsam  | 
#定义用户后台的类型,共有3种 | |
| 
 #smbpasswd:使用smbpasswd命令为系统用户设置Samba服务程序的密码  | 
||
| 
 #tdbsam:创建数据库文件并使用pdbedit命令建立Samba服务程序的用户  | 
||
| 
 #ldapsam:基于LDAP服务进行账户验证  | 
||
| 
 load printers = yes  | 
#设置在Samba服务启动时是否共享打印机设备 | |
| 
 cups options = raw  | 
#打印机的选项 | |
| [homes] | #共享参数 | |
| comment = Home Directories | #描述信息 | |
| browseable = no | #指定共享信息是否在“网上邻居”中可见 | |
| writable = yes | #定义是否可以执行写入操作,与"read only“相反 | |
| [printers] | #打印机共享参数 | |
[root@study ~]# mv /etc/samba/smb.conf /etc/samba/smb.conf.bak #备份配置文件
[root@study ~]# cat /etc/samba/smb.conf.bak |grep -v "#" |grep -v ";" | grep -v "^$" > /etc/samba/smb.conf #去掉以#号分号;开头的注释信息。
[root@study ~]# cat /etc/samba/smb.conf
配置共享资源
用于设置Samba服务程序的参数以及作用
| 参数 | 作用 | 
| [database] | 共享名称为database | 
| comment = Do not arbitrarily modify the database file | 警告用户不要随意修改数据库 | 
| path = /home/database | 共享目录为/home/database | 
| public = no | 关闭“所有人可见” | 
| writeable yes | 允许写入操作 | 
第1步:创建用于访问共享资源的账户信息。在Centos7中Samba服务程序默认使用的是用户口令认证模式(user)。
pdbedit命令用于管理SMB服务程序的账户信息数据库,格式为“pdbedit [选项] 账户”。在第一次把账户信息写入到数据库时需要使用-a参数,以后执行修改密码、删除账户等操作时就不在需要该参数。
用于pdbedit命令的参数以及作用
| 参数 | 作用 | 
| -a 用户名 | 建立Samba账户 | 
| -x 用户名 | 删除Samba账户 | 
| -L | 列出账户列表 | 
| -Lv | 列出账户详细信息的列表 | 
[root@study ~]# useradd Samba
[root@study ~]# id Samba
uid=1002(Samba) gid=1002(Samba) groups=1002(Samba)
[root@study ~]# pdbedit -a -u Samba
new password:输入密码
retype new password:再次输入密码
第2步:创建用于共享资源的文件目录。应当考虑文件读写权限问题。
[root@study ~]# mkdir /home/database
[root@study ~]# chown -Rf Samba:Samba /home/database
第3步:在Samba服务程序的主配置文件中,写入共享信息。
[root@study ~]# vim /etc/samba/smb.conf
 1 [global]
     2          workgroup = MYGROUP
     3          server string = Samba Server Version %v
     4          log file = /var/log/samba/log.%m
     5          max log size = 50
     6          security = user
     7          passdb backend = tdbsam
     8          load printers = yes
     9          cups options = raw
    10  [database]
    11          comment = Do not arbitrarily modify the database file
    12          path = /home/database
    13          public = no
    14          writable = yes
第4步:重启smb服务
[root@study ~]# systemctl restart smb
[root@study ~]# systemctl enable smb
利用Windows访问文件共享服务
Linux:192.168.218.138
Win+r
\\192.168.218.138
使用刚才设值的用户名密码登录测试增删改权限

Linux访问文件共享服务
Windows:192.168.0.105
[root@study ~]# yum install cifs-utils -y
在Linux客户端,按照Samba服务的用户名、密码、共享域的顺序将相关信息写入到一个认证文件中。权限修改为仅root管理员读写:
[root@study ~]# vim auth.smb
username=Samba
password=123456
domain=MYGROUP
[root@study ~]# chmod 600 auth.smb
在Linux客户端创建一个用于挂在Samba服务共享资源的目录,挂载信息写入到/etc/fstab文件中,确保挂载信息
[root@study ~]# vim /etc/fstab
//192.168.218.138/database /database cifs credentials=/root/auth.smb 0 0在服务器重启后依然生效:
[root@study ~]# mount -a
Linux客户端成功挂载了Samba服务的共享资源。可以看到Windows系统创建的qer.txt文件
[root@study ~]# cat /database/qer.txt
                    
                
                
            
        
浙公网安备 33010602011771号