linux下挂载windows上的共享目录,并设置所有者为非root用户
參考了很多文章,這里總結(jié)下我得出來的最優(yōu)答案(針對(duì)我的需求而言)吧,但是還是存在bug,稍后指出!
以下是我的bash腳本,防止多次重復(fù)掛載,相信看了就能明白:
?
[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了,同時(shí)新建的文件或目錄的權(quán)限都為0777,即同時(shí)具有rwx權(quán)限。
簡(jiǎn)單說明:admin / 1111為訪問windows上共享目錄時(shí)的用戶名和密碼, uid和gid后的1000是linux下用戶zcm的用戶id和組id,可通過"id zcm“看到
?
bug:
我嘗試通過cocos new 創(chuàng)建一個(gè)HelloWorld工程到$dest目錄下,在創(chuàng)建過程中會(huì)失敗,提示無法獲取“$dest"目錄下要?jiǎng)?chuàng)建的文件的狀態(tài),接下來掛載的目錄就無法訪問了,只有重啟windows后重新掛載才行。
?
這個(gè)問題,還未找到解決辦法,提示是"I/O錯(cuò)誤",我想是不是與-t cifs這種協(xié)議本身有關(guān)呢,因?yàn)槲沂窃谶@個(gè)共享目錄中創(chuàng)建目錄的,從結(jié)果來看,有部分文件和目錄是創(chuàng)建成功了,但是有些卻失敗,不解。若有解決方案,希望可以交流下。
?
copy其他普通目錄到這個(gè)共享目錄下,我未作實(shí)際測(cè)試,因?yàn)槔弦貑indows,下次再試吧。
?
==================================================================
以上的mount方式,只有執(zhí)行一次才能掛載上去。如果要讓系統(tǒng)啟動(dòng)時(shí)自動(dòng)掛載上去,需要在/etc/fstab文件末尾添加一行掛載項(xiàng),如:
//192.168.1.77/game /home/zcm/share/game cifs defaults,username=admin,password=1111,uid=1000,gid=1000 0 2
這里第4列的選項(xiàng)與mount -o 時(shí)的內(nèi)容不一定完全兼容,可能有些在mount中能識(shí)別的選項(xiàng)在fstab中無法識(shí)別的,如file_mode等。
?
?
總結(jié)
以上是生活随笔為你收集整理的linux下挂载windows上的共享目录,并设置所有者为非root用户的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信多开(两种方法)
- 下一篇: Linux C 函数指针应用---回调函