Ubuntu设置smb功能

本文将介绍怎么在Ubuntu上安装smb服务和实现多人对一个文件夹的访问权限

安装

sudo apt install samba

systemctl start smb nmb 启动服务

systemctl status smb nmb 查看服务状态

配置smb

sudo vim /etc/samba/smb.conf

文件分为两部分,global和Share Definitions,global是一些全局的配置。Share Definitions是smb文件夹的配置

[global]
        workgroup = WORKGROUP
        security = user


        #主机简单说明,就是samba服务器显示在别的电脑里的名称
        server string = Samba Server Version %v
        #netbios 名称
        netbios name = MYSERVER
        #设置Samba Server监听哪些网卡,可以写网卡名,也可以写该网卡的IP地址。
        interfaces = lo eth0 192.168.107.0/24
        #允许哪些地址的主机访问,不设置默认都可以访问(防火墙关闭的前提下)
        #hosts allow = 127. 192.168.82.200
        #日志文件位置
        log file = /var/log/samba/log.%m
        #最大日志文件大小
        max log size = 50

smb文件夹配置说明

在文件最后添加:
[company]	#共享名
	comment = company share	#注释说明
	path = /home/company	#共享文件路径
	browseable = yes		#文件夹对其他人是否可见
	guest ok = no			#是否允许匿名访问
	read only = no          # 对于valid  users里面的用户来说是不是只读
	valid  users= @usergroup user # 可以访问文件夹的用户或者用户组,用户组加@
	write list = user       # 拥有写权限的用户
	create mask = 0770      # 创建文件的默认权限,用户和组内的用户都拥有读写权限
	directory mask = 2770   # 创建文件夹的默认权限,开头的2表示文件夹内的文件和文件夹会继承权限

printable = yes这个千万不能选成yes,会导致访问不了

具体来说说如何配置一个私人的文件夹和多人共享的文件夹

私人文件夹仅允许一个人访问,并且不能被搜索到只能通过smbIP+指定文件夹名称的方式访问:

  1. 创建一个文件夹,mkdir ~/private

  2. 创建用户,并将目录拥有者改为该用户

    bash 复制代码
    sudo adduser user1
    sudo chown -R user1 ~/private
    sudo chgrp -R user1 ~/private
    sudo chmod -R 700 ~/private
  3. 将用户添加到smb用户中并激活(这里会要设置smb用户密码,可以跟ubuntu用户密码一致)

    bash 复制代码
    sudo smbpasswd -a user2
    sudo smbpasswd -e user1
  4. 在smb配置文件末尾写入配置sudo vim /etc/samba/smb.conf

    [private]
       path = ~/private
       browseable = no
       guest ok = no
       read only = no
       create mask = 0700
       directory mask = 0700
    
  5. 重启smb服务:sudo service smbd restart

​ 6. 更新防火墙sudo ufw allow samba

如果想要创建一个smb文件夹,可以被组usergroup内的所有成员访问,但是只能被user2进行写操作,可以先创建user2,user3,然后将其加入组usergroup,并写入如下配置

[public]
   comment = public share
   path = ~/public
   browseable = yes
   guest ok = no
   read only = yes
   create mask = 0770
   directory mask = 2770
   valid  users= @usergroup
   write list= user2

同样重启smb服务即可

配置完了以后

重启smb服务

sudo service smbd restart

更新防火墙规则

添加用户到某一个组可以使用
usermod -G group_name user_name

这个命令可以添加一个用户到指定的组,但是以前添加的组就会清空掉。

所以想要添加一个用户到一个组,同时保留以前添加的组时,请使用 gpasswd 这个命令来添加操作用户
gpasswd -a user_name group_nam

windows访问smb

选择映射网络驱动器(而不是添加一个网络位置),不然windows可能会用微软的账号密码尝试登录NAS然后告诉你NAS登录不成功。。。

linux访问smb

sudo apt-get install smbclient

smbclient //your_samba_hostname_or_server_ip/share -U username

ref:

https://www.digitalocean.com/community/tutorials/how-to-set-up-a-samba-share-for-a-small-organization-on-ubuntu-16-04#step-2-setting-samba-s-global-options

linux搭建samba 所踩的坑及解决办法 - 泡芙的文章 - 知乎

https://zhuanlan.zhihu.com/p/305265719

https://www.samba.org/samba/docs/current/man-html/smb.conf.5.html

相关推荐
饮啦冰美式27 分钟前
22.04Ubuntu---ROS2使用rclcpp编写节点
linux·运维·ubuntu
wowocpp27 分钟前
ubuntu 22.04 server 安装 和 初始化 LTS
linux·运维·ubuntu
wowocpp28 分钟前
ubuntu 22.04 server 格式化 磁盘 为 ext4 并 自动挂载 LTS
服务器·数据库·ubuntu
Huaqiwill28 分钟前
Ubuntun搭建并行计算环境
linux·云计算
wclass-zhengge31 分钟前
Netty篇(入门编程)
java·linux·服务器
Lign1731433 分钟前
ubuntu unrar解压 中文文件名异常问题解决
linux·运维·ubuntu
vip4511 小时前
Linux 经典面试八股文
linux
大霞上仙1 小时前
Ubuntu系统电脑没有WiFi适配器
linux·运维·电脑
孤客网络科技工作室2 小时前
VMware 虚拟机使用教程及 Kali Linux 安装指南
linux·虚拟机·kali linux
颇有几分姿色3 小时前
深入理解 Linux 内存管理:free 命令详解
linux·运维·服务器