[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

dpkg-reconfigure e "su" <-> "su -" [Era: Re: dpkg-reconfigure locales]



On 06/09/19 20:45, Hugh Hartmann wrote:

-rwxr-xr-x 1 root root 3468 30 gen  2011 /usr/sbin/dpkg-reconfigure

Come si può notare è un po' difficile che da utente generico lo possa eseguire,

invece un utente generico può eseguire dpkg-reconfigure, infatti i permessi dicono che è eseguibile e leggibile da root, dagli utenti che appartengono al gruppo root e da tutti gli altri utenti. Inoltre root può anche scriverlo.

L'utente non root e che non appartiene al gruppo root può eseguirlo per riconfigurare un pacchetto che non modifica nessun file che solo root può modificare.

infatti se da utente generico dai il comando:

$ dpkg-reconfigure

ottieni:

bash: dpkg-reconfigure: command not found

questo perché un utente normale non ha nel suo path il percorso in cui si trova quel comando, ma è possibile richiamarlo indicando il percorso completo o inserendo quel percorso nel proprio $PATH

La differenza tra su e su - è che, fornita la password di root se hai dato il comando dalla tua home, ti trovi ancora nella tua home ma con i privilegi di root e anche con il prompt #.

Il comando su - invece, ti sposta nella directory di root (/root) oltre a fornirti i privilegi di root.

no, con le ultime versioni non è più vero quanto dici.
Se esegui solo "su" non sarai più in grado di operare correttamente come root.

Questo perché "su -" ora permette di:
$ man su
[...]
     -, -l, --login
Start the shell as a login shell with an environment similar to a real login:

o clears all the environment variables except TERM and variables specified by --whitelist-environment

o initializes the environment variables HOME, SHELL, USER, LOGNAME, and PATH

                 o      changes to the target user's home directory

o sets argv[0] of the shell to '-' in order to make the shell a login shell
[...]

mentre usando "su" permette solo di:
$ man su
[...]
su defaults to not change the current directory and to only set the environment variables HOME and SHELL (plus USER and LOGNAME if the target user is not root).
[...]

questo vuol dire che, ad esempio, se fai "su" avrai ancora il $PATH dell'utente da cui sei partito e non quello di root.

Un altro esempio:
pippo@pippo:~/sorgenti$ su
pippo:/home/pippo/sorgenti# echo $USER
pippo
pippo:/home/pippo/sorgenti# exit
pippo@pippo:~/sorgenti$ su -
pippo:~# echo $USER
root

Quindi è sconsigliato accedere a root con "su" se si devono effettuare operazioni con l'utente root, poiché i risultati potrebbero essere diversi da quelli desiderati.

Ciao
Davide

--
Dizionari: http://linguistico.sourceforge.net/wiki
Database: http://www.postgresql.org
GNU/Linux User: 302090: http://counter.li.org
Non autorizzo la memorizzazione del mio indirizzo su outlook


Reply to: