搭建 samba 服务器

Samba,是种用来让 UNIX 系列与微软 Windows 操作系统的 SMB/CIFS(Server Message Block/Common Internet File System)网络协议做链接的自由软件。第三版不仅可访问及分享 SMB 的文件夹及打印机,本身还可以集成入 Windows Server 的网域,扮演为网域控制站(Domain Controller)以及加入 Active Directory 成员。简而言之,此软件在 Windows 与 UNIX 系列操作系统之间搭起一座桥梁,让两者的资源可互通有无

部署环境如下:

然后分别安装服务端和客户端对应的软件( samba-client 在这里并不只是 samba 的客户端,也是一个提供了 samba 相关命令的工具)

 查看 samba-client 软件包安装了哪些命令

 切换至 samba 配置文件的目录,然后操作 samba 的配置文件( smb.conf.example 为 samba 的示例配置文件 )

 然后编辑 smb.conf 配置文件,在配置文件中加入以下内容

 

================== Share Definitions ==================

[共享名]

 

comment = 任意字符串

说明:comment 是对该共享的描述,可以是任意字符串

 

path = 共享目录路径

说明:path 用来指定共享目录的路径。可以用 %u、%m 这样的宏来代替路径里的 unix 用户和客户机的 Netbios 名,用宏表示主要用于 [homes] 共享域。例如:如果我们不打算用 home 段做为客户的共享,而是在 /home/share/ 下为每个 Linux 用户以他的用户名建个目录,作为他的共享目录,这样 path 就可以写成:path = /home/share/%u; 用户在连接到这共享时具体的路径会被他的用户名代替,要注意这个用户名路径一定要存在,否则,客户机在访问时会找不到网络路径。同样,如果我们不是以用户来划分目录,而是以客户机来划分目录,为网络上每台可以访问 samba 的机器都各自建个以它的 netbios 名的路径,作为不同机器的共享资源,就可以这样写:path = /home/share/%m 

 

browseable = yes/no

说明:browseable 用来指定该共享是否可以浏览

 

writable = yes/no

说明:writable 用来指定该共享路径是否可写

 

available = yes/no

说明:available 用来指定该共享资源是否可用

 

admin users = 该共享的管理者

说明:admin users 用来指定该共享的管理员(对该共享具有完全控制权限)在 samba 3.0 中,如果用户验证方式设置成 “security=share” 时,此项无效

例如:admin users = bobyuan,jane(多个用户中间用逗号隔开)

 

valid users = 允许访问该共享的用户

说明:valid users用来指定允许访问该共享资源的用户

例如:valid users = bobyuan,@bob,@tech( 多个用户或者组中间用逗号隔开,如果要加入一个组就用 “@+组名” 表示 )

 

invalid users = 禁止访问该共享的用户

说明:invalid users 用来指定不允许访问该共享资源的用户

例如:invalid users = root,@bob( 多个用户或者组中间用逗号隔开 )

 

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

说明:write list 用来指定可以在该共享下写入文件的用户

例如:write list = bobyuan,@bob

 

public = yes/no

说明:public 用来指定该共享是否允许 guest 账户访问

 

guest ok = yes/no

说明:意义同 “public”

然后使用 testparm 命令查看配置文件是否正确,并重启服务载入配置文件和设置下次开机启动

 然后创建要共享的目录和共享用户

 给共享用户设置一个 samba 密码,即客户端访问服务端需要输入的密码,和用户登录密码没关系

 服务端关闭防火墙和 SELinux(防火墙放行 samba 服务的流量且 /smbshare 目录打上 samba_share_t 的标签也可以)

 Linux 客户端访问 samba 服务端(可以用?查看支持的命令,因为配置文件中我们编辑了可写入文件操作,所以在这里也可以写入文件,如果不能写入,记得给 /smbshare 目录其他人赋予写的权限)

 Windows 客户端运行 cmd 访问 samba 服务端( Windows 中的路径以 ‘\’ 作为分隔,访问的前提是 Windows 和 Linux 网络可达)

 第一次登录需要输入用户名和密码,用户名这里是 share,密码是自己设置的 samba 密码

因为之前登录过,有缓存,所以在这里没提示输入登录账户和密码,所以,直接看登录后的效果

 

 Windows 中写入操作不再举例

posted @ 2022-03-29 10:38  demoduan  阅读(323)  评论(0编辑  收藏  举报