本教程解释了在Debian 9(Stretch)上安装Samba文件服务器,以及如何配置它以通过SMB协议共享文件,以及如何添加用户。Samba被配置为独立服务器,而不是域控制器。在最终的设置中,每个用户都有自己的主目录,可以通过SMB协议访问,所有用户都有一个具有读/写访问权限的共享目录。
1.初步说明
我在这里使用的是Debian 9系统,主机名为Debian.example.com,IP地址为192.168.1.100。我将使用这个最小的Debian系统作为本教程的基础:https://www.howtoforge.com/tutorial/debian-minimal-server/
我将在本教程中使用nano编辑器来编辑shell上的配置文件。Nano可以使用以下命令安装:
apt-get install nano
如果你有一个不同的最喜欢的shell编辑器,比如joe或vi,那么就使用它。
为了使Linux服务器可以从我的Windows工作站按名称访问,我将在Windows上的hosts文件中添加一行。在Windows上以管理员用户身份运行此命令以编辑hosts文件:
notepad C:\Windows\System32\drivers\etc\hosts
并添加一行如下:
192.168.1.100 debian.example.com debian
在文件的末尾。将IP地址替换为服务器IP,将主机名替换为您为服务器选择的主机名。
重命名“administrator”用户(如果存在)
我的Debian 9服务器有一个名为“administrator”的用户,这个用户名可能会导致Samba出现问题,所以我在这里将其重命名为“howtoforge”。请随意为您的用户使用其他名称,只要不是“管理员”,名称就无关紧要。当您的系统没有名为“administrator”的用户时,跳过此步骤。
usermod -l howtoforge -m -d /home/howtoforge administrator
groupmod -n howtoforge administrator
2.安装Samba
以root用户身份连接到shell上的服务器并安装Samba软件包:
apt-get -y install libcups2 samba samba-common cups
将当前smb.conf文件移动到smb.conf.bak:
mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
然后创建一个新的smb.conf文件:
nano /etc/samba/smb.conf
内容如下:
[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = debian
security = user
map to guest = bad user
dns proxy = no
将WORKGROUP替换为Windows客户端上使用的工作组名称。如果您不知道工作组的名称,请在Windows客户端上运行此命令以获取工作组名称:
net config workstation
然后关闭服务器上的Samba配置文件并重新启动Samba:
systemctl restart smbd.service
3.添加Samba共享
现在,我将添加一个所有用户都可以访问的共享。
创建共享文件的目录,并将组更改为用户组:
mkdir -p /home/shares/allusers
chown -R root:users /home/shares/allusers/
chmod -R ug+rwx,o+rx-w /home/shares/allusers/
mkdir -p /home/shares/anonymous
chown -R root:users /home/shares/anonymous/
chmod -R ug+rwx,o+rx-w /home/shares/anonymous/
在/etc/samba/smb.conf文件的末尾添加以下行:
nano /etc/samba/smb.conf
3.1小组共享
这是一个可供我们“用户”组的所有成员访问和写入的共享。在smb.conf文件末尾添加以下配置。
[allusers]
comment = All Users
path = /home/shares/allusers
valid users = @users
force group = users
create mask = 0660
directory mask = 0771
writable = yes
3.2主目录
如果你想让所有用户都能通过Samba读写他们的主目录,请在/etc/Samba/smb.conf中添加以下行(确保注释掉或删除现有的[homes]部分):
[homes]
comment = Home Directories
browseable = no
valid users = %S
writable = yes
create mask = 0700
directory mask = 0700
3.3匿名分享
你想分享你网络中的所有用户都可以写信吗?请注意,此共享对网络中的任何人开放,因此仅在本地网络中使用。添加匿名共享,如下所示:
[anonymous]
path = /home/shares/anonymous
force group = users
create mask = 0660
directory mask = 0771
browsable =yes
writable = yes
guest ok = yes
现在我们重新启动Samba:
systemctl restart smbd.service
4.添加和管理用户
在这个例子中,我将添加一个名为tom的用户。您可以根据需要添加任意数量的用户,同样,只需在命令中将用户名tom替换为所需的用户名即可。
useradd tom -m -G users
在Linux系统用户数据库中为tom设置密码。如果用户tom无法登录到Linux系统,请跳过此步骤。
passwd tom
->输入新用户的密码。
现在将用户添加到Samba用户数据库:
smbpasswd -a tom
->输入新用户的密码。
现在,您应该能够使用用户名tom和所选密码,使用文件资源管理器从Windows工作站登录(tom的主目录地址为\192.168.1.100或\192.168.1.100\tom),并将文件存储在Linux服务器上tom的根目录或公共共享目录中。
5.从Windows访问Samba
现在,您可以从Windows桌面访问samba共享。打开命令提示符,输入“\debian”打开文件资源管理器:

这显示了我们的samba服务器的份额。

6.本教程的虚拟机映像下载
本教程提供与VMWare和Virtualbox兼容的ovf/ova格式的即用型虚拟机映像。虚拟机映像使用以下登录详细信息:
SSH/Shell登录
用户名:howtoforge
密码:howtoforge
用户名:root
密码:howtoforge
Samba示例用户登录
用户名:tom
密码:howtoforge
VM的IP是192.168.1.100,可以在/etc/network/interface文件中更改。请更改上述所有密码以保护虚拟机。
-
扫码下载安卓APP
-
微信扫一扫关注我们
微信扫一扫打开小程序
手Q扫一扫打开小程序
-
返回顶部
发表评论