最近一直都是在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 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的用戶如下
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
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