He visto muchos comentarios aquí en Ask Ubuntu con respecto a la preferencia en el uso en sudo -slugar de sudo su.
Para mí, esos dos comandos hacen exactamente lo mismo. Pero, ¿por qué se sudo -ssupone que es mejor?
command-line
sudo
su
fitojb
fuente
fuente

sudo -iosudo sues mejor quesudo -spor las razones mencionadas aquí: ubuntuforums.org/showpost.php?p=6188826&postcount=4 También: este es un posible duplicado de superuser.com/questions/29/…Respuestas:
Creo que
sudo -sno es "mejor", es simplemente diferente.sudo -smantiene su directorio $ HOME, por lo que cuando inicia programas, usarán sus archivos de configuración (y no la raíz), etc. Desventaja: también pueden cambiar la propiedad de sus archivos en el directorio $ HOME, un ejemplo típico es el
.Xauthorityarchivo, pero yo Nunca he tenido un problema con eso.sudo suosudo -ilos programas usarán el directorio de inicio de la raíz y sus archivos de configuración. Esto puede ser más intuitivo, pero también significa que no usará ninguna configuración que haya establecido para usted (alias, historial de bash, ...).
fuente
Porque
sudo -sno cambiará las variables de su entorno, especialmente$HOME, lo que se mantendráHOME=/home/USER. Si usasudo suesto, cambiará a loHOME=/rootque puede tener efectos secundarios negativos cuando los programas que comience intenten acceder al directorio de inicio de su usuario.Entonces, básicamente es como
sudovsgksudocuando se ejecutan programas gráficos.fuente
Además de las diferencias ya mencionadas con las variables de entorno, me parece una
sudo sutontería y un desperdicio porque le estás pidiendosudoque se ejecutesucomo root y le pidas que ejecute un shell como root. ¿Por qué pedirle a un programa que le pida a un programa que le proporcione un shell raíz, cuando puede hacer que el primer programa le dé ese shell? ¿Importa eso en algún sentido práctico? No, solo soy pedante.fuente
sudo sua ser root, sí, solo vesudo -i, por ejemplo. Pero ayuda cuando se quiere llegar a ser un usuario diferente:sudo su - myuser.sudo -icambiará al/rootdirectorio ysudo supermanecerá en el directorio en el que se encuentra.sudo -u myuser.No estaría de acuerdo con otras respuestas al considerar los casos en que desea iniciar sesión como un usuario que no tiene un shell. Ese es un caso muy común con usuarios asignados a servicios.
El uso de "sudo su" iniciará el shell especificado por el usuario. Sin embargo, en el caso de un usuario asignado al proceso del servidor, el shell es / usr / bin / false y el registro fallará. En su lugar, debe ingresar como:
eso lo conectará y cd a su ruta de inicio, incluso si el usuario no tiene un shell asignado
fuente