使用 root 特权运行的 Ubuntu 的 Autoexec.bat 等价物?

Mee*_*org 5 security boot 12.04

在 Ubuntu 上必须有几个“ autoexec.bat”等价物,因为我可以看到类似的文件rc.local似乎做的很少,因为文件中的注释说它默认不起作用,我尝试将这个命令放在那里,但它不起作用。

我需要知道的是我把这条线放在哪里。

echo 0 | /usr/bin/tee -a /sys/class/leds/smc::kbd_backlight/brightness
Run Code Online (Sandbox Code Playgroud)

我也看到了rc.localin /etc/init.d,但是我将 cmd 放在哪里以使其工作是个谜,因为那里有两个函数,所以我是将它放在其中一个函数的末尾还是最后一行?

该命令需要 root 权限才能运行,理想情况下应该在计算机启动时执行。当命令使我的 MacBook Air 的键盘变暗时。

此外,我还想知道如果只有特定用户运行此命令,我需要编辑哪个文件。作为根命令,我不想授予该用户 admin 或 sudo 访问权限,我希望当用户登录并且用户无法阻止该命令运行时,该命令以 root 身份执行。


其他发现
$HOME/.profile 是登录脚本,但不以 root 身份运行,如果您使用 sudo 命令但那不是我需要的,它可以工作。

/etc/profile是怪异,它不会在启动执行,但是当我进入一个shell然后执行sudo -i“它只要通过sudo进入交互模式运行


一个整洁的捷径
使用 14.04 版本,可能在早期版本中有效,您只需使用添加一行到 crontabsudo crontab -e并添加一行“@rebootwhatevercommandwithfullpath”,它就可以工作了。但是在这个新版本中,我创建了一个新贵脚本,它更接近于它应该如何完成。

Ant*_*uez 4

你可以创建一个守护女巫是正确的方法。然而它比 rc.local 难一点。

请参阅此处:https://superuser.com/questions/530071/installing-daemon-on-a-fresh-ubuntu-system

详细帮助(您可以以/etc/init.d/hostname为例):

复制骨架:

sudo cp /etc/init.d/skeleton /etc/init.d/keyboard_backlight
Run Code Online (Sandbox Code Playgroud)

编辑骨架:

sudo nano /etc/init.d/keyboard_backlight
Run Code Online (Sandbox Code Playgroud)

搜索这个

do_start()
{
        # Return
        #   0 if daemon has been started
        #   1 if daemon was already running
        #   2 if daemon could not be started
        start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
                || return 1
        start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
                $DAEMON_ARGS \
                || return 2
        # Add code here, if necessary, that waits for the process to be ready
        # to handle requests from services started subsequently which depend
        # on this one.  As a last resort, sleep for some time.

}
Run Code Online (Sandbox Code Playgroud)

并像这样改变它:

do_start()
{
        echo 0 | /usr/bin/tee -a /sys/class/leds/smc::kbd_backlight/brightness
}
Run Code Online (Sandbox Code Playgroud)

注释掉或删除 do_stop 和 do_reload 内的行

do_stop()
{
}
do_reload()
{
}
Run Code Online (Sandbox Code Playgroud)

保存文件。

授予文件执行权限:

sudo chmod 755 /etc/init.d/keyboard_backlight
Run Code Online (Sandbox Code Playgroud)

测试您的服务:

sudo /etc/init.d/keyboard_backlight start
Run Code Online (Sandbox Code Playgroud)

如果一切正常,加载您的服务以启动

sudo update-rc.d keyboard_backlight defaults 99
Run Code Online (Sandbox Code Playgroud)

此致。