Warum führt sudo apt install /path/*.deb zu einer verweigerten Berechtigung, während sudo dpkg -i /path/*.deb problemlos funktioniert?

Warum führt sudo apt install /path/*.deb zu einer verweigerten Berechtigung, während sudo dpkg -i /path/*.deb problemlos funktioniert?

Ich habe mich lange gefragt, warum sudo aptdie lokale Installation debaus einigen Ordnern mit folgendem Fehler fehlschlägt:

Failed to fetch a file... Permission denied 

Ich habe kürzlich sudo dpkg -idenselben Pfad ausprobiert und es hat funktioniert. Der Pfad befindet sich auf einem USB-Stick, der mit gemountet wurde udisks, also in einem /media/userOrdner, und ich vermute, dass es an diesem Ordner liegt ACL( drwxr-x---+). Aber warum sudowird einem Befehl mit die Berechtigung verweigert? Warum funktioniert dann ein anderer Befehl für dieselben Dateien einwandfrei?

Ich würde verwenden dpkg, aber im Gegensatz zu verarbeitet es die Vorabhängigkeiten nicht in der richtigen Reihenfolge apt.

Gibt es eine Möglichkeit, den Abrufteil für zu überspringen apt? Vor dem Abrufen wird am Anfang der Ausgabe aptangezeigt Note selecting abc instead of abc.20-2-a.deb. Gibt es eine Möglichkeit, aptbestimmte debDateien verarbeiten zu lassen, ohne zu versuchen, andere zu finden?

PS Ich kenne andere Möglichkeiten, lokale Debs zu installieren, z. B. das Hinzufügen eines lokalen Repositorys oder die Verwendung nicht vorinstallierter Debs apt-offlinevonSo installieren Sie Pakete ohne Internet, aber ich möchte die Dinge einfach halten (außerdem vermute ich, dass bei der Verwendung des lokalen Repositorys dasselbe Problem mit verweigerten Berechtigungen auftreten könnte).

Hinzugefügt 2:

sudo mount rd -t tmpfs /media/mint/rd -o x-mount.mkdir
sudo mount ram -t tmpfs /media/ram -o x-mount.mkdir

apt von rdschlägt fehl, apt von ramfunktioniert einwandfrei, also vermute ich, dass das Problem bei mintACL liegt. Ich habe versucht, es unten zu zeigen, ich verstehe nicht viel von ACL unter Linux. Eingesteckte USB-Laufwerke sind unter dem Benutzer mint(liveUSB-Benutzer) gemountet, also möchte ich das Problem angehen. Wenn ich sudo -idie Root-Eingabeaufforderung bekomme, könnte ich manuell mkdir, mvinnerhalb rd, auch sudo touch /media/mint/rd/mpv/1eine Datei erstellen, also warum sudo aptschlägt das fehl?

Hinzugefügt:

Berechtigungen inkl. ACL:

mint@mint:~$ ls -la /media/mint/rd
total 0
drwxrwxrwt  4 root root 80 Oct 24 03:23 .
drwxr-xrw-+ 4 root root 80 Oct 24 03:22 ..
drwxrwxrwx  2 mint mint 80 Oct 12 23:01 ffmpeg
drwxrwxrwx  2 mint mint 60 Oct 11 17:53 mpv

ACL:
mint@mint:~$ getfacl /media/mint/
getfacl: Removing leading '/' from absolute path names
# file: media/mint/
# owner: root
# group: root
user::rwx
user:mint:r-x
group::---
mask::r-x
other::rw-

apt / apt-get-Ausgabe:

mint@mint:~$ sudo apt install -d /media/mint/rd/ffmpeg/*.deb
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'ffmpeg' instead of '/media/mint/rd/ffmpeg/ffmpeg_7%3a4.2.4-1ubuntu0.1_amd64.deb'
Note, selecting 'libavresample4' instead of '/media/mint/rd/ffmpeg/libavresample4_7%3a4.2.4-1ubuntu0.1_amd64.deb'
Suggested packages:
  ffmpeg-doc
The following NEW packages will be installed:
  ffmpeg libavresample4
0 upgraded, 2 newly installed, 0 to remove and 71 not upgraded.
Need to get 1507 kB of archives.
After this operation, 2275 kB of additional disk space will be used.
Ign:1 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 libavresample4 amd64 7:4.2.4-1ubuntu0.1
Ign:2 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 ffmpeg amd64 7:4.2.4-1ubuntu0.1
Ign:1 http://security.ubuntu.com/ubuntu focal-updates/universe amd64 libavresample4 amd64 7:4.2.4-1ubuntu0.1
Ign:2 http://security.ubuntu.com/ubuntu focal-updates/universe amd64 ffmpeg amd64 7:4.2.4-1ubuntu0.1
Get:1 http://security.ubuntu.com/ubuntu focal-updates/universe amd64 libavresample4 amd64 7:4.2.4-1ubuntu0.1 [54.2 kB]
Err:1 http://security.ubuntu.com/ubuntu focal-updates/universe amd64 libavresample4 amd64 7:4.2.4-1ubuntu0.1
  File not found - /media/mint/rd/ffmpeg/libavresample4_70x0.07ffe00000006p-10224.2.4-1ubuntu0.1_amd64.deb (13: Permission denied)
Get:2 http://security.ubuntu.com/ubuntu focal-updates/universe amd64 ffmpeg amd64 7:4.2.4-1ubuntu0.1 [1453 kB]
Err:2 http://security.ubuntu.com/ubuntu focal-updates/universe amd64 ffmpeg amd64 7:4.2.4-1ubuntu0.1
  File not found - /media/mint/rd/ffmpeg/ffmpeg_70x0.07ffe00000002p-10224.2.4-1ubuntu0.1_amd64.deb (13: Permission denied)
E: Failed to fetch file:/media/mint/rd/ffmpeg/libavresample4_7%3a4.2.4-1ubuntu0.1_amd64.deb  File not found - /media/mint/rd/ffmpeg/libavresample4_70x0.07ffe00000006p-10224.2.4-1ubuntu0.1_amd64.deb (13: Permission denied)
E: Failed to fetch file:/media/mint/rd/ffmpeg/ffmpeg_7%3a4.2.4-1ubuntu0.1_amd64.deb  File not found - /media/mint/rd/ffmpeg/ffmpeg_70x0.07ffe00000002p-10224.2.4-1ubuntu0.1_amd64.deb (13: Permission denied)
E: Some files failed to download
mint@mint:~$ sudo apt-get install -d /media/mint/rd/ffmpeg/*.deb
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'ffmpeg' instead of '/media/mint/rd/ffmpeg/ffmpeg_7%3a4.2.4-1ubuntu0.1_amd64.deb'
Note, selecting 'libavresample4' instead of '/media/mint/rd/ffmpeg/libavresample4_7%3a4.2.4-1ubuntu0.1_amd64.deb'
Suggested packages:
  ffmpeg-doc
The following NEW packages will be installed:
  ffmpeg libavresample4
0 upgraded, 2 newly installed, 0 to remove and 71 not upgraded.
Need to get 1507 kB of archives.
After this operation, 2275 kB of additional disk space will be used.
Ign:1 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 libavresample4 amd64 7:4.2.4-1ubuntu0.1
Ign:2 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 ffmpeg amd64 7:4.2.4-1ubuntu0.1
Ign:1 http://security.ubuntu.com/ubuntu focal-updates/universe amd64 libavresample4 amd64 7:4.2.4-1ubuntu0.1
Ign:2 http://security.ubuntu.com/ubuntu focal-updates/universe amd64 ffmpeg amd64 7:4.2.4-1ubuntu0.1
Get:1 http://security.ubuntu.com/ubuntu focal-updates/universe amd64 libavresample4 amd64 7:4.2.4-1ubuntu0.1 [54.2 kB]
Err:1 http://security.ubuntu.com/ubuntu focal-updates/universe amd64 libavresample4 amd64 7:4.2.4-1ubuntu0.1
  File not found - /media/mint/rd/ffmpeg/libavresample4_70x0.07fff00000006p-10224.2.4-1ubuntu0.1_amd64.deb (13: Permission denied)
Get:2 http://security.ubuntu.com/ubuntu focal-updates/universe amd64 ffmpeg amd64 7:4.2.4-1ubuntu0.1 [1453 kB]
Err:2 http://security.ubuntu.com/ubuntu focal-updates/universe amd64 ffmpeg amd64 7:4.2.4-1ubuntu0.1
  File not found - /media/mint/rd/ffmpeg/ffmpeg_70x0.07fff00000002p-10224.2.4-1ubuntu0.1_amd64.deb (13: Permission denied)
E: Failed to fetch file:/media/mint/rd/ffmpeg/libavresample4_7%3a4.2.4-1ubuntu0.1_amd64.deb  File not found - /media/mint/rd/ffmpeg/libavresample4_70x0.07fff00000006p-10224.2.4-1ubuntu0.1_amd64.deb (13: Permission denied)
E: Failed to fetch file:/media/mint/rd/ffmpeg/ffmpeg_7%3a4.2.4-1ubuntu0.1_amd64.deb  File not found - /media/mint/rd/ffmpeg/ffmpeg_70x0.07fff00000002p-10224.2.4-1ubuntu0.1_amd64.deb (13: Permission denied)
E: Some files failed to download

Antwort1

Wie ich jetzt verstanden habe (dank der Kommentare), sudo aptverwendet _aptder Benutzer. Und das Fehlen einer Ausführungsberechtigung für den übergeordneten Ordner /media/mintverhinderte den Zugriff auf die Dateien. Die Problemumgehung besteht darin, eine Ausführungsberechtigung hinzuzufügen, z. B.

setfacl -m u:_apt:x /media/mint

verwandte Informationen