linux下挂载windows上的共享目录,并设置所有者为非root用户
參考了很多文章,這里總結下我得出來的最優答案(針對我的需求而言)吧,但是還是存在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$cmd elseecho "mounted"echo umount $destumount $dest fi
通過這種方式掛載后,$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=1000 0 2
這里第4列的選項與mount -o 時的內容不一定完全兼容,可能有些在mount中能識別的選項在fstab中無法識別的,如file_mode等。
?
?
總結
以上是生活随笔為你收集整理的linux下挂载windows上的共享目录,并设置所有者为非root用户的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信多开(两种方法)
- 下一篇: Web页面获取用户控件页面中服务器控件的