欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux使用Samba实现文件共享

程序员文章站 2023-11-04 12:01:10
Samba服务是现在Linux系统与Windows系统之间共享文件的最佳选择。 [root@study ~]# yum install samba -y #安装samba服务 [root@study ~]# cat -n /etc/samba/smb.conf #查看samba主配置文件 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使用Samba实现文件共享

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