您的位置:首页 > 其它

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

2017-05-31 11:42 288 查看
登录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/bashecho  yourpassword
2、在脚本中执行sudo 命令之前引入环境变量SUDO_ASKPASSexport SUDO_ASKPASS=./_PWD_TEMP_

3、执行命令sudo -A  command/XXX.sh
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: