date created: 2022-11-29 16:31

心血来潮,任务是将debian搭建samba服务。虽然大学学过,但是已经忘得差不多了。。。

最怕改配置文件了。。

下载samba

这个很重要。但是这个步骤一直告诉我依赖库有问题,我很是好奇依赖库哪里有问题,已经换成国内的镜像源。还是有依赖库的问题。以致于总是安装不上。后来才明白,这种依赖的问题大多数是源有问题,可以尝试换个源试试的。

/etc/aptsources.list文件,如果你不习惯使用linux的vim可以使用xshell的xftp进行文件更改。另外说一句,debian这系统和centos还不一样,需要有权限才能对文件进行操作我,我要更改系统文件的话必须加上sudo才可以。

打开sources.list文件之后,进行更改,添加上源

#阿里云镜像源
deb https://mirrors.aliyun.com/debian/ bullseye main non-free contrib
deb-src https://mirrors.aliyun.com/debian/ bullseye main non-free contrib
deb https://mirrors.aliyun.com/debian-security/ bullseye-security main
deb-src https://mirrors.aliyun.com/debian-security/ bullseye-security main
deb https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib
deb-src https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib
deb https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib
deb-src https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib

添加上之后,保存文件然后输入下面命令更新源

sudo apt-get update

sudo apt-get upgrade

Tips:

sudo apt-get update
这个命令,会访问源列表里的每个网址,并读取软件列表,然后保存在本地电脑。我们在新立得软件包管理器里看到的软件列表,都是通过update命令更新的。

update后,可能需要upgrade一下。

sudo apt-get upgrade
这个命令,会把本地已安装的软件,与刚下载的软件列表里对应软件进行对比,如果发现已安装的软件版本太低,就会提示你更新。如果你的软件都是最新版本,会提示:

升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。

安装samba

root用户下直接使用以下命令

 apt-get install samba

若是普通用户下使用以下命令

 sudo apt-get install samba

安装好samba之后然后就是更改配置文件/etc/samba下面的smb.conf文件

更改samba配置文件

我主要更改了home文件下面的配置文件,appshare是我自己写的配置,可以照着写一下。

[global]
workgroup = WORKGROUP
   log file = /var/log/samba/log.%m
   max log size = 1000
   logging = file
   panic action = /usr/share/samba/panic-action %d
   server role = standalone server
   obey pam restrictions = yes
   unix password sync = yes
   map to guest = bad user #设置是否可以匿名访问
   usershare allow guests = yes
[homes]
   comment = Home Directories
   browseable = yes
   public = yes
   guest ok = yes
   read only = no
   writable = yes
   create mask = 0777
   directory mask = 0777
   valid users = %S
[appshare]
comment = WinccOA Share #描述
path = /home/uarto/app   #路径
browseable = yes   #是否可见
writable = yes #可写
available = yes
public = yes #公共
read only = no #只读,不能和上面的pulic =yes 冲突
guest ok = yes
browseable = yes
create mask = 0777
directory mask = 0777

再然后就是保存重启配置文件,重启samba服务就可以

sudo systemctl restart smbd

如果出现文件夹无法访问的情况,有可能是没有给共享文件夹下赋予一定的权限,使用chmod更改文件夹权限就可以。

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] 打印机共享参数
comment = All Printers
path = /var/spool/samba共享文件的实际路径(重要)。
browseable = no
guest ok = no 等于 public = no是否所有人可见,等同于"public"参数。
writable = no 等于 read only = yes
printable = yes

共享选项及说明,按照需求合理配置



[共享名称]: 共享中看到的共享目录名


comment = 共享的描述. 

path = 共享目录路径(可以用%u、%m这样的宏来代替路径如:/home/share/%u) 

browseable = yes/no指定该共享是否在“网上邻居”中可见。

writable = yes/no指定该共享路径是否可写。

read only = yes/no设置共享目录为只读(注意设置不要与writable有冲突) 

available = yes/no指定该共享资源是否可用。

admin users = bobyuan,jane指定该共享的管理员,用户验证方式为“security=share”时,此项无效。 

valid users = bobyuan,jane允许访问该共享的用户或组-“@+组名” 

invalid users = 禁止访问该共享的用户与组(同上) 

write list = 允许写入该共享的用户

public = yes/no共享是否允许guest账户访问。 

guest ok = yes/no意义同“public”。

create mask = 0700指定用户通过Samba在该共享目录中创建文件的默认权限。0600代表创建文件的权限为rw-------

directory mask = 0700指定用户通过Samba在该共享目录中创建目录的默认权限。0600代表创建目录的权限为rwx------ 
最后修改:2024 年 11 月 04 日
如果觉得我的文章对你有用,请随意赞赏