# Ubuntu访问windows的共享文件夹

**URL:** <https://www.shiwantech.xyz/t/topic/218>\
**Category:** UBUNTU\
**Created:** [2024 年10 月 13 日 12:27 UTC](https://www.shiwantech.xyz/t/topic/218 "2024-10-13T12:27:46Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

作者： ![itpanpan163](https://www.shiwantech.xyz/letter_avatar_proxy/v4/letter/i/ccd318/32.png) [@itpanpan163](https://www.shiwantech.xyz/u/itpanpan163)\
发布日期： [2024 年10 月 13 日 12:27 UTC](https://www.shiwantech.xyz/t/topic/218/1 "2024-10-13T12:27:47Z")

</div>

关于ubuntu下访问windows的共享目录

假定您的网络连接已经正确设定好。

网络主机的 IP: 192.168.0.1

网络主机的使用者名称: myusername

网络主机的登录密码: mypassword

分享中的目录名称: linux

主机上要挂载的目录: /media/sharename

要挂载网络共享目录时

```auto
sudo mkdir /media/sharename

sudo mount //192.168.0.1/linux /media/sharename/ -o username=myusername,password=mypassword,dmask=777,fmask=777

```

要卸载网络共享目录时

`sudo umount /media/sharename/`

======================更简单访问windows目录=============================

1、安装samba和smbfs

```auto
sudo apt-get install samba
sudo apt-get install smbfs

```

2、打开一个文件浏览窗口，按快捷键ctrl + L，输入smb://192.168.0.\*既可以访问windows的共享目录了。当然会要求输入访问用户名和密码，正确输入后就可以访问了。

======================其他============================================  
在Linux和UNIX操作系统上，可以使用 mount 命令的cifs选项将Windows共享安装在本地目录树中的特定安装点上。  
通用Internet文件系统（CIFS）是一种网络文件共享协议。  
CIFS是SMB的一种形式。

要在Linux系统上挂载Windows共享，首先需要安装CIFS实用程序包。

在Ubuntu和Debian上安装CIFS实用程序：  
sudo apt update  
在CentOS和Fedora上安装CIFS实用程序：  
sudo dnf install cifs-utils  
软件包名称在Linux发行版之间可能有所不同。

安装CIFS Windows共享  
挂载远程Windows共享类似于挂载常规文件系统。  
首先，创建目录作为远程Windows共享的安装点：  
`sudo mkdir /mnt/win_share`  
以root或具有 sudo 特权的用户身份运行以下命令来安装共享  
`sudo mount -t cifs -o username=<win_share_user> //WIN_SHARE_IP/<share_name> /mnt/win_share`  
系统将提示您输入密码：  
Password:  
成功后，不会产生任何输出。

要验证是否成功安装了远程Windows共享，请使用mount或 df -h 命令。一旦挂载共享，挂载点即成为挂载文件系统的根目录。您可以像处理本地文件一样使用远程文件。也可以在命令行中提供密码：  
`sudo mount -t cifs -o username=<win_share_user>,password=<win_share_password> //WIN_SHARE_IP/<share_name> /mnt/win_share`  
如果用户位于Windows工作组或域中，则可以如下设置：  
`sudo mount -t cifs -o username=<win_share_user>,domain=<win_domain> //WIN_SHARE_IP/<share_name> /mnt/win_share`

为了提高安全性，建议使用凭据文件，其中包含共享用户名，密码和域。凭证文件具有以下格式：

```auto
/etc/win-credentials
username = user
password = password
domain = domain

```

用户不能读取该文件。要设置正确的权限和所有权，请运行：  
`sudo chown root: /etc/win-credentials`  
要使用凭据文件，请如下定义：  
`sudo mount -t cifs -o credentials=/etc/win-credentials //WIN_SHARE_IP/<share_name> /mnt/win_share`  
默认情况下，挂载共享的所有者为root，并且权限设置为777。  
使用dir\_mode选项设置目录许可权，并使用file\_mode设置文件许可权：  
`sudo mount -t cifs -o credentials=/etc/win-credentials,dir_mode=0755,file_mode=0755 //WIN_SHARE_IP/<share_name> /mnt/win_share`  
可以使用uid和gid选项更改默认的用户和组所有权：  
`sudo mount -t cifs -o credentials=/etc/win-credentials,uid=1000,gid=1000,dir_mode=0755,file_mode=0755 //WIN_SHARE_IP/<share_name> /mnt/win_share`  
要设置其他选项，请在-o选项之后将它们添加为以逗号分隔的列表。要获取所有安装选项的列表，请在终端中输入man mount。

自动挂载  
当使用mount命令手动安装共享时，重新启动后它不会持久。  
/etc/fstab文件包含一个条目列表，这些条目定义了系统启动时在何处以及如何安装文件系统。  
要在Linux系统启动时自动挂载Windows共享，请在/etc/fstab文件中定义挂载。该行必须包含Windows PC的主机名或IP地址，共享名以及本地计算机上的安装点。  
使用文本编辑器打开/etc/fstab文件：  
udo nano /etc/fstab  
将以下行添加到/etc/fstab文件中

`//WIN_SHARE_IP/share_name /mnt/win_share cifs credentials=/etc/win-credentials,file_mode=0755,dir_mode=0755 0 0`  
运行以下命令来安装共享：  
`sudo mount /mnt/win_share`  
mount命令将读取/etc/fstab的内容并安装共享。

下次重新启动系统时，Windows共享将自动安装。

卸载Windows共享  
umount命令从目录树中分离卸载已安装的文件系统。  
要卸载已挂载的Windows共享，请使用umount命令，后跟已安装Windows共享的目录或远程共享：  
sudo umount /mnt/win\_share  
如果CIFS支架在fstab文件中有一个条目，请将其删除。  
umount命令在使用中时将无法分离共享。要找出哪些进程正在访问Windows共享，请使用fuser命令：  
fuser -m MOUNT\_POINT  
找到进程后，可以使用 kill 命令停止它们并卸载共享。

如果仍然无法卸载共享，请使用-l（–lazy）选项，该选项可让您在不再繁忙的文件系统后立即将其卸载。  
`sudo umount -l MOUNT_POINT`  
结论  
在Linux中，可以使用mount命令和cifs选项安装共享的Windows。

测试成功：

```auto
sudo apt-get install cifs-utils
sudo mount.cifs //192.168.0.11/fd1 /media/fd1 -o username=用户名,password=密码,vers=2.0,domain=tom

```

======================下面说得也很好============================================  
在Linux ubuntu 自动挂载硬盘以及Windows共享文件夹

新建一个脚本，这个脚步写着你需要挂载硬盘的命令  
gedit ~/startup.sh

将你要挂载硬盘以及Windows共享文件夹的命令复制粘贴进去，以下是一个范例，你需要根据自己的需要修改或者增加减少命令。

```auto
#!/bin/sh

sudo mount -o uid=1000,gid=1000 /dev/nvme0n1p4 /mnt/A1
sudo mount -o uid=1000,gid=1000 /dev/sda2 /mnt/A1
sudo mount -t cifs -o user=$yourname$,pass=$yourpass$,uid=1000,gid=1000 //192.168.1.112/d /mnt/A1

```

1.1. 挂载硬盘命令解释  
`sudo mount /dev/nvme0n1p4 /home/huxian/drive/winsys-drive`  
表示将/dev/nvme0n1p4挂载到/home/huxian/drive/winsys-drive  
想要找到你想要挂载的磁盘位置（我的对应是/dev/nvme0n1p4）  
可以通过sudo blkid命令查看

1.2. 挂载Windows共享文件夹命令解释  
`sudo mount -t cifs -o user=yourname,pass=yourpass,uid=1000,gid=1000 //192.168.1.112/d /mnt/A1`

给startup.sh加上权限  
`sudo chmod +x ~/startup.sh`

使用systemd设置开机启动  
`sudo vi /etc/systemd/system/startup.service`  
将以下内容粘贴进去

```auto
[Unit]
Description = This will run at startup
After=network.target rc-local.service
Wants=network.target rc-local.service

[Service]
Type=simple
#这里根据填写刚刚创建的脚本
ExecStart = /home/huxian/config/startup.sh

[Install]
WantedBy = multi-user.target

```

启用服务  
`sudo systemctl enable startup.service`  
执行reboot重启系统验证OK

如果上面服务启动不生效，可以用下面的方法  
机器重启自动挂载，vi /etc/fstab最后加入：

`//WindowsHost/sharefolder /home/xxx/shared cifs defaults,auto,username=xxxx,password=***,gid=1000,uid=1000 0 0`

gid 和 uid 获取方法  
sudo id username
