如何向Nautilus添加脚本以以管理员身份运行所选文件(而不以管理员身份打开)?并且,如果可能的话,我想以管理员身份运行此文件而不输入密码。
如何向Nautilus添加脚本以以管理员身份运行所选文件(而不以管理员身份打开)?并且,如果可能的话,我想以管理员身份运行此文件而不输入密码。
Answers:
您需要在终端类型上执行以下操作,sudo visudo
并在文件末尾添加这样的一行,以指定要运行的命令,而无需输入sudo密码:
<yourusername> hostname=NOPASSWD: <command1>, <command2>
现在,只要使用键入该命令,您就可以运行不带密码的指定命令sudo
。
即:让您shutdown -r now
无需每次都输入sudo密码即可运行,并且用户名是“ joedoe”
键入sudo visudo
一个终端上
joedoe hostname=NOPASSWD: shutdown -r now
在文件末尾添加为新行
在脚本上,您sudo shutdown -r now
无需键入sudo密码即可使用。
要创建脚本,请使用您喜欢的编辑器来创建<nameofyourscript>.sh
内容:
#! /bin/bash
sudo <commandsyouwanttorun1>
<commandsyouwanttorun2>
sudo<commandsyouwanttorun3>
使用sudo调用需要它的命令,只要您在中的NOPASSWD: <commmand1>, <command2>, etc
行上添加了密码,它就不会要求输入密码visudo
。
之后,您需要使用来使其可执行sudo chmod 755 <nameofyourscript>.sh
。
现在,您可以sh <nameofyourscript>.sh
在终端上运行脚本,方法是双击该脚本并选择run
对话框,或将其放入您的脚本中~/.gnome2/nautilus-scripts/
,然后scripts
右键单击nautilus即可在菜单上使用该脚本:
要创建可使用管理员权限打开文件的脚本,请右键单击文件并进行设置,这样就不会要求输入密码,请使用以下命令创建脚本:
#! /bin/bash
for file in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS; do
gksudo "gnome-open $file" &
done
将其保存在您的上~/.gnome2/nautilus-scripts/
,并sudo chmod 755 ~/.gnome2/nautilus-scripts/<nameofyourscript>.sh
使用sudo visudo
添加该行使其成为可执行文件,<yourusername> ALL=NOPASSWD: /usr/bin/gnome-open
然后保存文件。
您应该能够右键单击一个文件,移至scripts文件夹,然后选择刚刚创建的脚本以使用根权限打开该文件。gnome-open
将尽可能地处理文件类型。
Nautilus脚本通常要放在其中$HOME/.gnome2/nautilus-scripts/
并且需要可执行。话虽如此,跟随脚本应该做什么,你想要什么:
#!/bin/bash
IFS='
'
for file in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS; do
gksudo -k "sh -c 'chmod +x $file; $file'"
done
您可以通过以下方式从nautilus中访问该脚本:右键单击文件,将鼠标悬停在脚本菜单上,然后单击中的脚本文件名$HOME/.gonme2/nautilus-scritps/
。不过,您仍然必须输入密码。
没有安全,你可以用任意文件做到这一点的方式,而无需输入密码。对于特殊命令,此过程在brunopereira81的帖子中进行了描述,并使用sudo,但根据命令的不同,它会导致系统漏洞。如果您不关心(我强烈建议您这样做),则可以将ALL
命令设置为use NOPASSWD
并用gksudo
just 代替sudo
。
您可以使用此Nautilus扩展。Nautilus-gksu 。
sudo apt-get install nautilus-gksu
安装它会在您的nautilus右键菜单中添加一个“以管理员身份打开”条目。
当您需要以root权限打开任何文件时,只需右键单击该文件,然后选择“以管理员身份打开”即可。
有关更酷的扩展,请访问:http : //www.techdrivein.com/2010/09/6-useful-nautilus-extensions-and.html
"gksudo "gnome-open $file" &"
调到了"gksudo "gnome-terminal -x $file" &"