Ubuntu 设置共享文件+ 开启执行sh程序(root权限)
参考:
- https://www.cnblogs.com/huisir/p/11976684.html 如何设置开机自动启动程序
- http://t.zoukankan.com/hellojesson-p-8004175.html 设置共享文件 挂载到自定义的路径
问题背景 :
我想把共享文件 设置在自定义的目录下 如 /home/wys/share
● 设置共享文件的时候 我并没有勾选自动挂载,因为这样子ubuntu 会默认挂在media下,而不是你指定目录。
可视化界面设置共享文件之后,我需要在unbuntu的终端输入:
sudo mount -t vboxsf share(你的共享文件名) /home/wys/share(你的挂载点)
之后就可以看到 桌面生成一个挂载点 share了。(为什么是在桌面? 这个我没想清楚,可能是因为我的share路径是 home/ 第一级别 ?)
但是这个优缺点,我重新开机后,这个挂载状态会消失。也就是说:我每一次开机都要执行 mount 命令才可以 使用共享文件。
需求-开机root权限下执行mount 命令的程序
所以,我需要设置开机自动执行这个命令:mount 命令。
但是,另一个难点是 mount 命令需要 root权限。
因此,我需要设置 开机root权限下执行这个 mount 命令的程序。
我的解决方案如下:
- 首先,我在/home/wys 这个目录下 创建两个文件,
分别为:
PWD_TEMP #这个文件名建议不要改
auto_setshare.sh #这个.sh文件是我随便取得
cd /home/wys
vim _PWD_TEMP_
####输入以下内容
#! /bin/bash
#add your ownpassword
echo "password"
####这个文件用来获取root密码,用引号框起来
#之后在创建auto_setshare.sh
vim auto_setshare.sh
####输入以下内容
export SUDO_ASKPASS=/etc/init.d/_PWD_TEMP_
sudo -A mount -t vboxsf share(你的共享文件名) /home/wys/share(你的挂载点)
####SUDO_ASKPASS 是unix得一个域名,和sudo 中-A的参数相关,不要改。
####这个文件就包含我们要执行得文件
- 然后要把这个文件添加到这个 自动启动程序——
使用gnome-session-properties添加开机自启动程序
● 在终端输入: #启动界面
sudo gnome-session-properties
● 弹出以下界面,然后点击 添加
● 设置 开机程序
名称:可以随便取 合法就行
命令: bash + 你的sh 文件路径
点击保存
之后就可以重新虚拟机看看是否设置成功
sudo reboot
如果成功:桌面就会弹出我的共享文件名称 我的是share。 之后你可以试着在share里面 放一些文件进行测试 ,是否可以共享成功。
最后:失败的话
如果你不能设置 开机自启动程序的话,可以在每一次开机的时候 运行以下mount执行也可以。
或者,直接在设置共享文件夹的时候,勾选 ✔自动挂载。