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: \> 

 

posted on 2023-01-11 01:38  smoggy  阅读(2888)  评论(0编辑  收藏  举报