Linux开机启动sudo命令

本文介绍如何设置开机自动执行sudo命令。通过确保/etc/rc.local文件对root用户具有可执行权限,并将所需的sudo命令添加到该文件中,可以在系统启动时以root身份运行这些命令。

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

 

需要开机执行的sudo命令可以写在/etc/rc.local中,因为/etc/rc.local是以root身份去执行的。
系统在启动时会先调用/etc/init.d/rc.local,在/etc/init.d/rc.local脚本中再调用/etc/rc.local
/etc/init.d/rc.local中调用/etc/rc.local的部分如下:
if [ -x /etc/rc.local ]; then
 [ "$VERBOSE" != no ] && log_begin_msg "Running local boot scripts (/etc/rc.local)"
 /etc/rc.local
 ES=$?
 [ "$VERBOSE" != no ] && log_end_msg $ES
 return $ES
fi
可见,首先要必须先保证/etc/rc.local对root具有可执行权限,这点也是让我困惑了很久~~

通过sudo chmod u+x /etc/rc.local后,即可往/etc/rc.local中添加sudo命令实现开机自动执行了^_^

### Ubuntu 20.04 中设置包含 `sudo` 命令的程序或脚本开机启动 在 Ubuntu 20.04 系统中,可以通过多种方式实现包含 `sudo` 的程序或脚本开机启动功能。以下是几种常见的方法及其注意事项。 #### 方法一:通过 systemd 创建服务单元文件 这是推荐的方法之一,适用于需要更高权限的任务。具体操作如下: 1. **创建服务单元文件** 在 `/etc/systemd/system/` 下新建一个 `.service` 文件,例如命名为 `mysudoautostart.service`。 ```bash sudo nano /etc/systemd/system/mysudoautostart.service ``` 2. **编辑服务单元文件内容** 添加以下内容到该文件中: ```ini [Unit] Description=Sudo Autostart Script After=network.target [Service] Type=simple User=root ExecStart=/path/to/script.sh Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target ``` 这里需要注意的是,在 `[Service]` 部分设置了 `User=root` 来确保脚本以超级用户身份执行[^3]。 3. **启用并启动服务** 使用以下命令来激活新创建的服务: ```bash sudo systemctl daemon-reload sudo systemctl enable mysudoautostart.service sudo systemctl start mysudoautostart.service ``` #### 方法二:利用 crontab 定时任务中的 @reboot 功能 Cron 是 Linux 上的一个定时任务调度工具,其中 `@reboot` 可用于指定系统重启后的首次运行任务。 1. 编辑 root 用户的 cron 表单: ```bash sudo crontab -e ``` 2. 添加一行类似于下面的内容: ```cron @reboot /path/to/sudo_script.sh ``` 此处的路径应指向实际需要作为管理员权限运行的脚本位置[^2]。 #### 方法三:修改 rc.local 文件 (不建议) 尽管这种方法仍然有效,但在较新的版本如 Ubuntu 20.04 中,默认情况下可能未启用此机制。如果决定采用这种方式,则需先确认其状态再做相应调整。 --- 上述每种方案都有各自的优缺点以及适用场景,请依据实际情况选取最合适的策略实施部署。另外提醒注意安全风险控制,比如仅授予必要的最小化权限给这些自动化的进程处理逻辑。 ```python print("Example Python Code Block") ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值