赞
踩
本文将介绍怎么在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+指定文件夹名称的方式访问:
创建一个文件夹,mkdir ~/private
创建用户,并将目录拥有者改为该用户
sudo adduser user1
sudo chown -R user1 ~/private
sudo chgrp -R user1 ~/private
sudo chmod -R 700 ~/private
将用户添加到smb用户中并激活(这里会要设置smb用户密码,可以跟ubuntu用户密码一致)
sudo smbpasswd -a user2
sudo smbpasswd -e user1
在smb配置文件末尾写入配置sudo vim /etc/samba/smb.conf
[private]
path = ~/private
browseable = no
guest ok = no
read only = no
create mask = 0700
directory mask = 0700
重启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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。