ubuntu运行c语言权限不够,ubuntu登录自动运行脚本(解决root权限问题)

登录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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值