权限被拒绝:'/etc/apt/sources.list.d/google-earth.list'

权限被拒绝:'/etc/apt/sources.list.d/google-earth.list'

我正在尝试添加ppa但出​​现错误Permission denied: '/etc/apt/sources.list.d/google-earth.list'::

~$ sudo add-apt-repository ppa:otto-kesselgulasch/gimp-edge

[...]

Press [ENTER] to continue or ctrl-c to cancel adding it

Traceback (most recent call last):
  File "/usr/bin/add-apt-repository", line 168, in <module>
    if not sp.add_source_from_shortcut(shortcut, options.enable_source):
  File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 768, in add_source_from_shortcut
    self.set_modified_sourceslist()
  File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 492, in set_modified_sourceslist
    self.save_sourceslist()
  File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 658, in save_sourceslist
    self.sourceslist.save()
  File "/usr/lib/python3/dist-packages/aptsources/sourceslist.py", line 413, in save
    files[source.file] = open(source.file, "w")
PermissionError: [Errno 13] Permission denied: '/etc/apt/sources.list.d/google-earth.list'

当尝试以 root 身份运行而不是使用 sudo 时也会发生同样的情况:

~$ sudo su -
~# add-apt-repository ppa:otto-kesselgulasch/gimp-edge

ppa 的源文件已创建,但是是空的:

~$ ll /etc/apt/sources.list.d/otto-kesselgulasch-ubuntu-gimp-edge-xenial.list*
-rw-r--r-- 1 root root 0 Apr  3 10:26 /etc/apt/sources.list.d/otto-kesselgulasch-ubuntu-gimp-edge-xenial.list
-rw-r--r-- 1 root root 0 Mai  3 15:03 /etc/apt/sources.list.d/otto-kesselgulasch-ubuntu-gimp-edge-xenial.list.save

该所有者google-earth.list是具有访问权限的 root u:rw

~$ ll /etc/apt/sources.list.d/google-earth.list
-rw-r--r-- 1 root root 188 Apr  3 10:27 /etc/apt/sources.list.d/google-earth.list

~$ getfacl /etc/apt/sources.list.d/google-earth.list
getfacl: Removing leading '/' from absolute path names
# file: etc/apt/sources.list.d/google-earth.list
# owner: root
# group: root
user::rw-
group::r--
other::r--

还有足够的可用空间:

~$ df -h /etc/apt/sources.list.d/
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       902G  252G  604G  30% /

apt update/apt upgrade运行良好。

这里发生了什么 ?
(PS:我不需要解决方法,我知道我可以手动添加 deb。)

答案1

感谢 Zanna 的提示,我发现了这个问题:

lsattr输出显示google-earth.list设置为不可变。

~$ lsattr /etc/apt/sources.list.d/google-earth.list
----i--------e-- /etc/apt/sources.list.d/google-earth.list

设置此属性后,甚至无法root写入文件。
为了解决这个问题,我只需chattr -i删除文件的不可变属性即可:

~$ sudo chattr -i /etc/apt/sources.list.d/google-earth.list

我自己将该文件设为不可变,因为每次 Google Earth 更新后,它[arch=amd64]都会从源文件中删除(都怪 Google!)。我最初在webupd8

相关内容