开机自动执行sh程序(root权限)

本文围绕Ubuntu系统展开,讲述设置共享文件到自定义目录,因未勾选自动挂载,开机需重新执行mount命令。为解决此问题,需设置开机在root权限下执行mount命令的程序,给出了创建文件并添加到自动启动程序的解决方案,还提及失败后的处理办法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Ubuntu 设置共享文件+ 开启执行sh程序(root权限)

参考:

  1. https://www.cnblogs.com/huisir/p/11976684.html 如何设置开机自动启动程序
  2. 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 命令的程序。

我的解决方案如下:

  1. 首先,我在/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的参数相关,不要改。
####这个文件就包含我们要执行得文件
  1. 然后要把这个文件添加到这个 自动启动程序——
    使用gnome-session-properties添加开机自启动程序
    ● 在终端输入: #启动界面
sudo gnome-session-properties

● 弹出以下界面,然后点击 添加
在这里插入图片描述

● 设置 开机程序
名称:可以随便取 合法就行
命令: bash + 你的sh 文件路径
点击保存
在这里插入图片描述

之后就可以重新虚拟机看看是否设置成功

sudo reboot

如果成功:桌面就会弹出我的共享文件名称 我的是share。 之后你可以试着在share里面 放一些文件进行测试 ,是否可以共享成功。
在这里插入图片描述

最后:失败的话

如果你不能设置 开机自启动程序的话,可以在每一次开机的时候 运行以下mount执行也可以。
或者,直接在设置共享文件夹的时候,勾选 ✔自动挂载。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值