一个应用程序(Autokey-qt)以 root 为所有者自行安装。它包含很多文件和目录。我需要将所有权更改为我自己,以便能够编辑宏和配置文件。我使用 Nautilus 搜索逐一检查它们的名称和位置,但这需要很长时间。
有没有办法让 chown 执行将磁盘上所有文件和目录的所有者从 root 更改为我的操作?
现在,当我找到它们时,我从文件属性对话框中复制路径,然后执行sudo chown -hvR jorge /<file path>/autokey
。
我希望相信有一个开关可以查找并更改每个名称上带有 autokey 的文件和目录(autokey 可能是名称的一部分或大写),甚至在文件内容中(例如 python 脚本)。
谢谢你的帮助。
乔治。
答案1
请不要更改任何应用程序安装的文件的权限!
根据设计,Ubuntu 中的所有应用程序都将由 root 用户安装。这是我们防止系统受到恶意软件和意外文件删除的主要安全功能之一。
应用程序二进制文件在文件系统中具有其定义的位置,如 DEBIAN 包中指定的那样。对于任何 Debian 相关发行版,我们都有一个文件系统层次标准以帮助维护系统。应用程序必须满足此标准才能包含在发行版中。
~/.config/<app_name>/
每当应用程序需要用户设置时,它们将被存储在您的 HOME 目录中的单独目录中(通常在或中的隐藏点文件中~/.appname/
)。
在极少数情况下,我们需要更改系统范围的应用程序设置,我们需要使用 root 权限来执行此操作,可以使用 来获得该权限sudo
。
以 root 身份递归运行该
chown
命令有很大的风险会破坏您的系统。如果可能的话,请避免这样做。
另请参阅相关问题:
答案2
我会正确地卸载并再次安装,可能还存在您尚未遇到的其他相关问题。
如果您想要将路径内所有文件的所有权更改为名为的用户/home/someuser/somedir/app/
,并且其名称中带有模式autokey
(不区分大小写。区分大小写将是-name
而不是) ,我会这样做:iname
myuser
find /home/someuser/somedir/app -iname *autokey* | xargs -I '{}' sudo chown -hvR myuser '{}'
使用rela
用户和/tmp/test
路径的示例:
rela@rela-x230:/tmp/test$ tree .
.
├── 1
│ └── 2
│ └── tetasAutokey.algo
└── 2
└── otronombreautOkey.otracosa
3 directories, 2 files
rela@rela-x230:/tmp/test$ find /tmp/test -iname *autokey* | xargs -I '{}' ls -l '{}'
-rw-r--r-- 1 root audio 0 Jan 17 21:59 /tmp/test/2/otronombreautOkey.otracosa
-rw-r--r-- 1 root audio 0 Jan 17 21:59 /tmp/test/1/2/tetasAutokey.algo
rela@rela-x230:/tmp/test$ find /tmp/test -iname *autokey* | xargs -I '{}' sudo chown -hvR rela '{}'
changed ownership of `/tmp/test/2/otronombreautOkey.otracosa' from root to rela
changed ownership of `/tmp/test/1/2/tetasAutokey.algo' from root to rela
rela@rela-x230:/tmp/test$ find /tmp/test -iname *autokey* | xargs -I '{}' ls -l '{}'
-rw-r--r-- 1 rela audio 0 Jan 17 21:59 /tmp/test/2/otronombreautOkey.otracosa
-rw-r--r-- 1 rela audio 0 Jan 17 21:59 /tmp/test/1/2/tetasAutokey.algo
希望这可以帮助。
祝你好運!