Ubuntu访问windows的共享文件夹

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

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

网络主机的 IP: 192.168.0.1

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

网络主机的登录密码: mypassword

分享中的目录名称: linux

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

要挂载网络共享目录时

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

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

为了提高安全性,建议使用凭据文件,其中包含共享用户名,密码和域。凭证文件具有以下格式:
/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。

测试成功:
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共享文件夹的命令复制粘贴进去,以下是一个范例,你需要根据自己的需要修改或者增加减少命令。
#!/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
将以下内容粘贴进去
[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