你是怎么在Ubuntu与Widnows之间共享文件的

2023-07-16 451 0

平时我们在学习Linux的时候一般是在Windows系统上装一个虚拟机安装Linux,这个过程中需要在Windows和Linux之间共享传输文件,可以用ftp,可以用命令。有没有一种无感很自然的共享方式呢?下面就介绍一种姿势。

通过在 Ubuntu 上配置 Samba 服务器共享,你可以轻松地在 Windows 和 Linux 操作系统之间共享文件夹或文件。在这种情况下,Windows 机器将用作客户端来访问 Linux 上的 Samba 共享资源。

第 1 步:在 Ubuntu 上安装 Samba 服务

要在 Ubuntu 上安装 Samba,使用以下命令:

sudo apt -y update
sudo apt -y install samba

如果你使用的是静态 IP 地址,当被要求使用来自 DHCP的WINS设置时,选否。

第 2 步:在 Ubuntu 上配置 Samba 共享

Samba 默认使用/etc/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
   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– 只允许用guest帐号访问
writable = yes – 将共享目录设置为可写
create mode = 0777 & directory mode = 0777 – 允许访问所有

配置安全 Samba 共享(推荐)

将 Samba 共享目录的组所有权设置为sambashare组。

sudo chgrp sambashare /home/share

创建 samba 共享用户。将user1替换为 samba 共享用户来创建。

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 user

使用以下命令设置密码后启用 samba 帐户:

$ sudo smbpasswd -e user1
Enabled user user

我们在 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

确认服务正在运行。

systemctl status smbd

第 3 步:配置 Samba 客户端

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

### Install Samba client on Ubuntu / Debian ###
sudo apt update
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 Jul 14 01:10:39 2019
   ..                                  D        0  Sun Jul 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 \192.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  9G   38G   8% /
devtmpfs                488M     0  488M   0% /dev
tmpfs                   496M     0  496M   0% /dev/shm
tmpfs                   496M  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  2G  6G  6G  18% /home/computingforgeeks/mounts/shares

使用 fstab 挂载 Samba 共享。

你可以使用 fstab 文件通过系统重新启动来保持 Samba 共享挂载。在我的示例中,我在/ect/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      10.5G  19G  19G  55% /mnt/shares

以上文章来源于入门小站 ,作者入门小站。

相关文章

历经20年,Linux主线内核终于合并史诗级‘PREEMPT_RT’补丁——最后障碍竟是Linus“一手造成”
2023 年最受欢迎 Linux 发行版本公布
一定要焊死在大脑里的38条window命令!
Linux网络管理工具:ifconfig,从入门到精通!
什么是虚拟化技术?虚拟化常见架构
Linux中su,sudo,sudo su,sudo -i命令的使用和区别

发布评论