samba

安装

For ubuntu

# smbclient 用来测试 samba 服务
sudo apt install samba smbclient

For arch

sudo pacman -Sy samba smbclient

配置文件

/etc/samba/smb.conf 末尾追加如下内容:

注意这里的 [share] windows 映射网络驱动器的时候路径为: \\<ubuntu ip>\share

[share]
path = /home/username/Public
public = yes
writable = yes
valid users = username //映射时的登陆名
create mask = 0644
force create mode = 0644
directory mask = 0755
force directory mode = 0755
available = yes

设置密码

sudo touch /etc/samba/smbpasswd
sudo smbpasswd -a username
# then insert password

重启 samba 服务

For ubuntu

sudo service smbd restart

For arch

sudo systemctl restart smb

测试 samba 服务

smbclient -L //localhost/Public
# 如果提示输入密码说明共享服务成功

windows 挂载 samba 共享

两种挂载方式

  1. win+r, 输入 ubuntu ip
  2. windows 文件管理器, 映射网络驱动器, 输入路径 \\<ubuntu ip>\share

Linux CLI 挂载 samba 共享

sudo mount -t cifs -o username=${USER},password=${PASSWORD},uid=<user>,gid=<group> //server-address/folder /mount/path/on/ubuntu
  • uid,gid 指定为对应smb client用户的id,如果不指定挂载后所有文件显示为root:root mode.

多用户多目录 samba 配置

创建共享目录并配置权限

# samba 用户,仅用于配置文件目录用户及用户组,不用于 samba 客户端访问登录账号
sudo useradd samba

sudo mkdir /samba
sudo mkdir -p /samba/public
sudo mkdir -p /samba/software
sudo mkdir -p /samba/hardware

sudo chown samba:samba /samba -R
# sudo chmod 755 /samba -R

创建账号密码

  • 用户添加命令
    • sudo useradd xxx 默认不会创建 home
    • sudo adduser xxx 默认会创建 home
  • sbin/nologin 不需要这些账号登录服务器权限
# 管理者用户
sudo useradd -s /sbin/nologin henan

# 部门级公共用户
sudo useradd -d /samba/software -s /sbin/nologin software
sudo useradd -d /samba/hardware -s /sbin/nologin hardware

sudo chown samba:samba /samba -R
sudo chown software:samba /samba/software
sudo chown hardware:samba /samba/hardware

chmod 777 /samba/public

smbpasswd 命令设置密码,用于 samba 服务中对用户权限进行管理

sudo smbpasswd -a henan
sudo smbpasswd -a software
sudo smbpasswd -a hardware

参数说明:

-a 添加用户 
-x 删除用户
-d 冻结用户
-n 密码置空

配置samba

/etc/samba/smb.conf

[public]
   path=/samba/public
   public=yes
   writeable=yes
   browseable=yes
   create mask=0775
   directory mask=0775

[software]
   path=/samba/software
   writeable=yes
   browseable=yes
   create mask=0775
   directory mask=0775
   valid users=software,henan

[hardware]
   path=/samba/hardware
   writeable=yes
   browseable=yes
   create mask=0775
   directory mask=0775
   valid users=hardware,henan

参数项说明:

参数说明
comment注释说明
path分享资源的完整路径名称,除了路径要正确外,目录的权限也要设正确
browseable是yes/否no在浏览资源中显示共享目录,若为否则必须指定共享路径才能存取
printable是yes/否no允许打印
hide dot ftles是yes/否no隐藏隐藏文件
public是yes/否no公开共享,若为否则进行身份验证(只有当security = share 时此项才起作用)
guest ok是yes/否no公开共享,若为否则进行身份验证(只有当security = share 时此项才起作用)
read only是yes/否no以只读方式共享当与writable发生冲突时也writable为准
writable是yes/否no不以只读方式共享当与read only发生冲突时,无视read only
vaild users设定只有此名单内的用户才能访问共享资源(拒绝优先)(用户名/@组名)
invalid users设定只有此名单内的用户不能访问共享资源(拒绝优先)(用户名/@组名)
read list设定此名单内的成员为只读(用户名/@组名)
write list若设定为只读时,则只有此设定的名单内的成员才可作写入动作(用户名/@组名)
create mask建立文件时所给的权限
directory mask建立目录时所给的权限
force group指定存取资源时须以此设定的群组使用者进入才能存取(用户名/@组名)
force user指定存取资源时须以此设定的使用者进入才能存取(用户名/@组名)
allow hosts设定只有此网段/IP的用户才能访问共享资源
allwo hosts = 网段except IP
deny hosts设定只有此网段/IP的用户不能访问共享资源
allow hosts=本网段指定IP指定IP
deny hosts=指定IP本网段指定IP

解决访问共享时提示多重连接的问题

windows 命令行执行:

net use * /del /y

请我喝杯咖啡吧 ヾ(^▽^*)))
Luyang - 支付宝 支付宝
Luyang - 微信 微信
  • 文章标题: samba
  • 本文作者: Luyang
  • 本文链接: /post/samba/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
欢迎关注我的其它发布渠道