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

     
  • 相关阅读:
    Java如何编写自动售票机程序
    install windows service
    redis SERVER INSTALL WINDOWS SERVICE
    上传文件
    This problem will occur when running in 64 bit mode with the 32 bit Oracle client components installed.
    解决Uploadify上传控件加载导致的GET 404 Not Found问题
    OracleServiceORCL服务不见了怎么办
    Access to the temp directory is denied. Identity 'NT AUTHORITYNETWORK SERVICE' under which XmlSerializer is running does not have sufficient permiss
    MSSQL Server 2008 数据库安装失败
    数据库数据导出成XML文件
  • 原文地址:https://www.cnblogs.com/gxldan/p/4140382.html
Copyright © 2011-2022 走看看