在某些时候,我的应用程序需要执行管理任务,例如在 /etc 中创建文件或使用 root 权限运行命令。
我知道可以做一个问答:
os.popen("pkexec foo bar")
Run Code Online (Sandbox Code Playgroud)
但我也知道这不是可预见的干净方式。对用户来说有些烦人,因为他总是需要重新输入密码,而不是进行类似会话的处理。
我非常乐观,因为我找到了用于身份验证的 python 示例。
这是一个立即生效的简单示例:
import dbus
bus = dbus.SystemBus()
proxy = bus.get_object('org.freedesktop.PolicyKit1', '/org/freedesktop/PolicyKit1/Authority')
authority = dbus.Interface(proxy, dbus_interface='org.freedesktop.PolicyKit1.Authority')
system_bus_name = bus.get_unique_name()
subject = ('system-bus-name', {'name' : system_bus_name})
action_id = 'org.freedesktop.policykit.exec'
details = {}
flags = 1 # AllowUserInteraction flag
cancellation_id = '' # No cancellation id
result = authority.CheckAuthorization(subject, action_id, details, flags, cancellation_id)
print result
Run Code Online (Sandbox Code Playgroud)
我一直很天真地认为在授权后我可以继续使用一些 os.popen() 命令在脚本中。现在我知道了 :(
我可以在上面的示例中看到元组结果,但是在进一步的文档中,我找不到此时可以继续执行的工作代码。
这个结果与我有什么关系?我怎样才能继续执行我需要的任务?是否有提供可用方法的示例的 python 参考?
我尝试使用 dir() 列出授权方法,但找不到任何线索如何继续。
我真的想避免使用我的后备,但这将是我的最后手段。请帮助我以正确的方式做这件事:)
感谢致敬
安德烈 …
什么程序在 GNOME 2 和 GNOME 3 中启动每个用户会话 dbus-daemon 进程(大概是通过 dbus-launch)?我想知道,因为我想在 dbus-daemon 检查 .service 文件的目录列表中添加一个目录。
(显然,如果它是一个 sh 程序,“sh”不是我正在寻找的答案;-)
我怎么能有效地为自己回答这个问题?桌面和会话启动有哪些文档?
我们正在使用运行 Xubuntu 的终端服务器。因为我们在保存会话时遇到了一些问题,所以我们想完全关闭会话的保存。
到目前为止,我们已经能够将默认设置为不保存会话,但是在注销屏幕中仍然可以保存会话。是否可以完全关闭会话保存(系统范围内)以便我们的用户不会“意外”使用它?
我awesome使用apt-get安装,安装完成后,我注销到lightdm.
但是没有选择awesome,只有 Unity 和subtle(因为我最近安装了subtle)。
我该怎么做,才能使awesome选择可用?
安装时没有错误awesome。
我刚刚安装Ubuntu 14.04 beta2了 25 次尝试退出、关闭或重新启动,Firefox退出时我的会话没有正确关闭23 次。结果是 Firefox 选项卡恢复页面,如果我事先花时间手动关闭 Firefox,则永远不会发生。
由于它工作了 2/25 次,感觉像是一个时间问题,Ubuntu 不允许 Firefox 的处理时间结束(Ubuntu 在大约 1-2 秒内注销)。我什至从未收到过“等待 Firefox?/仍然关闭?” 我在 12.04 下观察到的对话框。
所以如果我是对的,我该如何让它等待?如果不是问题是什么,我该如何解决不正确的退出?
我没有管理配置文件或会话配置文件的经验,也很少使用 bash(我理解它,但在编码方面很糟糕)。因此,如果您无法回答但有一篇关于配置文件/会话如何在 Unix/Linux/Debian/Ubuntu 中工作(如果相同)和/或如何更改登录/注销事件的好文章,我会对此感到高兴。
编辑:我做了额外的测试,进一步表明这是一个时间问题
wmctrl -c firefox; sleep 0.5; sudo shutdown now -r 工作正常 100%wmctrl -c firefox; sleep 0.2; sudo shutdown now -r 工作正常 50%wmctrl -c firefox; sudo shutdown now -r 工作正常 10%sudo shutdown now -r& wmctrl -c firefox 似乎从来没有工作...因此,作为一种解决方法,我如何写入wmctrl -c firefox; sleep 0.5类似于.profile …
我已将它们全部锁定在面板上,但它们在注销和重新登录时会继续移动。因此,例如,有时指示器小程序会话最靠右,但有时时钟/日历是,有时是通知面积是。这是一个小问题,但很烦人。
我想在登录屏幕上添加一个新会话(您选择“Ubuntu、Ubuntu Classic 等”来安装新的 GUI。我该怎么做?
我有两台计算机,并且都具有完全相同的行为。我选择了“加载上次使用的会话”选项,但每次,凯特都会启动一个新会话。什么可能导致这种情况?
以下是权限 ~/.kde/share/apps
mike@mike-laptop:~/.kde/share/apps$ ls -l
<..>
drwx------ 4 mike mike 4096 2011-08-19 10:58 kate
<..>
mike@mike-laptop:~/.kde/share/apps$ ls -l kate
-rw------- 1 mike mike 2927 2011-08-19 10:58 metainfos
drwx------ 5 mike mike 4096 2011-03-18 09:49 plugins
drwxr-xr-x 2 mike mike 4096 2011-03-18 09:49 sessions
Run Code Online (Sandbox Code Playgroud)
同样从命令行启动 kate 根本不会产生任何输出。
我有 Xubuntu 11.10。当我注销和登录(不重新启动计算机)时,我总是需要选择一个会话并提供进入该会话的密码。但是当我重新启动计算机时,我直接登录到我的最后一个会话(或者被要求在我保存的会话之间进行选择 - 作为一个已经登录的用户 - ,如果我检查登录时提示)而没有询问任何密码。
在所有其他正常情况下,我会被要求输入密码(在终端中安装、访问 Synaptic、使用 root 访问等)——除非打开我的电脑,这很奇怪。在设置管理器、会话和启动中,我看到(并检查了)有关登录、注销和保存会话的选项,但似乎没有启动选项,仅用于会话。有这样的选择吗?一定有,我的印象是在第一次安装操作系统后(大约 4 个月前),我在启动 PC 时被要求输入密码。我怎么能把它转回来?
-- 考虑到我得到的一些答案,我添加以下内容:我找不到设置登录窗口出现的位置(在 Ubuntu 中是系统>管理>登录窗口)。如果我设置在登录时收到提示,正如我所说的(在设置管理器、会话和启动中),那是另一回事:当被要求在用户保存的会话之间进行选择时,我实际上已经以用户身份登录。我似乎没有找到 System--> Login Window 的设置,以便检查在启动时提示选择会话(甚至是 Ubuntu 或 Lubuntu 会话,如果已安装)的选项。——
大家好,我遇到了一个奇怪的问题,我正在尝试在 Ubuntu 18.04.1 LTS 上启用自动保存会话,我尝试按照此处已有的一些答案进行操作,但是我无法恢复我的 gnome 会话。
我使用此链接来配置我的 Ubuntu:https : //medium.com/@pwaterz/how-to-dual-boot-windows-10-and-ubuntu-18-04-on-the-15-inch-dell- xps-9570-with-nvidia-1050ti-gpu-4b9a2901493d
我的内核版本是 4.18.14-041814-lowlatency,在 gnome:3.28 在这里发布这个问题之前,我曾尝试执行以下操作:
我不确定我做错了什么,但是,如果您能给我一些帮助,我将不胜感激。