精简版
TL;DR - 当以提升的权限*运行 nemo/nautilus 时,权限选项卡上有大量的用户/组......他们都被卡在没有任何热键支持的不可搜索的下拉列表中。寻找调整/替代文件管理器/chmod gui-wrappers,这样我就可以从 GUI 更改所有权,而不会出现可访问性的噩梦。有什么建议么?
更多信息
我在 Virtualbox 中安装了几个版本的 Ubuntu 18.04。到目前为止,我主要使用Cinnamon desktop /nemo。
大多数情况下,我对这个桌面非常满意。但是基于 GUI 的所有权更改(从根)令人沮丧,因为大量条目被卡在一个下拉列表中,我无法搜索并且无法使用热键(例如,按下r以跳转到“根”等) . 启动终端是可靠的,但当我赶时间时输入名称很慢。
注意:当从非 root 帐户运行文件管理器时,这并不是真正的问题,因为所有者不可编辑并且只显示几个组。
我通常会遇到这个问题,我正在尝试修复当前用户不拥有的共享文件夹上的拙劣所有权权限。而且它通常永远不会像运行单个chown -R
命令那样快速和简单。
我在以下位置遇到了相同的可访问性设计:
- nemo v.3.6.5 (ubuntu 18.04/gnome+cinnnamon)
- nemo v4.2.3(在一个流行的子发行版中,我显然不再允许在这里提及)
- 鹦鹉螺 v3.26.4 (ubuntu 18.04/gnome)。
标准:
我有兴趣找到满足这些标准的基于 GUI 的解决方案:
- 适用于 Ubuntu 18.04 / 仿生的某种风格(我更喜欢 LTS 版本)
- 50-100 个用户/组列表的良好用户可访问性(例如,至少尝试处理重要的列表大小,例如通过热键支持、搜索过滤器、隐藏服务帐户的选项或其他方式)
- 在根目录下运行没有问题(例如通过
pkexec
或其他)。之所以提到这一点,是因为在完全拒绝在 root 下运行之前,我已经运行了一些应用程序。
在这一点上,我只是希望有人知道我不知道的选项......我并不特别关心这是不是特定于 nemo 的调整、系统配置、一些模糊的构建选项、不同的文件管理器/desktop 环境,一些包含 GUI 的外部应用程序chown
(只要我可以将其放入 anemo-action
并传递路径)等。主要是为了避免在启动终端和手动输入更长的名称时出现额外的问题我很急。
* 另外,当我说我“以 root 身份运行”/“以提升的权限运行”时,我的意思是出现在 nemo/nautilus UI 中的选项,而不是我直接使用 sudo / pkexec / 等启动。
查看对话框问题的步骤:
- 在桌面或非 root 帐户拥有的任何地方创建一个名为“test”的文件夹
- 在 Nemo 中,右键单击 > “以 root 身份打开” > 输入密码。或者对于 nautilus,运行
pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY nautilus
以管理员权限打开。 - 使用管理实例,右键单击“测试”文件夹 > 属性 > 权限选项卡
- 请注意,所有服务帐户和组都显示而无法过滤它们/没有复选框来隐藏它们。请注意,在下拉菜单中按“R”不会跳转到或选择“root”(或以“R”开头的第一个帐户)。在我的例子中,显示了 50 个用户(其中 3 个是非服务帐户)和 80 个组(其中 8 个与服务帐户无关)。对我来说,这是一个可访问性的噩梦,它使搜索内容几乎与需要启动终端并手动输入一样痛苦。
我试过的:
如果我发现任何可行的方法,我会跟进,但到目前为止,我已经尝试了以下方法:
- 许可证几乎正是我正在寻找的东西,只是它似乎需要输入名称而不是从列表/下拉列表/等中选择。不幸的是,我目前的 GTK 技能绝对为零(尽管如果没有人有更好的建议,我可能会在有更多时间时重新审视这个)。
- Ubuntu 18.04.2/gnome - 最初无法弄清楚如何以 root 身份运行,但
pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY nautilus
最终成功了。毫不奇怪,这似乎与 nemo 有相同的问题。 - Ubuntu 18.04.2/cinnamon -如上所述安装 cinnamon并运行 nemo 后,这并不能满足我的要求。
- Kubuntu 18.04 - 找不到以 root 身份启动 dolphin 的方法,因此无法测试。在 livedisc 上作为默认的非 root 帐户运行时,用户/组字段对我来说是灰色的。听起来这是 v17 的一个问题,我必须让 v18 甚至有机会以 root 身份运行。
- 更新 1:发现这个网站提到了 Eiciel。尝试了一下
sudo apt install -y eiciel
andtouch /tmp/foo.txt && eiciel /tmp/foo.txt
... 看起来很酷,但不幸的是,要么它不允许更改所有者,要么我只是不知道如何去做(似乎将用户/组添加到 ACL,而不是替换当前的所有者/组) . - 更新 2:在基于 ubuntu 18.04 的子发行版上测试了 thunar。当我运行它
sudo thunar /
并转到权限选项卡时,组下拉列表与 nemo/nautilus 有相同的问题,尽管以 root 身份运行,它甚至根本不允许我编辑用户。 - 更新 3:在 kubuntu 中使用 krusader 进行测试。以 root 身份运行,在权限对话框中,所有者/拥有组字段只是文本输入字段(例如,您必须输入它)。
截屏
在 (admin/root/pkexec) nemo 和 nautilus > properties > Permissions 选项卡中出现的包含大量条目且不支持热键的不可搜索下拉列表。
更新:没有听到任何其他回复,自从我更新它以添加多选支持以来,这一直工作得更好,所以我想,缺乏任何其他选项,我会接受这个作为我的答案
更新#2:我已经创建了一个脚本来完成所有繁重的工作并为您自动执行以下步骤。您可以在我的 github中找到有关该脚本的更多信息。
我仍然对其他答案非常感兴趣,但我至少找到了一个有点骇人听闻的解决方法(bash + yad + pkexec),我认为它总比没有好......也继续并将其作为功能请求提交 nemo项目,所以希望其中一个人能找到比我这里更好的东西。
假设
我的解决方法假设如下:
sudo apt install -y yad
设置
这将需要创建 3 个文件并编辑第四个文件(用于策略包定义)。
文件 #1:tmp-sh(将在 /usr/bin/chown-gui-wrapper 结束)
文件 #2:tmp-pkexec(将在 /usr/bin/pkexec-chown-gui-wrapper 结束)
文件 #3:tmp-action(将在 /usr/share/nemo/actions/change-owner.nemo_action 结束)
您可能已经有也可能没有 pkexec.policy 文件。如果你这样做,那么你只想添加
<action>...</action>
块。如果您没有该文件,则创建它(chmod 664
和chown root:root:
)并复制整个<policyconfig>...</policyconfig>
块。要编辑/创建的 Policykit 文件:
/usr/share/polkit-1/actions/org.freedesktop.policykit.pkexec.policy
内容(新文件):
如果从终端启动,则只需确认 nemo 上下文菜单选项有效且一切正常。
截图/预览
使用 yad 创建的弹出窗口
它会自动过滤到 root + 非服务用户/组:
注意:下拉菜单实际上是按 AZ 降序排列的;但我在图像中编辑了我的用户名......因为这是互联网:-)