
In der PostZugriff auf Ressourcen im Windows NTFS, wir haben das Problem gelöst, es ist uns gelungen, Apache in Debian dazu zu bringen, auf die Ressource im NTFS-Dateisystem von Windows zuzugreifen, jetzt möchte ich Apache in Debian dazu bringen, auf die Ressource im VFAT-Dateisystem von Windows zuzugreifen.
Die Festplattenpartition sda2
wird vfat
formatiert.
sudo blkid |grep 995A
/dev/sdb2: LABEL="SHARED" UUID="5E9C-995A" TYPE="vfat" PARTLABEL="Basic data partition" PARTUUID="efdeb9ab-e920-40e6-9d24-df672b8806e9"
Ich schreibe eine Konfiguration, /etc/fstab
um es automatisch zu mounten.
UUID=5E9C-995A /media/debian/SHARED vfat auto ,sync,umask=000 ,rw 0 0
Jetzt /dev/sda2
kann es automatisch gemountet werden. Meine Apache-Einstellungen sind debian
:
cat /etc/apache2/sites-enabled/000-default.conf
<VirtualHost *:80>
ServerName localhost
DocumentRoot /media/debian/SHARED/project
Alias /project "/media/debian/SHARED/project/build/html"
<Directory /media/debian/SHARED/project>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
Berechtigung festlegen für /media/debian/SHARED/project
.
sudo chmod -R 644 /media/debian/SHARED/project
Starten Sie meinen Apache neu:
sudo systemctl restart apache2
Zur Eingabe 127.0.0.
und 127.0.0.1/project
in Firefox.
Forbidden
You don't have permission to access this resource.
Apache/2.4.25 (Debian) Server at 127.0.0.1 Port 80
So überprüfen Sie das Protokoll:
sudo cat /var/log/apache2/error.log
[Wed Aug 12 17:11:58.727479 2020] [core:error] [pid 3149] (13)Permission denied: [client 127.0.0.1:56434] AH00035: access to / denied (filesystem path '/media/debian/SHARED') >because search permissions are missing on a component of the path
[Wed Aug 12 16:53:37.958950 2020] [core:error] [pid 3061] (13)Permission denied: [client 127.0.0.1:56158] AH00035: access to /project/ denied (filesystem path '/media/debian/SHARED') because search permissions are missing on a component of the path
Zeigen Sie den Besitz an/media/debian/SHARED/project
ls -al /media/debian/SHARED/project
total 304
drwxr-xr-x 14 root root 16384 Aug 12 14:19 .
drwxr-xr-x 4 root root 16384 Jan 1 1970 ..
drwxr-xr-x 4 root root 16384 Aug 12 14:18 build
/media/debian/SHARED
befindet sich auf vfat
einer Festplattenpartition, der Besitzer kann nicht geändert werden chown
.
sudo chown -R www-data.www-data /media/debian/SHARED/project
chown: changing ownership of '/media/debian/SHARED/project': Operation not permitted
Wie man Apache dazu bringt, auf die Ressource in der VFAT-Partition zuzugreifen, eine Schritt-für-Schritt-Lösung ist willkommen.
Antwort1
Hier ist eine Antwort auf dietatsächlichProblem, das Sie bereits in Ihrer vorherigen Frage hatten und das angesprochen und erklärt wurde. Sie werden fälschlicherweise zu der Annahme verleitet, das Problem liege ein oder zwei Verzeichnisse hinter dem Verzeichnis, das den Fehler verursacht. Das Problem liegt genau bei /media/debian/
.
Vermeiden Sie /media/someuser
Verzeichnisse wie /media/debian
. Sie werden vom System besonders behandelt, indem Verzeichnisse bei Bedarf dynamisch für jeden Benutzer erstellt werden. Diese Verzeichnisse sind für den Benutzer privat, der „den Sitz innehat“, und der Apache-Prozess kann standardmäßig nicht darauf zugreifen. Es ist sogar möglich, dass ein Neustart oder ein einfaches Abmelden/Anmelden ihre Zugriffsrechte zurücksetzt und Apache httpd nicht mehr darauf zugreifen kann, selbst wenn dies vorher möglich war.
Erstellen Sie das Mountpoint-Verzeichnis einfach woanders. Es könnte sich in einem neuen Verzeichnis namens /srv/
oder befinden /data/
(oder vielleicht sogar in, /var/www/
aber davon würde ich abraten).
Also zum Beispiel als Root:
mkdir -p /srv/media/SHARED
Ändern Sie dann alle Ihre Apache-Einstellungen, sodass auf statt auf /etc/fstab
verweist ./srv/media/SHARED
/media/debian/SHARED
Da es keine Konflikte mit den Tools gibt, die die Benutzerrechte dynamisch handhaben, wie es in der Fall ist /media/debian
, gibt es für den Apache-HTTPD-Benutzer www-data keine Berechtigungsprobleme beim Zugriff auf /srv/media/SHARED
.
Wenn dies das zuvor beabsichtigte Ziel war, wird dieses Verzeichnis möglicherweise nicht direkt in der GUI des Benutzers angezeigt, da es sich nicht im für diesen Benutzer reservierten Verzeichnis befindet. Fügen Sie einfach einen symbolischen Link oder eine andere Desktop-Methode hinzu, die auf oder debian
verweist ./srv/media
/srv/media/SHARED
Es kann immer noch Probleme geben, da VFAT ein sehr eingeschränktes Dateisystem ist: Dies Operation not permitted
ist ein normaler und erwarteter Fehler bei VFAT fürchownUndchmodund kann nicht anders behoben werden, als indem man VFAT nicht verwendet. httpd (vielleicht abhängig von einigen Optionen) könnte eine spezielle Interpretation für Dateien mit Ausführungsrechten haben. Wenn ein solcher Fall auftritt, wäre dies ein separates Problem, das einfach gelöst werden könnte, indem man bei POSIX-Dateisystemen bleibt oder zumindest bei NTFS, das mit verwendet wirdntfs-3gmit Optimierungen (.NTFS-3G/UserMapping
), um Zugriffsrechte zu verwalten. Vermeiden Sie VFAT oder ExFAT.