在Ubuntu 20.04| 18.04&Debian 10上安装和配置Samba Server共享

时间:2020-02-23 14:32:55  来源:igfitidea点击:

欢迎我们关于如何在Debian 10服务器(Buster)和Ubuntu 20.04/18.04 Linux系统上安装和配置Samba共享的教程。
Samba是服务器消息块(SMB)和常用Internet文件系统(CIFS)协议的开源实现,该协议在各种操作系统之间提供客户端之间的文件和打印服务。

通过在Debian 10(Buster)/Ubuntu 18.04上配置Samba Server共享,我们可以轻松地共享Windows和Linux操作系统之间的文件夹或者文件。
在此上下文中,Windows计算机将被用作客户端访问Linux上的Samba(Debian 10/Ubuntu 18.04)。

第1步:在Debian 10/Ubuntu 20.04/18.04 LTS上安装Samba Server

要在Debian 10 Buster/Ubuntu 20.04/18.04上安装Samba,请使用命令:

sudo apt -y update
sudo apt -y install samba

如果我们使用的是静态IP地址,请在要求使用从DHCP使用WINS设置时答案否。

安装包后,请继续执行第2步,我们将执行配置和管理Samba服务。

第2步:在Debian 10 Buster/Ubuntu 20.04/18.04上配置Samba分享

Samba在/etc/samba/smb.conf中使用配置文件。
如果更改此配置文件,则在重新启动Samba守护程序之前,更改不会生效。

让我们首先创建通过Samba共享的目录。
该目录必须在SMB.conf中配置之前存在。
我们将在/家庭中创造一个。

sudo mkdir -p /home/share

无需身份验证访问所有内容(不推荐)

该目录应该是可读性的和可写的所有用户。

sudo chmod 777 /home/share

在/etc/samba/smb.conf文件上配置Samba共享。

$sudo vim /etc/samba/smb.conf
[global]
# Configure correct UTP
  unix charset = UTF-8
# Change this to the workgroup/NT-domain name your Samba server will be part of
   workgroup = WORKGROUP
   interfaces = 127.0.0.0/8 eth0
   bind interfaces only = yes
# Set share configuration at the end
[Docs]
   path = /home/share
   writable = yes
   guest ok = yes
   guest only = yes
   create mode = 0777
   directory mode = 0777

配置详细信息:

  • Docs–Samba共享名称
  • path = /home/share–要共享的目录
  • guest ok =yes–打开来宾共享
  • guest only = yes–所有受保护为来宾
  • writable = yes–将共享目录设置为可写目录
  • create mode=0777, directory mode =0777–允许访问所有

配置安全Samba共享(推荐)

将Samba Share Directory的组所有权设置为Sambashare Group。

sudo chgrp sambashare /home/share

创建Samba Share用户。
用Samba Share用户替换User1以创建。

sudo useradd -M -d /home/share/user1 -s /usr/sbin/nologin -G sambashare user1
sudo mkdir /home/share/user1
sudo chown user1:sambashare /home/share/user1
sudo chmod 2770 /home/share/user1

设置用户密码并确认。

$sudo smbpasswd -a user1
New SMB password:
Retype new SMB password:
Added user user1.

使用命令设置密码后启用Samba帐户:

$sudo smbpasswd -e user1
Enabled user user1.

我们在Samba共享父目录中创建了一个用户的主目录,并将所有权设置为Samba共享组。
让我们创建另一个用户。

sudo useradd -M -d /home/share/smbadmin -s /usr/sbin/nologin -G sambashare smbadmin
sudo mkdir /home/share/smbadmin
sudo smbpasswd -a smbadmin
sudo smbpasswd -e smbadmin
sudo chown smbadmin:sambashare /home/share/smbadmin
sudo chmod 2770 /home/share/smbadmin

配置安全的Samba共享。

[user1]
    path = /home/share/user1
    read only = no
    browseable = no
    force create mode = 0660
    force directory mode = 2770
    valid users = @user1 @sambashare
[smbadmin]
    path = /home/share/smbadmin
    read only = no
    browseable = yes
    force create mode = 0660
    force directory mode = 2770
    valid users = @sambashare @smbadmin

在进行更改后重新启动Samba守护程序。

sudo systemctl restart smbd nmbd

确认服务正在运行。

如果我们有一个主动防火墙,请运行:

sudo ufw allow 'Samba'

第3步:配置Samba客户端

要访问Linux系统上的Samba共享,我们需要安装和配置Samba客户端。

---------- Install Samba client on Ubuntu/Debian ---
$sudo apt -y install smbclient cifs-utils
---------- Install Samba client on CentOS/RHEL/Fedora ---
$sudo yum -y install samba-client cifs-utils
$sudo dnf -y install samba-client cifs-utils

访问Samba分享 - 暂时

$smbclient //sambaserver/share -U sambausername
Example:
$smbclient //192.168.122.52/user1 -U user1
WARNING: The "syslog" option is deprecated
Enter WORKGROUP\user1's password: 
Try "help" to get a list of possible commands.
smb: \> list
0: server=192.168.122.52, share=user1
smb: > ls
   .                                   D        0  Sun May 14 01:10:39 2019
   ..                                  D        0  Sun May 14 00:49:13 2019
   latest.zip                          N 12121295  Tue Jun 18 10:52:03 2019
     9544896 blocks of size 1024. 7918732 blocks available
 smb: > pwd
 Current directory is 2.168.122.52\user1\

我们可以使用Mount和CIFS类型选项将Samba分享到本地Linux系统中的目录。

$mkdir -p ~/mounts/shares
$mount -t cifs -o username=user1 //192.168.122.52/user1 ~/mounts/shares
$df -h
Filesystem              Size  Used Avail Use% Mounted on
/dev/vda1                40G  2.9G   38G   8% /
devtmpfs                488M     0  488M   0% /dev
tmpfs                   496M     0  496M   0% /dev/shm
tmpfs                   496M  6.7M  489M   2% /run
tmpfs                   496M     0  496M   0% /sys/fs/cgroup
tmpfs                   100M     0  100M   0% /run/user/1000
//192.168.122.52/user1  9.2G  1.6G  7.6G  18% /home/theitroad/mounts/shares

使用fstab挂载Samba共享。

我们可以使用FSTAB文件持续到SAMBA Shares通过系统重新启动安装。
在我的示例中,我的下行添加到/oct/fstab文件的末尾。

//192.168.122.52/user1  /mnt/shares cifs credentials=/.sambacreds 0 0

然后我创建了一个凭据文件。

$cat /.sambacreds
username=user1
password=password
domain=WORKGROUP

测试:

$sudo mkdir -p /mnt/shares
$sudo mount -a
$df -hT | grep cifs
//192.168.122.52/user1 cifs      9.2G  1.6G  7.6G  18% /mnt/shares

对于Windows Desktop Machines,请遵循在Windows上安装Samba共享的标准过程。