开机自启动,自动运行的脚本具有管理员权限(即root权限),但不希望手动输入密码

这篇具有很好参考价值的文章主要介绍了开机自启动,自动运行的脚本具有管理员权限(即root权限),但不希望手动输入密码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

板端的发布程序自启动:

1、可以选择将应用程序和依赖打包到rootfs中,或者放到单独的eMMC分区中

2、自启动,在rootfs的 /etc/init.d/rcS 或者/etc/inittab

3、配置systemctl 自启动

3.1 自启动脚本路径

/lib/systemd/system/

3.2 撰写脚本service

参考:https://blog.csdn.net/kuangguiyun/article/details/125089060
参考:https://blog.csdn.net/cdnight/article/details/87717644

[Unit]
Description=mongodb程序
After=syslog.target network.target remote-fs.target nss-lookup.target
 
[Service]
Type=forking
ExecStart=/opt/mongodb-3.4.0/start.sh
ExecStop=/opt/mongodb-3.4.0/stop.sh
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target

自己写个例子

autopilot.sh

#!/bin/bash
sleep 10
sudo ip link set enp2s0 up
sudo ifconfig enp2s0 10.7.77.1 netmask 255.255.0.0

autopilot.service

[Unit]
Description=calmcar autopilot service
DefaultDependencies=no
Requires= network.target 
After=rc-local.service
[Service]

Type=oneshot
RemainAfterExit=yes
ExecStart=/home/nvidia/autopilot.sh
ExecStop=/home/nvidia/autopilot_shutdown.sh
TimeoutSec=70
TimeoutStopSec=71
[Install]
WantedBy=multi-user.target

脚本下载:https://gitee.com/hiyanyx/systemctl-self-start-upon-startup

sudo cp /home/nvidia/autopilotV2/autopilot.service /lib/systemd/system/

重新载入系统脚本,

sudo systemctl daemon-reload

启动:

systemctl start mongodb

查看状态是

systemctl status mongodb

关闭重启是

systemctl stop和restart mongodb

添加开机启动是:

sudo systemctl enable  autopilot.service
sudo systemctl disable autopilot.service

4、自启动 /etc/init.d/rcS 和 systemctl 的区别是什么?

/etc/init.d/rcS 和 systemctl 都是用于管理系统服务的工具,但它们在功能和用法上有一些区别。

/etc/init.d/rcS 是一个传统的 Linux 启动脚本,通常在系统启动时运行。它包含了各种系统服务的启动和停止命令。在 Linux 系统中,启动脚本是放在 /etc/init.d/ 目录下的,这些脚本在系统启动时按顺序执行,用于启动各种系统服务。其中,rcS 是一个特殊的启动脚本,通常被用来初始化系统环境,它的内容主要是调用 /etc/init.d/rcN.N 脚本(N.N 表示脚本的版本号)。

systemctl 是 systemd 系统和服务管理工具的命令行接口。systemd 是 Linux 系统上一个重要的初始化系统,它取代了 SysVinit 系统,成为了现代 Linux 系统上默认的初始化系统。systemctl 命令可以用来管理系统上运行的服务以及其他与 systemd 系统相关的功能。通过 systemctl 命令,我们可以控制服务的启动、停止、重启、查看状态等操作,还可以设置服务在开机时自动启动或禁用等。

总的来说,/etc/init.d/rcS 和 systemctl 都是用于管理系统服务的工具,但它们的使用方式和功能略有不同。/etc/init.d/rcS 更适用于传统的 Linux 启动脚本管理方式,而 systemctl 则提供了更为全面和灵活的服务管理功能。

自启动的多种方式

在Linux系统中,如果你想让开机自动运行的脚本具有管理员权限(即root权限),但不希望手动输入密码,有几种方法可以实现这一目标:

  1. 使用sudoers文件
    你可以编辑/etc/sudoers文件来允许特定的用户或命令无需密码即可执行sudo。为了安全起见,建议使用visudo命令来编辑此文件,因为visudo会检查你的编辑是否有语法错误。

    例如,如果你想让脚本/path/to/your/script.sh能够无密码运行,你可以添加以下行:

    username ALL=(ALL) NOPASSWD: /path/to/your/script.sh
    

    其中username是运行脚本的用户名。这样,当这个用户执行这个脚本时,sudo就不会要求输入密码。

  2. 使用setuid位
    你可以设置脚本文件的setuid位,使其以文件所有者的身份(通常是root)执行。这样,即使脚本由普通用户启动,它也会以root权限运行。

    sudo chmod u+s /path/to/your/script.sh
    

    但是,这种方法要求脚本内部不需要输入任何密码,因为一旦设置了setuid位,脚本将以root身份执行所有命令。

  3. 使用root的cron作业
    你可以在root的cron作业中设置脚本的自动执行。这样,cron守护进程(作为root运行)将执行脚本,而不需要任何密码。

    sudo crontab -e
    

    然后在cron作业中添加类似以下的行:

    @reboot /path/to/your/script.sh
    

    这将在系统启动时执行脚本。

  4. 使用init.d脚本或systemd服务
    如果你的系统使用Systemd作为初始化系统,你可以创建一个systemd服务文件,并在其中指定脚本的执行。这种方法允许你定义脚本的启动条件,并且可以通过设置适当的权限来避免密码提示。

    例如,创建一个名为your-script.service的systemd服务文件:

    [Unit]
    Description=My Script
    After=network.target
    
    [Service]
    Type=simple
    ExecStart=/path/to/your/script.sh
    Restart=always
    User=root
    
    [Install]
    WantedBy=multi-user.target
    

    然后启用服务:

    sudo systemctl enable your-script.service
    

    这将使得脚本在系统启动时自动运行。

