例子linux

例子Linux教程

本教程解释了在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替换为所需的用户名即可。

在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文件中更改。请更改上述所有密码以保护虚拟机。

发表评论