Poedit 权限被拒绝

Poedit 权限被拒绝

我在 Ubuntu 22.04 上安装了 poedit 3.3.1,我想访问var/www/html/目录中的 .po 文件。但是,每次我尝试时,都会得到Error opening directory '/var': Permission Denied

我更改了目录的所有权var,甚至chmod 777在其上运行,但错误仍然存​​在。每次我都必须将文件复制到桌面,编辑它们,然后重新复制它们。有人知道我如何以管理员身份运行 poedit 或修复此问题吗?

尝试运行时sudo poedit出现以下错误:

mkdir: cannot create directory '/run/user/0': Permission denied
Authorization required, but no authorization protocol specified
14:21:13: Error: Unable to initialize GTK+, is DISPLAY set properly?

似乎存在一些 UID 问题。当我手动创建目录时,错误的第一行消失了。

不使用 sudo运行poedit可以正常打开,没有任何错误或警告。

更新:已修复 sudo 问题,sudo poedit现在可以工作,但仍然存在权限问题。

答案1

一般情况下,不要运行图形程序sudo。如果您需要编辑您没有权限的内容,那么最好授予自己访问该文件的权限。

不幸的是,在这种情况下,Snap 系统的 AppArmor 策略限制应用程序只能访问主目录中的文件——文件权限或 /var 的所有权很可能不是问题——尽管你可以编辑 Snap 为 poedit 安装的 AppArmor 配置文件,我不确定是否有办法持久地执行此操作。(我可能会在某天更新该帖子,但它可能已经在 AskUbuntu 上讨论过了。)

另一种方法是通过该工具运行编辑器sudoedit- 这不会“sudo”编辑器,而是自动将文件复制到可访问的位置并返回:

SUDO_EDITOR=poedit sudoedit /var/html/whatever.po

或者,如果编辑器是基于 GTK 的,请指定一个admin://URL 以使用 GTK 的内置“管理员访问”功能:

poedit admin:///var/html/whatever.po

相关内容