以root身份运行脚本,但没有root访问权限

时间:2012-04-22 20:38:56

标签: sudo su root

我正在尝试以root身份运行脚本,添加目录并更改权限,但我不知道如何让它以root身份运行而不提示用户输入密码。用户不一定是sudoer,因此执行任何类型的sudo -S命令或更改sudoer首选项以不需要密码将不起作用。有什么想法吗?

2 个答案:

答案 0 :(得分:4)

Sudo是你的朋友。配置/ etc / sudoers以允许任何人在特定位置运行脚本,例如:

ALL   ALL = NOPASSWD: /path/to/my/root/script

答案 1 :(得分:1)

#!/bin/bash

#Labows脚本的示例,作为超级用户从图形用户界面(Ubuntu GUI桌面)执行指令

#这两个指令仅适用于此示例,它更改为给定文件的根所有权

#如果尚未完成,请将此脚本更改为可执行文件

echo $0 | chmod ugo+x

#Create此特定示例的文件

echo "some text" > ./my_file

#Executing root指令,对于在ubuntu登录时启动的自定义启动脚本非常有用,例如

#Pop up box for ask password

PASSWD= zenity --entry --text“输入root密码”--hide-text

#Expercute a action as superuser

<强> sudo -S su root -c "chown root ./my_file" <<< "$PASSWD"

#仅针对此特定示例执行操作

#显示文件所有权以检查文件属于root

printf $'\n'; ls -al ./my_file; printf $'\n'

#Restore当前用户所有权(如有必要)

sudo -S su root -c "chown `whoami` ./my_file" <<< "$PASSWD"

#Display文件所有权再次检查它是否属于当前用户

printf $'\n'; ls -al ./my_file; printf $'\n'

#Clear cache,如果此终端会话未关闭,则再次提示输入密码

sudo -k