IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [原]ubuntu登录自动运行脚本(解决root权限问题)

    mao0514发表于 2017-05-31 11:42:04
    love 0

    登录ubuntu后执行前面的命令,就能加载无线驱动,但是可不可以登录的时候自动运行呢?省得每次登录的时候都要敲命令,而且还要切换root用户才能执行相关命令,这样比较麻烦。

          可以写一个脚本,把那些命令全部写在脚本里面,然后在.profile文件中添加执行这个脚本的语句,这样就OK了,

          1.以root用户,新建个脚本文件:vi winless.sh

            内容如下:

                 #!bin/sh

                 cd hybird_wl

                 make clean

                 make

                 rmmod b43

                 rmmod ssb

                 rmmod wl

                  modprobelib80211

                 insmod wl.ko

            2.将winless.sh文件赋suid 以及执行权限

               chmodgu+s winless.sh

              chmod 777 winless.sh

            3.在.profile文件中添加一条语句即可.

               echo123456 | sudo -S ./winless.sh

              注:这里123456是密码,参数-S专门为执行sudo命令的时候要输入密码而准备的,表示标准输入。


    我只试过用第2种方法:
    1.先写了个简单的C程序,只有一行:printf("密码\n");
    \n必须要加。编译,获得可执行代码。
    2.指定SUDO_ASKPASS为上面的可执行代码路径。
    3.使用sudo命令,格式为:sudo -A XXXX

    近期在进行一个自动化脚本时,由于需要在非root 用户下执行,即:sudo -A command/XXX.sh

    此时在正常情况下当脚本执行到sudo时需要手动向控制台输入密码,这里利用环境变量SUDO_ASKPASS来实现免密码执行


    1、创建一个密码文件,如_PWD_TEMP_

    vim  _PWD_TEMP_

    写入内容:

     #! /bin/bash

    echo  yourpassword


    2、在脚本中执行sudo 命令之前引入环境变量SUDO_ASKPASS

    export SUDO_ASKPASS=./_PWD_TEMP_


    3、执行命令

    sudo -A  command/XXX.sh




沪ICP备19023445号-2号
友情链接