debian11 配置samba服务 linuxsys
一、安装软件包
sudo apt -y install samba samba-common
二、linux系统添加samba需要用的账户,创建需要共享的文件夹,并配置好权限。(注意共享文件夹最好不要是当前用户主目录,主目录在samba配置文件中有默认配置)
# 创建samba共享目录 sudo mkdir /home/samba # 根据具体需求配置权限 sudo chmod 0777 /home/samba
在系统中添加samba共享的帐号,因为samba的共享帐号需要在linux系统中存在
# 在linux系统中添加用于samba的共享用户,这里指定默认shell为nologin,更安全 sudo useradd samba0 -s /usr/sbin/nologin
三、samba配置文件配置 /etc/samba/smb.conf,配置
注1: 注意不能把匿名登录和账户密码登录配置在一起,否则匿名是无法登录的。
遇到的错误:
tree connect failed: NT_STATUS_ACCESS_DENIED
1)匿名登录配置片段(个人局域网共享,方便)
[public] # 共享资源标识 comment= public share # 共享资源描述 path=/home/samba # 共享的目录 read only = no # 是否只读,注意不要和writable冲突 create mask = 0777 # 创建文件的权限 directory mask = 0777 browseable=yes # 共享是否可见 writable=yes available=yes guest ok = yes # 是否可以匿名访问,与 public=yes 类似,貌似只需要配置一个
2)指定名登录配置(这里我设置了/home/sambavideo权限为0777)
[video] comment = Share Video path = /home/sambavideo read only = no create mask = 0700 directory mask = 0700 browseable = yes writable = yes available = yes valid users = samba0 write list = samba0 guest ok = yes # 匿名仍无法登录
注2: debian中samba服务的名称为 smbd,可能不同于红帽系等操作系统
遇到的错误:Failed to restart samba.service: Unit samba.service not found.
四、修改好配置文件后重启samba服务
修改好后可以在任意目录运行testparm验证配置文件的是否合法
# 如下提示标识配置没有语法错误 $ testparm Load smb config files from /etc/samba/smb.conf Loaded services file OK. Weak crypto is allowed Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions
sudo systemctl restart smbd # 重启服务 # 其他命令 sudo systemctl enable smbd # 开启开机自启 sudo systemctl start smbad # 启动服务 sudo systemctl reload smbd # 重载配置 sudo systemctl stop smbd # 停止服务
五、验证登录,这里用linux系统的smbclient验证共享
# 安装 smbclient命令 sudo apt -y install smbclient
本地登录验证共享是否成功, 命令格式:smbclient //samba服务器ip地址/samba共享资源标识
smbclient //127.0.0.1/public
运行这个命令回默认要求输入密码,配置的匿登录不需要输入密码,直接回车,登录成功。smbclient登陆成功后就进入了交互界面,支持一些简单命令。
查询: ls 但是不支持linux系统的参数模式
put 文件名 # 上传单个文件
get 文件名 # 下载单个文件,如果文件名中有空格等复杂情况,尝试用双引号包住文件名 "文件名 xx"
mget 文件名1 文件名2 ... # 多文件下载
help # 可以查看smbclient交互模式可以使用的所有命令
$ smbclient //192.168.122.238/public Enter WORKGROUP\mydebian's password: Anonymous login successful Try "help" to get a list of possible commands. smb: \>
指定用户登录
smbclient //192.168.122.238/video -U samba0 smbclient: Can't load /etc/samba/smb.conf - run testparm to debug it Enter WORKGROUP\samba0's password: Try "help" to get a list of possible commands. smb: \>