难道linux下无法chmod mount过来的windows下的共享文件吗?

你这描述的是如何共享,目前我共享没有问题,现在我的问题是,假设win7 IP地址是192.168.1.3
我虚拟机centos IP地址是192.168.1.113
我mount -t cifs -o username=win7用户名,password=密码 //192.168.1.3/htdocs /opt/xdevelop/192.168.1.3/data0/htdocs成功
也能看见/opt/xdevelop/192.168.1.3/data0/htdocs下的内容,我现在是
chmod -R 777 /opt/xdevelop/192.168.1.3/data0/htdocs下的内容没有任何变化!

chmod 只对 posix 兼容分区起作用。但 ntfs 直接要用 ACL 的……
你就当作所有和 Windows 有关的分区都不能用 chmod 吧……

至于权限,你可以看看 cifs 的相关文档,有很多设置权限的都是用 umask ,或者直接指定挂载的 uid 和 gid ,这样文件挂载时会被 umask 遮罩后进行默认权限设置,或者通过 uid 和 gid 来直接设置文件的所有者和所有组。

但并不是所有的文件系统都支持这些挂载参数,所以,具体还是要看文档……
你竟然 htdocs 目录也要挂载,太那啥了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-12-01
windowns里ntfs下分区的目录如何在linux下smb共享。(由于fat分区比较容易实现,所以不在此讨论)

如何在linux中smb共享windows下ntfs分区的文件,经过我多次试验终于成功了,拿出来与大家分享一下。

试验环境windowsXP 分区格式:ntfs, linux为redhat 内核版本 2.4

1.windows下有目录 win_dir,我们想把它挂载到linux下,以便启动linux后可以访问win_dir
start or stop a

2.2.4内核不支持linux直接访问windows的ntfs分区,要先下载插件
uname -r 查看内核版本信息
[root@localhost feng]# uname -r
2.4.21-4.EL
然后下载kernel-ntfs-2.4.21-4.EL.i686.rpm 包,并按装。

3.挂载
首先查看win_dir所在目录的分区 fdisk -l

[root@localhost feng]# fdisk -l

Disk /dev/hda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hda1 * 1 1305 10482381 7 HPFS/NTFS
/dev/hda2 1306 9728 67657747+ f Win95 Ext'd (LBA)
/dev/hda5 1306 3867 20579233+ 7 HPFS/NTFS
/dev/hda6 3868 4517 5221093+ 7 HPFS/NTFS
/dev/hda7 4518 7079 20579233+ 7 HPFS/NTFS
/dev/hda8 7080 9598 20233836 83 Linux
/dev/hda9 9599 9728 1044193+ 82 Linux swap

/dev/hda1/表示第一块硬盘的第一个分区,通常是windows下的c:盘。
/dev/hda5/表示第一块硬盘的第五个分区,(1-4代表主分区,所以5代表第一个从分区,通常是windows下的D:盘,剩下的依次类推.)

假设win_dir存放于windows下的D盘下。

在linux下建立目录: D
[root@localhost mnt]# mkdir /mnt/D
[root@localhost mnt]# mount /dev/hda5 /mnt/D
[root@localhost mnt]# cd /mnt/D
[root@localhost D]# ls
这时你看到了win_dir目录说明你已经挂载成功了.

4.如何使用samba共享目录呢.
首先安装samba服务.然后配置smb
[root@localhost samba]# vi /etc/samba/smb.conf
在最后添加如下代码:
[win_dir]
comment = win_dir
path = /mnt/D/win_dir
valid users = zdl
public = no
writable = no
printable = no
create mask = 0664
directory mask =0775
保存退出.
valid users = zdl是表示访问此目录的用户是zdl
如果没有用户可添加用户:
adduser zdl
passwd zdl
重起服务
[root@localhost init.d]# /etc/rc.d/init.d/smb restart
关闭 SMB 服务: [ 确定 ]
关闭 NMB 服务: [ 确定 ]
启动 SMB 服务: [ 确定 ]
启动 NMB 服务: [ 确定 ]

这时在其他主机上访问smb,假设linux主机的IP地址为192.168.10.169
运行\\192.168.10.169
如果看到目录则表示smb服务搭建成功.这时访问win_dir目录,提示要输入用户名和密码
输入zdl和密码却不能访问,这是什么原因呢.
我们来看下/mnt/D这个目录 ls -l
dr-x------ 1 root root 4096 9月 30 10:05 D
原来这个目录只有root可以读和执行的权限
我们改一下这个目录的权限看看可以吗.
[root@localhost mnt]# chmod 777 /mnt/D
chmod: 正在更改 ‘/mnt/D’ 的权限: 只读文件系
只读文件系统不能修改权限,这时我们怎么办呢.我采用的方法是修改用户的权限
就是把zdl这个用户改为和root一样的权限
vi /etc/passwd

zdl:x:0:0::/home/zdl:/bin/bash
保存退出.

追问

你这描述的是如何共享,目前我共享没有问题,现在我的问题是,假设win7 IP地址是192.168.1.3
我虚拟机centos IP地址是192.168.1.113
我mount -t cifs -o username=win7用户名,password=密码 //192.168.1.3/htdocs /opt/xdevelop/192.168.1.3/data0/htdocs成功
也能看见/opt/xdevelop/192.168.1.3/data0/htdocs下的内容,我现在是
chmod -R 777 /opt/xdevelop/192.168.1.3/data0/htdocs下的内容没有任何变化!

本回答被提问者和网友采纳
第2个回答  推荐于2016-09-12

可以的,以下是我挂载Windows磁盘的命令:

假定在服务器\\winserver下共享了一个叫share的文件夹,在Linux下我想叫WinShare,命令如下:

    先在Linux上创建一个名为WinShare的目录 mkdir WinShare

    通过mount命令挂载Windows共享mount -t cifs -o username="domain\username",password="password" //winserver/share WinShare

    进入WinShare创建一个文件,然后在Windows上验证即可。

相似回答