安全注意事项文章来源地址https://www.toymoban.com/news/detail-836480.html

  • 自动化root权限的脚本执行可能会导致安全问题,因为它允许脚本无限制地访问系统资源。确保你完全信任并理解脚本的功能。
  • 尽量避免在脚本中硬编码root密码,因为这会导致安全风险。
  • 使用上述方法时,请确保你已经仔细考虑了潜在的安全隐患,并且只在必要时才允许脚本以root权限运行。

到了这里,关于开机自启动,自动运行的脚本具有管理员权限(即root权限),但不希望手动输入密码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ubuntu开机出现《系统出错且无法恢复,请联系系统管理员。》错误解决办法!

    背景: ubuntu22.04.2命令行,执行自动安装系统推荐显卡驱动命令,字体变大,重启后出现如下图错误,无法进入系统,无法通过CTRL+ALT+F1-F3进入TTY模式。 解决办法: 1.首先要想办法进入系统,能输入命令检查。 方法一:按CTRL+ALT+F1-3进入TTY模式,输入命令。(行不通) 方法二

    2024年04月23日
    浏览(34)
  • windows脚本获取管理员权限修改host

    很多时候我们常常需要通过管理员权限执行脚本,脚本可能涉及到一些受保护信息的访问,我们写个简单的脚本来更改host文件,host文件就是需要管理员权限才能访问的启动脚本时先检查是否有管理员权限,如果没有就调用授权脚本进行管理员授权打开,给用户弹出需要管理

    2024年02月14日
    浏览(36)
  • QT以管理员身份运行

    以下配置后,QT在QT Creator调试时,或者生成的.exe程序,都将会默认以管理员身份运行。 1、在Pro文件中添加以下代码: 重启QT软件,以管理员权限打开QT软件,重新构建一下,如果不成功,这样再重新编译时就没有问题了! 2、但是会有个后遗症,会发现我们在debug下,无法进

    2024年02月14日
    浏览(36)
  • Inno Setup 打包的文件以管理员权限运行

    在 Inno Setup 安装目录中找到文件 SetupLdr.e32,用软件 ResourceHacker 打开。 如下图,点开清单,找到 改为 改完点击编译,然后再保存。 在Inno Setup 的打包编译脚本Setup节点中增加 PrivilegesRequired=admin 点击编译,这样编译出来的程序在安装时,就会自动提示获取管理员权限。

    2024年02月09日
    浏览(34)
  • WinForm实现管理员权限运行的三种方式

    来源:https://mp.weixin.qq.com/s/ydBWABy7kwOWxNCQu4qYMA   在visual studio开发winform程序,生成msi安装包以后,代码运行似乎没有问题。但是,若是软件安装到了C盘,软件在执行某些操作,比如写文件、读文件等操作时,有可能会因为操作系统用户权限不足导致读写不成功。关键这时候软

    2024年02月04日
    浏览(36)
  • Windows开发:服务程序启动有管理员权限的界面程序

    本章介绍Windows桌面开发中,服务程序如何启动有管理员权限的界面进程。 在这种情况下,以下几点需要弄清楚: Windows的服务是什么 Microsoft Windows 服务(过去称为 NT 服务)允许用户创建可在其自身的 Windows 会话中长时间运行的可执行应用程序。 这些服务可在计算机启动时自

    2024年02月11日
    浏览(48)
  • linux环境minio安装启动,管理员登录,nginx代理

    一.下载minio 官网下载:  MinIO | Code and downloads to create high performance object storage  直接点击下载或者用wget https://dl.min.io/server/minio/release/linux-amd64/minio 最后都是得到一个文件minio(大概100M) 二.启动minio 1.创建文件夹,比如 2.将第一步得到的minio放到上面目录下 3.给该文件夹赋权限  

    2023年04月24日
    浏览(51)
  • Win10解决:系统管理员已阻止你运行此应用

    前言 Win10安装msi软件包时出现错误提示如下: 解决 按【win+R】快捷键打开运行,输入 gpedit.msc 回车 依次进入”Windows设置“—”安全设置“—”本地策略“–”安全选项“—”用户账户控制:以管理员批准模式运行所有管理员“—双击,设置为”已禁用“,应用确定。 重启电

    2024年02月12日
    浏览(38)
  • Win 10以管理员身份运行Powershell的3种方法

    方法一:使用搜索栏。 在任务栏在搜索框中键入 powershell ,右键单击结果上的 Windows PowerShell,然后选择\\\"以管理员身份运行\\\"。   方法二: 使用运行以管理员身份运行 PowerShell。 同时按键盘上的 Windows + R 键以打开\\\"运行\\\"框。键入 powershell 并按 Enter 键。这将以管理员身份运

    2024年02月16日
    浏览(42)
  • windows10系统如何解决“管理员已阻止你运行此应用“

    安装某些软件时偶尔遇到如下问题,解决方法作以记录。 Windows 10系统在安装驱动或程序时提示“ 管理员已阻止运行此应用 ”,要如何解决呢? 操作如下:(亲测第四条有效!) 1. 右击安装程序选择【以管理员身份运行】 2. 关闭防火墙和杀毒软件后,右击安装程序选择【以

    2024年02月13日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包