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