windows与linux间互相挂载文件记录
windows与linux间互相挂载文件记录
参阅博客:
https://www.cnblogs.com/bfhxt/p/9871833.html
https://blog.51cto.com/u_12126819/5105936
需要注意的是,本人的虚拟机是NAT模式,然后所有操作均处于root账号
一、Windows互相访问共享文件夹
可参阅本人另一篇博客,在此就不重写了。
https://www.cnblogs.com/dayq/p/16103721.html
实际体验的话,共享文件夹感觉比ftp方便一些。
二、linux挂载Windows的共享文件夹
这一步的前提是做好上面的第一步,也就是有一个可用的Windows共享文件夹。
系统:主机win10,虚拟机CentosMini(最小安装);实测的话ubuntu和centos的操作没有区别
1.创建一个空白文件夹
[root@localhost ~]# pwd
/root
[root@localhost ~]# mkdir share
[root@localhost ~]#
所以,空白文件夹的路径就是/root/share,等下用来挂载,挂载后的效果就是,打开share文件夹,就和打开windows下共享的那个文件夹一样。
2.输入命令
mount -t cifs //win10的IP地址/aliyun /root/share -o username=win10的账号,password=win10的密码
mount -t cifs \\\\win10的IP地址\\aliyun /root/share -o username=win10的账号,password=win10的密码
这两条都是命令都是等价的,无非是斜杠和反斜杠的区别罢了。
怎么看账号:
win+R,进入cmd,Users后面的就是账号了,非要用命令也是可以的,直接net user即可查询。
此外,本人为微软账号登录,所以上面的账号也可以改成微软账号的邮箱,密码相应的改为微软账号的密码。
(话说,微软账号登录的电脑,登录系统的密码好像本来就和微软账号的密码是一样的)
我这里是把一个叫做aliyun的文件夹设置为共享目录罢了。
实际共享文件夹的名称,根据自己的设置进行修改即可。
需要注意的是虽然共享路径是
\\YYJEQHC\aliyun
但是linux是无法识别的。
[root@localhost ~]# mount -t cifs //YYJEQHC/aliyun /root/share -o username=username,password=password
mount: wrong fs type, bad option, bad superblock on //YYJEQHC/aliyun,
missing codepage or helper program, or other error
(for several filesystems (e.g. nfs, cifs) you might
need a /sbin/mount.<type> helper program)
In some cases useful info is found in syslog - try
dmesg | tail or so.
也就是,不能用计算机名来代替IP地址
3.开启自动挂载
还有想要开机自动挂载的话,需要修改文件/etc/fstab
//win10的IP地址/aliyun /root/share cifs username=win10账号,password=win10密码 0 0
需要注意的是末尾就是两个0,中间有个空格。
其他的地方,和上面挂载命令对比就明白了。
4.取消挂载
umount /root/share
简简单单一条命令即可。
其实吧,日常编程学习之类的话,这样也就够了,毕竟,共享是相互的;然而,就算共享再方便,文件夹的所有权始终不是你的
三、windows挂载linux共享文件夹
这里以新建的/root/nowtest文件夹为例
[root@localhost share]# pwd
/root/share
[root@localhost share]# ls
[root@localhost share]#
本来是空白的文件夹,现在想让windows写文件进去。
1.安装samba
yum install samba
安装挺多的,这个应该不会失败吧。
2.修改smaba的配置文件
vi /etc/samba/smb.conf
显而易见,[home]、[printers]、[print$]为配置名称,下面缩进的是配置属性。
这里就根据别人的教程,把这3个配置项删除吧。
别人是这么说的,虽然不知道为什么要删除,但是既然我删除了能正常用,那就删除吧。
然后,仿照格式,添加自己的配置项吧。
[centos] #挂载以后,别人显示的挂载文件夹名称
path = /root/nowtest #共享的路径
writable = yes #是否可写
create mask = 0664 #文件的权限
directory mask = 0775 #目录的权限
上面这么写,只是为了方便解释,反正大家都默认#后面是注释嘛,但是这个配置文件不一样,这样写会出问题,下面会提到
所以,按照下面这样写就好了
[centos]
path = /root/nowtest
writable = yes
create mask = 0664
directory mask = 0775
3.创建用于共享文件夹访问的账号
[root@localhost share]# pdbedit -a -u share
new password:
retype new password:
Failed to add entry for user share.
[root@localhost share]#
这里想直接添加一个share账户,可以看见失败了;因为系统里面没有这个账户;(这个其实和windows那个共享账户一样的理解)
[root@localhost share]# pdbedit -a -u root
new password:
retype new password:
Unix username: root
NT username:
Account Flags: [U ]
User SID: S-1-5-21-1106122905-1178100701-3434043431-1000
Primary Group SID: S-1-5-21-1106122905-1178100701-3434043431-513
Full Name: root
Home Directory: \\localhost\root
HomeDir Drive:
Logon Script:
Profile Path: \\localhost\root\profile
Domain: LOCALHOST
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: Wed, 06 Feb 2036 07:06:39 PST
Kickoff time: Wed, 06 Feb 2036 07:06:39 PST
Password last set: Thu, 09 Jun 2022 07:47:25 PDT
Password can change: Thu, 09 Jun 2022 07:47:25 PDT
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
[root@localhost share]#
我这里就不加账户了,直接用root。密码设为123456,和登录系统的root密码是不一样的。
这里就不用chown命令了,不太熟,而且本来文件夹也属于root账户;读者可自行测试。
4.开启smb服务
[root@localhost share]# systemctl start smb
Job for smb.service failed because the control process exited with error code. See "systemctl status smb.service" and "journalctl -xe" for details.
[root@localhost share]#
不关闭防火墙,直接来这么一句就报错,然而真的是防火墙的问题吗,答案是否定的。
上面写配置文件的时候,就留了个心眼,因为不知道那个配置文件是不是那样加注释的,经过反复测试,就是那个配置文件的问题,上面也已经改正了。
果然,改好以后,直接就行了。
[root@localhost ~]# vi /etc/samba/smb.conf
[root@localhost ~]# clear
[root@localhost ~]# systemctl start smb
[root@localhost ~]#
5.windows进行访问
[root@localhost ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:6f:df:40 brd ff:ff:ff:ff:ff:ff
inet 192.168.133.130/24 brd 192.168.133.255 scope global noprefixroute dynamic ens33
valid_lft 1581sec preferred_lft 1581sec
inet6 fe80::df52:60d5:58e1:590/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@localhost ~]#
首先获得虚拟机IP地址192.168.133.130
这样看来,应该就是防火墙的关系了,到这里,再关闭防火墙即可。
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]#
然后再试,果然就好了。
这里提示不正确,只是因为默认请求不带账号和密码罢了,弹出输入框后进行输入即可。
账号和用户名就是上面专门为共享设置的那个。我这里是root账号,密码123456罢了。
输入以后,就能看见文件夹了,名称就是配置项填写的名称。
竟然还是不能访问文件夹里面的内容。
[root@localhost ~]# setenforce 0
[root@localhost ~]#
这个时候,来上这么一句,就可以访问了。
https://blog.csdn.net/weixin_45663905/article/details/107344304
原来,还需要关系setlinux的防火墙。
空白的文件夹,随便新建个txt,写点内容好了。
[root@localhost ~]# cd /root/nowtest
[root@localhost nowtest]# ls
hello.txt
[root@localhost nowtest]# ll
total 4
-rw-rw-r--. 1 root root 27 Jun 9 08:18 hello.txt
[root@localhost nowtest]#
windows改好的,linux也能同步显示,这就是共享成功了。
四、linux之间的共享文件夹
这个就容易了,对于挂载别人文件夹的linux来说,其实是无感的,不管被挂载的是windows的文件夹,还是linux的文件夹,命令都是一样的。
[root@localhost ~]# mount -t cifs //192.168.133.130/centos /root/share -o username=root,password=123456
[root@localhost ~]# cd share
[root@localhost share]# ls
hello.txt
[root@localhost share]# ll
total 1024
-rwxr-xr-x. 1 root root 27 Jun 9 08:18 hello.txt
[root@localhost share]#
这个结合前面的教程,基本就不用解释了。
被挂载的路径就是 //ip/配置文件里面配置项的名称;username就是给文件夹专门设置的账号;password也是专门给文件夹设置的密码,不同于root账号登录的密码。
其实吧,大多数教程我都在centos和ubuntu试过了,基本来说,挂载文件方面的命令,是不区分linux系统的;除了windows挂载ubuntu的文件夹没试过,不过其实也没什么变化,只是安装软件的命令不同罢了,此外,ubuntu启动smb服务的命令是这个:"systemctl start smbd"。