linux下挂载windows上的共享目录,并设置所有者为非root用户
来源:互联网 发布:美国ip衍生品数据 编辑:程序博客网 时间:2024/06/08 18:19
参考了很多文章,这里总结下我得出来的最优答案(针对我的需求而言)吧,但是还是存在bug,稍后指出!
以下是我的bash脚本,防止多次重复挂载,相信看了就能明白:
[zcm@vm-fedora20 share]$ cat m.sh #!/bin/bashsrc="//192.168.1.77/game"dest="/home/zcm/share/game"cmd="mount -t cifs -o rw,username=admin,password=1111,uid=1000,gid=1000,iocharset=cp936,file_mode=0777,dir_mode=0777 $src $dest"if [ `df | grep share | wc -l` -eq 0 ]; thenecho "not mounted"echo $cmd$cmdelseecho "mounted"echo umount $destumount $destfi
通过这种方式挂载后,$dest目录就能属于非root用户zcm了,同时新建的文件或目录的权限都为0777,即同时具有rwx权限。
简单说明:admin / 1111为访问windows上共享目录时的用户名和密码, uid和gid后的1000是linux下用户zcm的用户id和组id,可通过"id zcm“看到
bug:
我尝试通过cocos new 创建一个HelloWorld工程到$dest目录下,在创建过程中会失败,提示无法获取“$dest"目录下要创建的文件的状态,接下来挂载的目录就无法访问了,只有重启windows后重新挂载才行。
这个问题,还未找到解决办法,提示是"I/O错误",我想是不是与-t cifs这种协议本身有关呢,因为我是在这个共享目录中创建目录的,从结果来看,有部分文件和目录是创建成功了,但是有些却失败,不解。若有解决方案,希望可以交流下。
copy其他普通目录到这个共享目录下,我未作实际测试,因为老要重启windows,下次再试吧。
==================================================================
以上的mount方式,只有执行一次才能挂载上去。如果要让系统启动时自动挂载上去,需要在/etc/fstab文件末尾添加一行挂载项,如:
//192.168.1.77/game/home/zcm/share/game cifs defaults,username=admin,password=1111,uid=1000,gid=10000 2
这里第4列的选项与mount -o 时的内容不一定完全兼容,可能有些在mount中能识别的选项在fstab中无法识别的,如file_mode等。
- linux下挂载windows上的共享目录,并设置所有者为非root用户
- linux添加用户并设置为root权限
- 把windows目录挂载mount到linux下,非root用户没有写权限解决方法
- linux 非目录所有者 无权限访问
- linux下挂载windows共享目录并创建软链接
- 在linux上通过samba访问windows的共享目录
- Linux下挂载windows下的共享目录
- Windows磁盘或目录设置共享,Linux识别并挂载
- Linux下挂载Windows共享目录
- linux下挂载windows共享目录
- Linux下挂载Windows共享目录
- ubuntn14.04 root的设置及共享目录的设置
- 为ubuntu的root用户设置密码
- Win7上设置共享目录的做法
- 把win下的共享目录mount到linux下,并给予某用户读写权限
- Linux设置共享目录
- linux 设置共享目录
- 设置linux共享目录
- 设计模式——组合模式(Composite Pattern)
- getElementsByClassName函数
- RVDS4.0建立工程
- win+r的快捷操作
- iOS开发网络篇—文件下载(暂停和恢复)
- linux下挂载windows上的共享目录,并设置所有者为非root用户
- 进程通信之共享内存
- 黑马程序员——银行业务调度系统的实现
- Linux线程机制的分类和特性
- 【白话经典算法系列之七】 堆与堆排序
- [版本]Cam 下配置 Tig 服务器*
- 我叫程序员
- Delphi XE7中新并行库
- C#设计模式之简单工厂模式