• Benvenuti su RaspberryItaly!
Benvenuto ospite! Login Login con Facebook Registrati Login with Facebook


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
Tags
su usb pi esterna dopo webdav raspberry fs modifica zero unità 2w inaccessibile

[Risolto] Webdav su Raspberry Pi Zero 2W inaccessibile dopo modifica FS su unità USB esterna
#1
Ciao a tutti,

avevo messo su un webdav con Apache2 sul mio Raspberry PI Zero 2W, accessibile da browser e app dedicate.

La cartella condivisa era su una unità USB 2.0 da 750GB formattata FAT32 montata in automatico all'avvio, e tutto funzionava come atteso.

Avendo tra gli altri software che giravano in contemporanea anche MLDonkey, che dava problemi non permettendomi di utilizzare l'unità USB come destinazione del download, ho formattato l'unità USB suddetta passando ad ext4.

Sapevo che avrei dovuto smanettare, però con il webdav non sono riuscito a ricollegarmi.

Ho ricreato le cartelle sull'unità USB esattamente come erano prima da linea di comando del Pizero e ho seguito gli stessi passi di configurazione, ma il browser mi da:

Forbidden
You don't have permission to access this resource.


Apache/2.4.54 (Raspbian) Server at 192.168.1.102 Port 80




Malfunzionamenti della unità USB li escludo a priori, avendo anche Jdownloader Headless che gira in contemporanea, i cui file scaricati sono stati riposizionati esattamente nella cartella avente stesso nome e posizione di quella sul file system precedente, e vengono visti dalla browser app esattamente come prima.

Ritengo sia un problema di struttura di permission differenti tra i file system, di cui io sono a digiuno, e senza un preciso tutorial non riesco a risolvere.

