Se hai problemi a condividere la tua directory ~Public in Ubuntu 22.04, Jack Wallen ha la soluzione per te.
Con il rilascio di Ubuntu 22.04, sono avvenute diverse modifiche nascoste per rendere questa ultima versione LTS una delle migliori nella storia della distribuzione Linux supportata da Canonical. Ma c'è un cambiamento che ha suscitato un po' di scalpore. Quel problema sono le autorizzazioni predefinite delle home directory dell'utente.
In precedenza, l'autorizzazione alla directory home dell'utente era impostata su 755, il che consentiva ad altri utenti di visualizzare la directory, nonché i file e le sottodirectory contenenti. Per evitare un tale problema di sicurezza, gli sviluppatori hanno impostato l'autorizzazione per le home directory su 750, il che significa che solo il proprietario della home directory può visualizzare i contenuti.
Se tendi a condividere la tua cartella ~/Public, questo causa un grosso problema con Samba, in quanto il proprietario della home directory è l'unico che può accedere o attraversare la cartella localmente o attraverso la tua LAN. Questa modifica è stata apportata esclusivamente per motivi di sicurezza e credo che sia stata la strada giusta da percorrere, poiché non vi è alcun motivo per cui altri utenti dovrebbero essere in grado di visualizzare il contenuto della directory home dell'altro.
Con Samba, anche se usi public = yes
, solo il proprietario di quella home directory può vedere la condivisione. Ciò significa anche se consenti specificamente ad altri di creare ed eliminare file in questa cartella tramite la finestra delle proprietà pubbliche di Nautilus (Figura A ), non funzionerà.
Figura A
cosa fai? Ho due possibili soluzioni per questo. Acquistiamoci.
Di cosa avrai bisogno
Le uniche cose che devi seguire sono un'istanza in esecuzione di Ubuntu Linux 22.04 e un utente con privilegi sudo. Con queste due cose a portata di mano, diamo il nostro Samba.
Copertura per sviluppatori da leggere
La soluzione più semplice ma meno sicura
Questa particolare correzione è il metodo più semplice per aggirare il problema. Tuttavia, e questo è un grosso problema, utilizzando questa opzione, stai eludendo la sicurezza aggiunta privando gli altri del diritto di visualizzare la tua home directory.
Se sei d'accordo, puoi aggirare l'aggiornamento riportando i permessi della tua home directory su 755 con il comando:
chmod o+rx /home/USER
Dove USER è il tuo nome utente.
Questo da solo dovrebbe risolvere il tuo problema, ma non è esattamente la soluzione più sicura.
La soluzione meno facile ma più sicura
Se questa non fosse un'opzione, potresti sempre usare la direttiva force user di Samba, che costringe l'utente guest a mascherarsi da te. Ciò mantiene la misura di sicurezza ma consente ad altri utenti di sfogliare i contenuti della tua directory ~/Public.
Per utilizzare questo metodo, apri il file di configurazione di Samba con:
sudo nano /etc/samba/smb.conf
Dovresti trovare in fondo a quel file la voce per la tua condivisione pubblica, che potrebbe assomigliare a questa:
[Public]
path = /home/jack/Public
public = yes
guest only = yes
browsable = yes
writable = no
read only = no
force create mode = 0666
force directory mode = 0777
In fondo a quella sezione, aggiungi la seguente riga:
force user = USER
Dove USER è il tuo nome utente. Salva e chiudi il file. Riavvia Samba con:
sudo systemctl restart smbd
A questo punto, qualsiasi utente sul tuo sistema Linux sarà in grado di visualizzare il contenuto della condivisione ~/Public utilizzando le proprie credenziali di accesso quando si connette a Samba.
La soluzione impegnativa ma più sicura
L'opzione migliore sarebbe condividere una directory al di fuori della tua casa perché evita l'intero problema delle autorizzazioni. Creiamo una nuova directory con il comando:
sudo mkdir /data
Modifica l'autorizzazione di quella directory con:
sudo chmod -R ugo+rw /data
Ora creiamo la condivisione. Apri la configurazione di Samba con:
sudo nano /etc/samba/smbd.conf
In fondo a quel file, incolla quanto segue:
[data]
path = /data
guest only = yes
browsable = yes
writable = no
read only = no
force create mode = 0666
force directory mode = 0777
Salva e chiudi il file. Riavvia Samba con:
sudo systemctl restart smbd
Ora dovresti vedere la nuova condivisione di dati, a cui qualsiasi utente con un account sul sistema dovrebbe essere in grado di accedere. Puoi anche aggiungere public =yes per dare accesso anonimo alla condivisione.
E questo è tutto ciò che serve per aiutare Samba a aggirare i nuovi permessi della home directory in Ubuntu Linux 22.04. Se non sei sicuro di quale soluzione utilizzare, sceglierei l'ultima opzione, poiché è più sicura. In ogni caso, sarai in grado di fornire a quegli utenti l'accesso al contenuto delle tue condivisioni Samba, indipendentemente dal fatto che si trovino nella tua home directory o meno.