首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sudo可以从gnome-keyring或类似的密码中读取密码吗?

sudo可以从gnome-keyring或类似的密码中读取密码吗?
EN

Unix & Linux用户
提问于 2013-01-09 13:59:02
回答 2查看 4.2K关注 0票数 3

目前,我在一堆脚本中使用了很多sudo,因为有些脚本不允许交互输入(例如Makefiles),这就有点麻烦了。

与其完全禁用sudo密码,我还在想,如果gnome-keyring或类似的密钥环软件可以用来回忆密码的话,那就太好了。这是个好主意吗有可能吗?有更好的解决办法吗?

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2013-01-09 16:48:12

sudo提供了一个超时选项。

/etc/sudoers:

代码语言:javascript
复制
Defaults:username timestamp_timeout=time_in_minutes

如果希望保留根权限,只需将脚本作为root启动即可。我同意,这不是最理想的,但这实际上是你已经在做的事情。

相反,我宁愿把所有无需根特权就能做的事情组合在一起,把请求根特权的东西放在一起,然后在两个不同的时间启动它们.这是通常所做的工作:

代码语言:javascript
复制
./configure
make
sudo make install

顺便说一句,如果你在Xorg的盒子上,你可以用gksudo代替sudo。但是,在剧本中埋葬"sudo"s并不是一个好做法。

票数 2
EN

Unix & Linux用户

发布于 2013-05-22 13:55:02

您所要求的声音是可行的,结合-A选项的sudo和程序gnome-keyring-query

基本上,如果您使用选项-A,而不是从stdin读取密码,sudo将从可以使用SUDO_ASKPASS环境变量指定的外部程序读取密码。

这个外部程序可以是gnome-keyring-query,一个从gnome-keyring存储/获取密码的命令行工具。下面是gnome-keyring-query的帮助:

代码语言:javascript
复制
Usage:
    gnome-keyring-query <mode> <name>
Parameters:
    mode     - either 'get' or 'set' (without quotes)
    name     - a name to identify the key
Notes:
    If mode is 'get', then the password is dumped to stdout.
    If mode is 'set', then the password is read from stdin.

这里是您如何继续(我刚刚尝试,它的工作)。

  1. 安装gnome-keyring-query (如果发行版->上游url没有打包它,就必须编译它)
  2. 将sudo密码保存在gnome-keyring中。
  3. 您应该能够从密钥环中检索密码,如下所示:gnome-keyring-query get sudo
  4. 将此命令保存为脚本(例如在/usr/bin/sudo_askpass中),并确保它在chmod中是可执行的
  5. export SUDO_ASKPASS=/usr/bin/sudo_askpass
  6. 使用sudo -A而不是sudo。

话虽如此,但请注意,如果您将密码保存在密钥环中并保持此密钥环打开,任何人都可以非常容易地读取您的sudo密码,或者使用这个gnome- keyring查询工具,或者仅仅通过启动海马。所以要非常小心。

票数 7
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/60748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档