Mi scuso in anticipo se ho scritto degli strafalcioni e vi ringrazio per l'aiuto che vorrete darmi.
Risposta
#2
Per dare i permessi dell'utente più ad una cartelle e le sue sottocartelle in Linux, devi utilizzare il comando chmod. Per esempio:
Codice:
chmod -R 755 /path/to/directory
. Questo darà i permessi 755 (lettura, scrittura ed esecuzione per l'utente proprietario, lettura ed esecuzione per gli altri) alla directory e a tutte le sottocartelle.

altrimenti piu brutale
Per diventare proprietario di una cartella e le sue sottocartelle in Linux, puoi utilizzare il comando chown. Per utilizzare questo comando, devi prima aprire il terminale e passare al percorso della cartella di cui vuoi essere proprietario. Una volta che sei nella cartella, puoi eseguire il comando chown con l'opzione -R (recursive) e poi fornire il nome dell'utente e del gruppo a cui verrà assegnata la proprietà. Ad esempio,
Codice:
chown -R username:groupname nome_cartella
Heart Libro  | Blog EnricoSartori.it | Idea YouTube
Se un utente ti è stato utile, aumenta la sua reputazione! premi il Pollicione! 
Risposta
#3
(22/01/2023, 22:00)Enrico Sartori Ha scritto: Per dare i permessi dell'utente più ad una cartelle e le sue sottocartelle in Linux, devi utilizzare il comando chmod. Per esempio:
Codice:
chmod -R 755 /path/to/directory
. Questo darà i permessi 755 (lettura, scrittura ed esecuzione per l'utente proprietario, lettura ed esecuzione per gli altri) alla directory e a tutte le sottocartelle.

altrimenti piu brutale
Per diventare proprietario di una cartella e le sue sottocartelle in Linux, puoi utilizzare il comando chown. Per utilizzare questo comando, devi prima aprire il terminale e passare al percorso della cartella di cui vuoi essere proprietario. Una volta che sei nella cartella, puoi eseguire il comando chown con l'opzione -R (recursive) e poi fornire il nome dell'utente e del gruppo a cui verrà assegnata la proprietà. Ad esempio,
Codice:
chown -R username:groupname nome_cartella

Grazie per avermi risposto.

Tu hai descritto molto chiaramente l'utilizzo dei comandi, ma il mio problema principale è che non so nemmeno io di cosa ho realmente bisogno; da ciò ne consegue che pasticciando con i permessi temo di concedere accessi superflui che magari non servono al mio scopo.
Infatti prima di chiedere aiuto su questo forum sono arrivato al punto che dopo aver utilizzato chmod e chown in svariati modi senza ottenere il risultato sperato, ho salvato i files ed eliminato tutta la struttura delle cartelle condivise che avevo per poi ricreare un'unica cartella vuota e tentare di condividere quella per focalizzare il problema.

Non vorrei sembrare eccessivamente puntiglioso ma credo che per approcciarsi correttamente occorra che io condivida alcune porzioni di configurazione del sistema, per avere una visone globale.

Di seguito il contenuto di  /etc/fstab

Codice:
proc            /proc          proc    defaults          0      0
PARTUUID=d8d23f33-01  /boot          vfat    defaults,flush    0      2
PARTUUID=d8d23f33-02  /              ext4    defaults,noatime  0      1
/dev/sda1            /media/usb2disk ext4    defaults,user    0      1
//192.168.1.8/Gianluk /home/MBL/Gianluk cifs _netdev,username=admin,password=xxxxxxxxx,file_mode=0777,dir_mode=0777,vers=1.0
//192.168.1.8/Ferrofil /home/MBL/Ferrofil cifs _netdev,username=admin,password=xxxxxxxxx,file_mode=0777,dir_mode=0777,vers=1.0
//192.168.1.8/Public /home/MBL/Public cifs _netdev,username=admin,password=xxxxxxxxx,file_mode=0777,dir_mode=0777,vers=1.0
# a swapfile is not a swap partition, no line here
#  use  dphys-swapfile swap[on|off]  for that

dove vediamo l'unità USB che dovrei condividere in /dev/sda1
Le righe successive riguardano cartelle da un disco di rete non da considerarsi ai fini della condivisione webdav.

Qui invece il contenuto del file di configurazione abilitato in Apache /etc/apache2/sites-enabled/000-default.conf

Codice:
<VirtualHost 192.168.1.102:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /media/usb2disk/webdav/
        <Directory /media/usb2disk/webdav/>
                Options Indexes MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        Alias /webdav /media/usb2disk/webdav

        <Location /webdav>
          DAV On
          AuthType Basic
          AuthName "webdav"
          AuthUserFile /etc/apache2/.htpasswd
          Require valid-user
      </Location>
</VirtualHost>

In ultimo, la proprietà delle cartelle come da comando ls 

Codice:
pi@raspberrypi:/ $ ls -l media
total 4
drwx------ 5 pi pi 4096 Jan 22 18:02 usb2disk
pi@raspberrypi:/ $ ls -l media/usb2disk
total 24
drwx------ 2 pi      pi      16384 Dec  8 19:07 lost+found
drwxrwxr-x 6 pi      pi        4096 Dec  8 19:09 TOSHIBA
drwxr-xr-x 2 www-data www-data  4096 Jan 22 18:02 webdav
pi@raspberrypi:/ $

Con questa situazione, utilizzando il file system FAT32 riuscivo a loggarmi a webdav da browser digitando l'indirizzo IP della mia rete locale come utente pi, utilizzando la password salvata in /etc/apache2/.htpasswd 


Con ext4 mi da Forbidden (vedi post di apertura discussione).

Che modifiche devo fare per riuscire a collegarmi?

Grazie ad Enrico e ad altri che vorranno aiutarmi
Risposta
#4
Ciò che ho provato prima di scrivere sul forum è stato cambiare il proprietario della cartella /media/usb2disk in www-data con il seguente comando

Codice:
sudo chown www-data:www-data /media/usb2disk

In questo modo il browser mi chiede username e password, però non mi fa accedere con le credenziali dell'utente pi registrate in

/etc/apache2/.htpasswd 


e nè come utente www-data o utente root

A questo punto ho ripristinato l'utente pi come proprietario della cartella /media/usb2disk.


Ora invece come da esempio di Enrico ho passato il seguente comando:

Codice:
sudo chmod -R 755 /media/usb2disk/webdav

ma il browser continua a rispondere Forbidden

Prego chiunque volesse aiutarmi di scrivermi quanto da inserire a linea di comando, poichè credo che senza una guida a prova di stupido dubito di poter fare progressi.

Grazie a tutti.
Risposta
#5
Ho risolto.

Alla fine era una stupidaggine che non c'entrava nulla con le permission e le proprietà di files e cartelle o le caratteristiche del file system.

Intanto andava assegnata la proprietà della cartella media/usb2disk all'utente www-data, ma questo era intuibile e infatti così facendo si riusciva almeno ad avere il prompt per inserire username e password.

Avevo semplicemente dimenticato che nella definizione degli utenti e delle password, per chi accede da windows va anteposto l'indirizzo IP della macchina che ospita il webdav, in questo modo:

Codice:
sudo htpasswd /etc/apache2/.htpasswd xxx.xxx.xxx.xxx//pi


cui segue la doppia richiesta della password.

Fatto questo ho potuto di nuovo accedere da browser utilizzando l'utente pi e la relativa password precedentemente configurata come sopra.

Mi scuso per avervi inquinato il forum con le mie farneticazioni.

A presto.
Risposta
#6
nessuna farneticazione, a volte le soluzioni sono "stupidaggini", come dici, ma capita di rimanere bloccati anche per queste. Grazie per aver condiviso la soluzione, in futuro potrà capitare ad altri e questo scritto sarà comunque prezioso.
Risposta
  


Vai al forum:


Navigazione: 3 Ospite(i)
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect