Risoluzione problema dei permessi in GNU/Linux

Bart Simpson

Può capitare che durante l’installazione o l’aggiornamento di una distribuzione GNU/Linux si abbia un problema con i permessi.
Quello che verrà visualizzato è un errore di questo tipo

attenzione: i permessi delle directory differiscono su var/log/gdm
filesystem: 770 pacchetto: 755

la risoluzione a queato problema è molto semplice, basta aprire un teminale ed autentificarsi come amministratore

Ubuntu e derivate Linux Mint, ElementaryOSFedora, CentOs, OpenSuse

sudo -s

ArchLinux, Debian, Slackware

su

una volta inserita la password d’amministratore di sistema lanciate questo comando

chmod -R 755 /var/log/gdm

l’opzione -R attribuisce ricorsivamente i permessi 755 a tutti files e le sottocartelle.
Nel caso in cui, per esempio, il file sia un binario e non una cartella bisognerà lanciare il comando senza tale opzione

chmod 755 /usr/bin/gdm

ArchLinux aggionamenti pericolosi

Prima di affettuare l’ultimo aggionamento contente il pacchetto filesystem 2013.05-2, vi consiglio di passare da Grub a Grub2 oppure a Syslinux, questo perchè i files di Grub 0.97 sono sia nella cartella /sbin che nella cartella /bin ed andranno a bloccare l’aggiornamento del pacchetto filesystem 2013.05-2.
Inoltre bisognerà passsare a Systemd per poter elimninare il pacchetto consolekit che è stato sostituito da loginid un componente di Systemd.

errore: impossibile eseguire l’operazione richiesta (file in conflitto)
filesystem: /bin è già presente nel filesystem
filesystem: /sbin è già presente nel filesystem
filesystem: /usr/sbin è già presente nel filesystem

La prima cosa da fare è controllare i pacchetti non ufficiali installati sul nostro computer e tutti i pacchetti che installano i files nella cartelle /bin, /sbin e /usr/sbin, aprite quindi un terminale a date il comando

pacman -Qqo /bin /sbin /usr/sbin | pacman -Qm -

se il risultato sarà vuoto potete proseguire le operazioni di aggiornamento, se invece vi verranno segnalati dei pacchetti li dovrete rimuovere, stando attenti a non rimuovere i pacchetti che servono per il funzionamento del sistema, conviene che vi documentate prima di rimuoverli.

Adesso bisognerà controllare se sono stati installati dei pacchetti dai repository non ufficiali con il comando

paclist <repo> | awk ' { print $1 } ' | pacman -Ql - | grep ' /s\?bin/\| /usr/sbin/'

La stringa <repo> và sostituita con il nome del repository che si vuole controllare.
Anche in questo caso se il risultato sarà vuoto potete proseguire in caso contrario conviene che vi documentate su ogni singolo pacchetto.
Da amministratore eseguite il comando

find /bin /sbin /usr/sbin -exec pacman -Qo -- {} + >/dev/null

con questo ultimo comando verranno elencati tutti i files ed i pacchetti senza proprietario.
Inoltre bisognerà controllare che non vi siano script personali e/o di terze parti nella cartella /bin inquanto, come ci fà notare veleno77, alcuni utenti hanno avuto questi problemi.

Infine, sempre da amministratore, lanciate questi ultimi comandi

pacman -Syu --ignore filesystem,bash

aggiorna il sistema senza aggiornare i pacchetti filesystem e bash

pacman -S bash

installa bash

pacman -Su

aggiorna il sistema compreso il pacchetto filesystem