每次我想打开一个需要root权限的GUI程序时,我都必须输入密码。例如,我打开突触并输入密码,然后关闭它,一秒钟后决定重新打开它,它再次要求输入密码。Ubuntu 9.04 不是那样的,它在会话之间有大约 1 分钟的超时。我想在较新版本的 Linux 上再次这样做。
我知道如何sudo在 Linux中使会话持续更长时间。我所要做的就是输入:
sudo visudo
Run Code Online (Sandbox Code Playgroud)
然后改变:
Defaults env_reset
Run Code Online (Sandbox Code Playgroud)
到(3 分钟):
Defaults env_reset,timestamp_timeout=3
Run Code Online (Sandbox Code Playgroud)
是否有类似的方法来更改gksu会话的超时时间?
在 CentOS 5 的旧时代,我有一个以另一个用户身份运行的应用程序。我创建了一个 .desktop 文件,它运行如下命令:
gksu -u anotheruser someapplication
Run Code Online (Sandbox Code Playgroud)
当用户单击该图标时,弹出窗口要求输入“另一个用户”的密码,当密码正确时,“某个应用程序”启动。
现在,在 CentOS 7 的现代,我找不到这种行为的替代品。我尝试过beesu:
beesu -l -P someapplication anotheruser
Run Code Online (Sandbox Code Playgroud)
但它要求我输入 root 密码而不是“另一个用户”密码。
我也尝试过 pkexec:
pkexec --user anotheruser someapplication
Run Code Online (Sandbox Code Playgroud)
结果相同。
这两种方法在寻找正确的显示变量时也存在问题:
Failed to parse arguments: Cannot open display:
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激。
谢谢。
显然gksudo不服从/etc/sudoers,也不做kdesu。
因此,反过来问......
是否有任何su-to-root, gksudo,kdesudo等类似工具,支持以 root 或其他用户身份启动 gui 应用程序,并可以选择跳过输入密码?
所以,我有一个脚本用于-S mount nfs -o proto=tcp,port=2049 … etc.从另一台 Linux 计算机挂载一个位置。什么-S意思?无论有没有它,它似乎都可以正常工作(如果我在gksu -- -S mount … etc.没有终端模拟器的情况下启动它,它就不起作用)。我很好奇我是否真的-S出于某种原因需要,或者我是否可以放弃它来gksu --工作,而不会产生任何后果。
这是我写的脚本,供参考,更改了 IP 地址和路径以保护偏执狂:
#!/bin/bash
if mountpoint -q /home/myLaptop/myDesktop
then
notify-send -t 3000 "Warning" "It is already mounted."
else
gksu -- -S mount -t nfs -o proto=tcp,port=2049 192.168.0.x:/home/myLaptop /home/myLaptop/myDesktop
if mountpoint -q /home/myLaptop/myDesktop
then
notify-send -t 3000 "Alert" "Mounted."
else
notify-send -t 3000 "Alert" "Mount failed."
fi
fi
Run Code Online (Sandbox Code Playgroud)