1. 建立共享目录
在windows上建立共享目录
高级共享管理中开启以下配置
选中目录(study),右键->属性->共享
选择 Everyone
获取到win本机网络共享资源路径,//DESKTOP-NITNNV0/study
获取win当前登录用户名
win+r 输入 cmd,键入echo %username%
回车,得到登录的用户名lin
2. 虚拟机安装samba
yum install samba samba-client
3. 访问windows指定共享目录
smbclient //IP/windows建立的共享目录名称 -U windows登录用户名%密码
[root@localhost data]# smbclient //DESKTOP-NITNNV0/study -U lin%密码
Try "help" to get a list of possible commands.
smb: \> ls
. D 0 Tue Sep 26 22:46:57 2023
.. D 0 Tue Sep 26 22:46:57 2023
test D 0 Tue Sep 26 22:46:51 2023
937684049 blocks of size 4096. 913265752 blocks available
smb: \> exit
4. 将目录直接挂载到虚拟机中
mount -t cifs -o username="windows用户名",password="密码" //宿主机IP/共享文件夹名称 /挂再到linux的指定目录
[root@localhost data]# mount -t cifs -o username="lpb",password="密码" //DESKTOP-NITNNV0/study /data/www/
mount: 文件系统类型错误、选项错误、//DESKTOP-NITNNV0/study 上有坏超级块、
缺少代码页或助手程序,或其他错误
(对某些文件系统(如 nfs、cifs) 您可能需要
一款 /sbin/mount.<类型> 助手程序)
有些情况下在 syslog 中可以找到一些有用信息- 请尝试
dmesg | tail 这样的命令看看。
报错是应为使用了cifs
但是没有安装它,安装下就好了,执行yum install -y cifs-utils
再次尝试:
[root@localhost data]# mount -t cifs -o username="lpb",password="密码" //DESKTOP-[root@localhost data]# ls /data/www/
test
测试win上再新建个test1目录
虚拟机上查看
[root@localhost data]# ls /data/www/
test test1
5. 取消挂载
umount linux上挂载的文件路径
umount /data/www/
Win10 解决电脑重启后 需重新设置
Win10问题:之前用Win7,设置好网络共享后,每次开关机子网都能正常使用,但是升级Win10后,每次开机需要重新把共享开关下才能生效。如下图所示,将共享先取消勾选下,再勾上子网才能正常使用。
解决办法:
1、点击Win+R
,弹出命令框,输入services.msc
2、选中Internet Connection Sharing
这个服务右键,点击属性打开,启动类型选择“自动”,确定保存
3、点击
Win+R
,弹出命令框,输入regedit
4、找到路径:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\SharedAccess
下,添加一个注册表子项5、在空白处右击鼠标,新建
DWORD(32位)值(D)
,名称叫做EnableRebootPersistConnection
,将数值数据改为1。注意:编辑注册表时要小心。错误地修改注册表可能会导致严重问题。在操作之前请备份您的注册表。
设置好以后每次开关机,子网会自动进入共享状态。
特殊情况:
用以上方式挂载的目录用户权限是root的,chmod
、chown
等命令无法生效,当我们运行项目写入日志时会没有权限,此时可以在挂载的时候指定挂载的用户,具体操作如下:
参数-o可以加入以某个账号的uid和gid的方式挂载,挂载成功后该目录下的所有文件属性都属于这个账号
比如说,我想让 /mnt/share_software 所属用户、用户组分别为 www、www。首先,得通过如下命令查找出 用户www的uid,和用户组www的guid分别为多少:
[root@hyperv ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
saslauth:x:997:76:Saslauthd user:/run/saslauthd:/sbin/nologin
unbound:x:996:995:Unbound DNS resolver:/etc/unbound:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
mysql:x:1000:1000::/home/mysql:/sbin/nologin
www:x:1001:1001::/home/www:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
如上所示,www的uid为1001,gid为1001,最后调整挂载命令如下:
#先删除掉先前的挂载
umount /data/www
#挂载后,让Linux目录所属用户和用户组分别为 www:www
mount -t cifs -o username="lpb",password="密码",uid="1001",gid="1001" //P-1711/cn /data/www/
效果:
[root@hyperv ~]# ll /data/www/
总用量 0
drwxr-xr-x 2 www www 0 10月 7 10:50 test