Linux添加开机启动程序
Debain
、Ubuntu
系列Linux
开机之后会执行/etc/rc.local
文件中的命令,所以,如果是想添加登陆用户所具有权限的操作,可以在文件中exit 0
之前添加开机自动执行的脚本命令。或者将执行脚本的权限修改为当前登录用户具有执行权限,命令为:chmod +x /home/xx/x.sh
再加入自动执行脚本:sudo vi /etc/rc.local
在exit 0
的上面新起一行,写入/home/xx/x.sh
。
以上情况均适用于脚本中的执行命令都不需要root
权限才能执行的操作,但是,如果x.sh
脚本中具有只有root
权限才能执行的操作时,以上的方式便不能生效。
给用户或者程序添加权限
某些操作只能root
用户才能操作,比如挂载共享盘,当执行到挂载命令时,需要root
用户密码方能执行。所以,需要修改/etc/sudoers
这个文件。
Ubuntu
默认不能直接用root
帐户登录,必须从第一个创建的用户(既安装时创建的那个用户)通过su
或sudo
来获得root
权限。
sudo
既为Super user do
的意思。sudo
在这个过程中只起一个调用root
用户的作用,本次操作完成后,其作用就消失,如果要使用调用root
权限操作的命令就必须再次使用sudo
。
通常我们并不以root
身份登录,但是当我们执行某些命令时需要用到root
权限,所以经常都都用sudo
,而使用sudo
时,又得输入密码,所以我就寻找sudo
不输入密码的方法。
假设我的用户名为idu
,使sudo
不用密码的方法如下。 运行命令:sudo vi /etc/sudoers
,如果vi
来编辑,则保存时记得用wq!
强制保存,否则会提示只读不能保存的。 就会编辑/etc/sudoers
这个文件。 默认情况我们会看到有%admin ALL=(ALL) ALL
一句话,就是允许admin
组在所有主机上执行所有命令,当然是需要passwd
的。
如果想把admin
组的用户都sudo
不用密码那么可以将这一行换为:
%admin ALL=(ALL) NOPASSWD: NOPASSWD ALL
如果仅仅想让idu
用户sudo
不需密码,则可添加:
idu ALL = NOPASSWD: ALL
如果让idu
用户sudo
不用密码即可执行某几个命令,可这样写:
idu ALL = (ALL) NOPASSWD: /usr/bin/abc.sh, /usr/sbin/adduser
参考链接:Linux 以 root 权限开机启动程序