微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

像UAC一样自动调用gksudo

这是关于我正在通过玩游戏“键入一个命令,并记住预先sudo或手指会被打了耳光”的压力。

我想知道是否有可能以某种方式configuration我的Linux系统或shell,当我忘记键入例如“sudo apt-get install emacs”,而不是只是告诉我我做错了,gksudo会启动,让我承认我的证书,并继续前进。 就像UAC在Windows上一样。

谷歌search还没有帮助我呢..

那么这可能吗? 我错过了什么? 还是我要求一个方形的圈子?

有关librt.so.1的timer_helper_thread()的一些信息

更改目录在shell脚本中不起作用

ping的实现如何计算往返时间?

docker集装箱的尺寸比实际尺寸大得多

保持SSH在Windows 10 Bash上运行

编辑2010年7月25日:感谢大家为你的Interrest。 不幸的是,Daenyth和bmargulies的答案和解释是我所期望/担心的,因为在提交这个问题之前我不可能谷歌解决scheme。 我希望有一天能有一个好人会为此提供一个有效的解决scheme。

BR,Christian

如何通过configuration生成libtool自定义脚本?

自动3G调制解调器发现

X11 GUI性能

如何在Linux中获得一个进程的内存

为什么GNU脚本使用两个叉而不是select和一个fork?

鉴于目前的Linux软件栈,没有办法做到这一点。 此外, MS在此行为方面拥有专利 – present a user interface identifying an account having a right to permit a task in response to the task being prohibited based on a user's current account not having that right.

Linux不允许这样做。 与Windows不同的是,任何程序都可以启动一个对话框,并且UAC在内核中,Linux程序不一定具有GUI功能,sudo在这个意义上并不在内核中。 一个程序不能打电话来提升权限(除非它是以特权开始并有意设置的)。 sudo是一个单独的可执行文件,具有setuid权限,用于检查权限。 如果它喜欢它所看到的,它会让shell执行命令行。 这不能被翻转。

正如其他文章中所建议的那样,您可能会想出一些“shell游戏”来为您安排一些列举的命令来运行sudo,但这就是您将要得到的。

你可以用一个preexec钩子函数来做你想做的事情,类似于command-not-found包。

我不认为这是真正的一般方式(自动决定哪个应用程序需要管理权限)。 但是,你可以为每个应用程序提供这样的别名:

alias alias apt-get='gksudo apt-get'

如果你现在进入apt-get install firefox那么gnome要求输入管理员密码。 您可以将命令存储在~./bashrc

你可以使用如下的shell脚本:

#!/bin/bash $@ if [ $? -ne 0 ]; then sudo $@ # or "gksudo $@" fi

如果命令返回一个非零的返回码(即失败),这将运行带有sudo前缀的参数中给出的命令。 例如,在“SCRIPT_NAME apt-get install emacs”中使用它。 你可以把它保存在$ PATH的某个地方,并将其设置为这样的别名(如果你将它保存为do_sudo):

alias apt-get='do_sudo apt-get'

编辑:这不适用于像synaptic这样的程序为非root用户工作,但会给他们更少的权限。 但是,如果应用程序在没有root权限的情况下调用失败(就像apt-get一样),这可以正常工作。

在你想总是以root身份运行一个命令但可能已经是 root的情况下,你可以通过在它周围包装一个bash脚本来解决这个问题:

#!/bin/bash if [ $EUID = 0 ]; then "$@" else gksudo "$@" fi

如果你把这个东西alwaysroot.bash并把它放在PATH的正确位置,那么你可以调用你的其他程序:

alwaysroot.bash otherprogram -arguments...

它甚至用正确的空格处理参数。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