如何从 Ubuntu 的 cmd 以 root 权限运行 .sh 脚本?有些脚本需要输入密码。我想避免这种情况。
答案1
如果担心安全问题,正如前面提到的,我就不会这样做。
更好的方法是使用 visudo 编辑 sudoers 文件,并编辑脚本使用的所有需要 root 权限的命令。因此,整个脚本不需要 root 权限,但也许关机需要(人为示例),因此:
fooUser ALL=(全部) NOPASSWD:/sbin/reboot,/sbin/shutdown
这意味着foo用户将能够运行重启和关机命令全部终端,当它们充当任何(全部)用户。
然后,在脚本中:
sudo /sbin/shutdown
答案2
您的意思是脚本内的命令要求输入密码,或者您只想在启动时使用密码运行一次,或者您有一个自动运行并暂停输入密码的脚本?
我通常从命令提示符使用 sudo 启动,它使用 root 权限,但否则您可能必须弄乱 /etc 中的 sudoer 文件以将“nopasswd”应用于您正在使用的命令或脚本。
答案3
使用 visudo 命令编辑 sudoers 文件,如下所示:
%cdrom ALL = NOPASSWD: /usr/bin/k3b
对于 shell 脚本来说这不是一个好的做法,除非你正在运行像 tripwire 这样的可以检测脚本更改的应用程序。
答案4
您可以在使用时使用NOPASSWD
而不/etc/sudoers
提示输入某些/所有命令/用户/主机的密码sudo
。
看手册页。