如何在Ubuntu 16.04上安装和配置Samba服务器以进行文件共享
Samba是用于Unix和Linux的免费开源SMB/CIFS协议实现,允许在局域网中的Unix/Linux和Windows机器之间进行文件和打印共享。
Samba是一套程序,其中最重要的两个是:
- smbd:提供SMB / CIFS服务(文件共享和打印),也可以作为Windows域控制器。
- nmbd:提供NetBIOS名称服务
如何在Ubuntu 16.04上安装Samba服务器
大多数Linux发行版都包含Samba。 要在Ubuntu上安装Samba,只需运行:
sudo apt install samba
最新的稳定版本是4.5.3,发布于2016年12月19日。要检查您的Samba版本,请运行
sudo smbstatus
或者
sudo smbd --version
输出格式如下:
Samba version 4.3.11-Ubuntu
要检查Samba服务是否正在运行,请运行以下命令。
systemctl status smbd
systemctl status nmbd
要启动这两个服务,请运行以下命令:
sudo systemctl start smbd
sudo systemctl start nmbd
开始运行后,smbd将在139和445端口上侦听。
编辑配置文件
只有一个配置文件需要处理:/etc/samba/smb.conf。
sudo nano /etc/samba/smb.conf
在[全局] [global]
部分,确保工作组的值与Windows计算机的工作组设置相同。
workgroup = WORKGROUP
向下滚动到文件的底部。 (在nano文本编辑器中,按CTRL + W然后按CTRL + V。)添加新的部分,如下所示。 用您所需的用户名替换红色用户名。
comment = Home Public Folder
path = /home/linuxidc/
writable = yes
valid users = linuxidc
home共享是将在Windows网络上显示的文件夹名称。 该注释是共享文件夹的描述。 接下来的3行表示只有有效用户指定的用户可以访问/ home/linuxidc/目录,这也是可写的。 上述配置将禁用匿名访问。
保存并关闭该文件,然后运行以下命令检查是否存在语法错误。
testparm
创建用户帐户
默认情况下,Samba将用户设置为安全模式,这意味着客户端必须输入共享文件夹的用户名和密码。 要在Ubuntu上添加用户,请运行以下命令。 用您所需的用户名替换用户名。
sudo adduser linuxidc
You will be prompted to set an Unix password. You also need to set a separate Samba password for the new user with the following command:
sudo smbpasswd -a linuxidc
现在全部要做的是重新启动smbd守护进程。
sudo systemctl restart smbd
从Windows访问Samba共享文件夹
在同一网络的Windows计算机上,打开文件浏览器,然后单击左窗格中的网络。 你会看到samba服务器。 双击共享文件夹并输入linuxidc和密码。
从Ubuntu计算机访问Samba共享文件夹
在文件管理器中,单击左侧窗格中的“网络”(Network)选项卡,然后单击“Windows网络”(Windows Network.)。
选择工作组,Samba服务器和共享文件夹,然后输入Samba linuxidc和密码。
添加多个用户或组
如果多个帐户更适合访问共享文件夹,请在/etc/samba/smb.conf文件中更改如下所示的有效用户。
valid users = user1, user2, user3
还可以使用smbpasswd为每个用户设置Samba密码。
sudo smbpasswd -a user1
sudo smbpasswd -a user2
sudo smbpasswd -a user3</pre>
要允许一组用户访问共享文件夹,请在/etc/samba/smb.conf中使用以下配置。
valid users = @sambashare
创建组。
sudo groupadd sambashare
然后将用户添加到此组
sudo gpasswd -a user1 sambashare
sudo gpasswd -a user2 sambashare
sudo gpasswd -a user3 sambashare</pre>
该组需要对共享文件夹具有写入权限,可以通过以下两个命令实现。
将sambashare设置为共享文件夹的组所有者:
sudo chgrp sambashare /path/to/shared/folder -R
授予组的写入权限。
sudo chmod g+w /path/to/shared/folder/ -R
OK!希望本教程帮助您在Ubuntu 16.04上设置Samba服务器。
CentOS 7.2 安装配置Samba服务器 http://www.linuxidc.com/Linux/2017-03/141390.htm
VMWare 虚拟机 Ubuntu 双网卡 访问 samba 速度 翻倍 http://www.linuxidc.com/Linux/2013-06/85445.htm
Ubuntu 15.04安装Samba服务 http://www.linuxidc.com/Linux/2016-03/129201.htm
samba安装使用图解 http://www.linuxidc.com/Linux/2017-03/141254.htm
CentOS7.2下源码搭建Samba文件服务器[原创] http://www.linuxidc.com/Linux/2017-06/144557.htm
CentOS 7.2 安装配置Samba服务器 http://www.linuxidc.com/Linux/2017-03/141390.htm
CentOS部署Samba企业文件共享服务 http://www.linuxidc.com/Linux/2016-06/132609.htm
Samba共享服务器的搭建优化 http://www.linuxidc.com/Linux/2017-03/141700.htm
CentOS 6.7下 Samba服务器的搭建与配置(share共享模式) http://www.linuxidc.com/Linux/2016-12/138220.htm
Ubuntu 16.04下Samba相关配置 http://www.linuxidc.com/Linux/2016-12/138498.htm
Red Hat 6.5 下 Samba服务器搭建 http://www.linuxidc.com/Linux/2017-07/145747.htm
Linux怎样访问Windows共享文件和文件夹
常常使用Windows的人可能会发现,Windows计算机之前共享资料非常方便,但是有时候想玩玩Linux的时候,如Fedora、Ubuntu、CentOS等,该怎样才能访问Windows计算机上的文件呢?其实Windows共享的协议Linux是完全支持,接下来我们就看看怎样才能从Linux计算机访问Windows计算机上的共享资料吧。
[](javascript:;)工具/原料
安装了Linux操作系统计算机
安装了Windows操作系统计算机
[](javascript:;)方法/步骤
-
在访问Windows共享资料之前,请确保Windows共享是可用的,这里就不再赘述该怎样设置Windows共享了,那可是另外一个课题。
Linux访问Windows共享或者Linux共享资料给Windows时,其实都是在使用一个叫做Samba的软件,这个软件已经使用多年,稳定性和可靠性得到了很好的验证,也是很多网络NAS常用的软件。
我们这里要讲的Linux需要用到的工具就是Samba软件中的一种,samba-client。
在尝试访问Windows共享之前,需要首先确认samba-client已经安装了。最简单的方式是命令行查询“rpm -qa | grep samba-client”,当然也可以使用“yum”工具查询, 如“yum info samba-client”或“yum list samba-client”之类的命令。
-
如果samba-client没有安装,就需要使用命令“yum install samba-client”安装一下,yum会自动安装samba-client所需的相关依赖库,安装时选择Y就行了。
针对常见的Debian Linux发行版,如Ubuntu或CentOS,也可以使用“sudo apt-get install smbclient”和“sudo apt-get install smbfs”安装相应的共享访问工具。
-
准备停当,就可以尝试访问Windows共享文件夹了。我们可以首先使用“smbclient -L //IP地址 -U 用户名”查看一下该用户共享权限下的共享情况。其中不带“$”的那个,就是我们可以访问的共享文件夹了,其中“-U”是用来指定查询共享权限的用户名的。
-
Linux将共享文件夹也是当作磁盘资源对待的,因此需要使用mount工具将其挂载到本地文件空间才可以访问,这一点就像Windows常用的网络磁盘映射是一样的。
因此,首先我们需要创建一个挂载点,也就是在本地目录空间中创建一个挂载目录,如“mkdir -p /mnt/MYSHARE”。
挂载点创建之后,就可以使用mount命令挂载共享文件夹了,“mount -t cifs -o user=用户名称,password=共享密码,iocharset=utf8,codepage=cp936 //共享IP地址或NetBIOS名称/共享目录”,其中cifs使用Linux常用的网络文件类型,也可以使用smbfs,以系统可以识别为准,如Ubuntu常见命令就是“sudo mount -t smbfs -o user=用户名称,password=共享密码,iocharset=utf8,codepage=cp936 //共享IP地址或NetBIOS名称/共享目录”。“-o”表示挂载参数,常见的是需要提供共享的用户名和密码,另外需要注意的是iocharset和codepage,这两个参数是用来解决系统之间的字符编码转换的,如果出现乱码的情况,是需要调整这两个参数的,针对简体中文,使用utf8和cp936一般都可以解决问题,关于字符编码已经超出了本经验的范围。
挂载完成之后,就可以像使用本地文件目录一样访问Windows共享文件夹和文件了。
-
当然,Linux也有图形化的资源管理器,挂载之后,资源管理器也可以正常访问的。进入Linux桌面,打开“我的电脑”。
-
然后就可以像浏览本地文件一样,浏览共享的Windows文件夹和文件了,与命令行并没有太多的差异。
-
Windows共享资料使用完毕之后,也可以将其使用umount命令卸载,卸载就很简单了,直接使用“umount /mnt/MYSHARE”就可以了,其中MYSHARE是就是我们前面创建的挂载点了。
如果以后不需要,也可以将挂载点删除的。
-
挂载的Windows共享文件夹在Linux重启之后就会消失的,如果还要使用,是需要重新挂载的。
如果希望Linux开机自动挂载Windows共享文件夹,则需要将挂载命令添加到Linux的“/etc/fstab”,也就是将前述的命令参数按照fstab的要求添加到fstab里面,这里就不再展开了,详情参考fstab相关帮助即可。
END
优化与分享
-
1
本经验是在Fedora操作环境下根据实际操作完成,常见的Ubuntu、CentOS发行版与Fedora基本相同,因此本经验对他们同样适用。如果您有任何意见或建议,可以留言提出,我会尽力改正和完善经验,以帮助更多有需要的人。
-
2
如果本经验对您有些许帮助,移动手指,点赞支持一下啦,您的支持是书写经验的最大动力哦^^。
</article>