我在腳本中使用mount命令在bash中掛載usb驅動器。我已關閉haldameon,並自動確保驅動器不會自動掛載。BASH:在非root用戶上掛載usb驅動器不會賦予寫入驅動器的權利
一切工作在根,也如果你在根中運行它,然後切換到非root帳戶。但是,當關機進入非root帳戶並運行腳本時,驅動器將掛載但不允許寫入命令。
下面是一些僞代碼:
關閉的autofs,haldaemon手動 插入驅動器插入電腦 運行安裝 嘗試使用目錄寫的/ mnt/
錯誤權限
這是關閉自動掛載代碼。
#stop automounter
/etc/init.d/autofs stop
#stop hal daemon, this is the hardware abstraction layer
/etc/init.d/haldaemon stop
這裏是安裝代碼:
#WHITE---------------------------------------
if grep -qs '/mnt/WHITE' /proc/mounts; then
echo "WHITE Mounted re-mounting Unnecessary"
else
#check if the directories are already there and remove if necessary
if [ -d "/mnt/WHITE" ] ; then
rmdir "/mnt/WHITE"
fi
#create directory and mount by label
mkdir -p /mnt/WHITE
mount -L WHITE /mnt/WHITE
#check if the WHITE USB Drive is mounted to the correct directory
if [ -d "/mnt/WHITE" ] ; then
#check if USB is mounted by location
if grep -qs '/mnt/WHITE' /proc/mounts; then
echo "WHITE Mounted"
else
echo $errorstatus_white_mount
exit 1
fi
else
echo $errorstatus_white_mount
exit 1
fi
fi
下面是有錯誤的拷貝的代碼:
echo "Copying Test Files to Drives"
#copy
cp $copyfile "/mnt/WHITE"
cp $copyfile "/mnt/GREEN"
cp $copyfile "/mnt/RED"
sync
sleep 2
也用於安裝的命令,/etc/init.d/中autofs stop,/etc/init.d/haldaemon stop在sudoers文件中。
感謝您對此權限之謎的幫助。
什麼fstab的項目for/mnt/WHITE的樣子? – 2012-02-23 21:23:19
所有者:root,創建並刪除;組:根,訪問文件;其他:訪問文件 – bing281 2012-02-23 21:27:52