zoukankan      html  css  js  c++  java
  • mount挂载权限问题

         最近一直都是在linux下开发,见识是长了,但是效率还是提不上来,于是想方设法结合windows与linux的优点。
     linux 做服务器远比windows好,程序最终还是在linux下跑的,况且服务程序在linux与window下速度相差很大的,跑 apache+mysql+php 就可以看出明显的差距了,同一台机器上,我在windows下开个linux虚拟机跑apache+mysql+php都比直接在本机windows下跑 apache+mysql+php快很多,但是如果写程序的话,还是windows比较快速。
     
     挂载在linux中非常常见,很自然就想到了在linux下挂载windows的共享目录实现windows与linux的有效结合。
     首先,在windows设置共享目录。假设共享目录访问路径为://192.168.10.1/project
     然后,配置虚拟机host-only上网模式后,安装smb。
     [root@centos ~] yum install smb
     安装完smb后,就可以挂载windows共享目录了
     [root@centos ~] mount //192.168.10.1/project /var/www/html/project -o username=admin,password=123456
     简单就挂载好了,把apache工程路径改成这里的/var/www/html/project,将项目移到//192.168.10.1/project,似乎是可以运行了,但是如果项目如果用到写权限的话,就抛出一大堆的permission deny了。。。
     
     经过一方折腾后,终于突然理解了Linux下的挂载命令 mount 是怎样赋予用户权限的了。
     
     [root@centos ~] mount //192.168.10.1/project /var/www/html/project -o rw,username=admin,password=123456
     加 上rw这个参数,或fmask,dmask指定权限,dmask是目录的mask,fmask是文件的mask ,mask是权限掩码,由3个八进制的数字所组成, 当前访问权限去掉权限掩码所表示的权限之后, 即可产生建立文件时预设的权限。 第一位表示自己访问的权限,第二位表示同组访问的权限,第三位表示其他所有人访问的权限。
     但是这样仍然是不起作用的,若不指定apache用户,终归是无效的。
     [root@centos ~] id apache
     uid=48(apache) gid=48(apache) groups=48(apache)
     
     [root@centos ~] mount //192.168.10.1/project /var/www/html/project -o rw,uid=48,gid=48,username=admin,password=123456
     
     这样读写权限就没问题,试试哦。。。。
     
     其实这中间还是碰到一些 问题的,比如由于mount老是出现权限问题,需要umount那个目录,问题就出来了,老是出现device is busy
     想到可能是apache正在使用这个目录呢,
     [root@centos ~] service httpd stop
     [root@centos ~] fuser -v /var/www/html/project
      查看还有谁在用这个目录,如果只你一个人在用的话kill掉就好了,fuser 自带kill了
     [root@centos ~] fuser -k /var/www/html/project
     经此折腾,自觉又长见识了,
     突然想起某网友名言:人生在于折腾!
     
     
    转载来自:http://1300hong.blog.163.com/blog/static/22545921201223091112544/
     
     
     
    通过这文章介绍解决了挂载访问权限的问题
    之前:
    mount -t cifs -o username=administrator,password=123456 //192.168.61.181/work /mnt/work

    之后:
    mount -t cifs -o rw,uid=501,gid=501,username=administrator,password=123456 //192.168.61.181/work /mnt/work
    其中www的用户如下
     
     
     
    linux挂接Windows文件共享方法

      Windows网络共享的核心是SMB/CIFS,在linux下要挂接(mount)windows的磁盘共享,就必须安装和使用samba 软件包。现在流行的linux发行版绝大多数已经包含了samba软件包,如果安装linux系统

    时未安装samba请首先安装samba。当然也可以到 www.samba.org网站下载......新的版本是3.0.10版。

      当windows系统共享设置好以后,就可以在linux客户端挂接(mount)了,具体操作如下:

      # mkdir –p /mnt/samba

      注:建立一个目录用来作挂接点(mount point)

      # mount -t smbfs -o username=administrator,password=pldy123 //10.140.133.23/c$ /mnt/samba

        mount -t cifs -o (rw,uid=501,gid=501, 可选,解决访问权限问题) username=administrator,password=123456 //192.168.1.26/work /mnt/work(注意:要先设置好windows的密码,然后设置为共享目录,配置好读写权限)

      注:administrator 和 pldy123 是ip地址为10.140.133.23 windows计算机的一个用户名和密码,c$是这台计算机的一个磁盘共享

      如此就可以在linux系统上通过/mnt/samba来访问windows系统磁盘上的文件了。以上操作在redhat as server 3、redflag server 4.1、suse server 9以及windows NT 4.0、windows 2000、

    windows xp、windows 2003环境下测试通过。

        删除挂载点:umount /mnt/work

     
  • 相关阅读:
    h.264的POC计算(转载)
    如何从kernel源码中查出版本号(转载)
    git切换分支保存修改的代码的方法(转载)
    【转载】Gradle for Android 第二篇( Build.gradle入门 )
    【转】gradle for android 第一篇
    android studio学习----android studio断点调试
    maven 学习---Maven配置之pom文件配置包含和排除测试
    maven 学习---Maven 编译打包时如何忽略测试用例
    android studio学习----gradle多渠道打包
    android studio学习----gradle命令详解
  • 原文地址:https://www.cnblogs.com/gxldan/p/4140382.html
Copyright © 2011-2022 走看看