No es recomendable usarlo sudo
con una aplicación gráfica como gedit
, como se describe en este enlace . En consecuencia, he tendido a usar vim
con sudo
.
Recientemente me di cuenta de que mi ~/.viminfo
propietario era root en una instalación bastante nueva de Ubuntu 16.04 (Xenial Xerus), por lo que me preguntaba si incluso Vim se considera gráfico o si hay algún otro problema con la invocación sudo vim
. Después de cambiar la propiedad a mí mismo a través de:
sudo find $HOME -not -user $USER -exec chown $USER:$(id -g) {} +
y posteriormente ejecutándome no sudo vim
pude ser ~/.viminfo
propiedad de root. Sin embargo, estoy seguro de que recientemente fue propiedad de root.
¿Es desaconsejable invocar sudo vim
?
:w !sudo tee %
Respuestas:
Sí, es seguro
El problema
sudo gedit
es porque las aplicaciones GUI usan ciertos archivos, como~/.cache/dconf
, y después de elevado,gedit
ese archivo se convierte en propiedad de la raíz. Bueno, ese archivo en particular contiene configuraciones específicas del usuario para aplicaciones GUI, incluido el escritorio, por lo que si el sistema no puede leer esas configuraciones, es malo. IIRC un usuario no puede iniciar un escritorio en particular. Los datos de los archivos recientes del usuariorecently-used.xbel
también se ven afectados.Por otro lado, Vim no tiene ese problema. No utiliza una base de datos relacionada con la GUI y no incluye nada
recently-used.xbel
. Fue creado para un propósito exclusivo de la consola, aunque también existe gVim. De hecho, en algunos sistemas, Vim es su única opción de editor. Por lo tanto, es más seguro que gedit en virtud de no causar los mismos problemas. Todavía está editando como root en ambos casos, por lo que podría causar problemas con la edición incorrecta.Según esta publicación de blog :
Si bien el autor señala que puede conducir a problemas, no hay nada complejo, solo
chown
el archivo de vuelta a ti mismo.Ver también:
fuente
sudo vim
para obtener una copia de vim ejecutándose como root, y luego:!/bin/sh
obtener un shell de root.sudo /bin/sh
? En términos prácticos, si el usuario ya tiene acceso de root, no necesita usar trucos elaborados./etc/sudoers
archivo No necesita hacerlo%wheel ALL=(ALL) ALL
: lasudo
configuración permite muchos más matices que eso./bin/bash
a~/.viminfo
, poner un setuid en él y esperar a que el usuario ejecutesudo vim
para que se lo chowned a raíz?También es posible usar
sudoedit
para lograr esto; abre una copia temporal del archivo en su editor, con su editor ejecutándose como usted. Desde la página del manual :Esto funciona bien con vim (es lo que generalmente hago) e imagino que también te permitiría usar gedit. Hay algunas restricciones de seguridad .
fuente
El enlace es muy antiguo (2013). Recomienda usar
gksudo
ogksu
para aplicaciones gráficas, pero ambas se están volviendo obsoletas. Más tarde, la respuesta aceptada también sugieresudo -H
sin embargo.El consenso general en la comunidad Ask Ubuntu recientemente es usar:
El único problema sigue siendo que
sudo
no tiene un perfil para la configuración de pestañas, extensiones, ajuste de palabras, nombre de fuente, tamaño de fuente, etc. Puede heredarlos de su perfil de usuario aunque con un script de envoltura como este: ¿Cómo puedo sincronizar mi raíz? gedit con las preferencias de mi usuario gedit?fuente
Sí, es seguro de usar
sudo vim
. Los problemas que encuentro sonTener que salir del archivo y volver a abrir con
sudo vim
para poder editar.Tener la raíz
vimrc
es la predeterminada, no mis cosas útiles personalizadas.Aquí hay una función que puede poner en su
bashrc
para permitir que vim sudo automáticamente si no puede editar el archivo normalmente.fuente
sudo
por defecto conserva la$HOME
variable de entorno, lo que significa quesudo vim
va a utilizar su .vimrc personalizada, y también significa quesudo vim
va a cambiar la propiedad de~/.viminfo
root: raíz y causa que algunos inconvenientes.viminfo
.Está bien usar vi como root. Habrá ocasiones en las que necesite editar un archivo que requiera privilegios sudo o root, como cambiar el archivo de las interfaces de red o tal vez editar el archivo de configuración sshd. Usar root para cosas gráficas es malo porque la gente se conectaría a IRC o navegaría por la web como root. Si obtuvieron un virus al hacerlo, tendría acceso completo a la raíz.
fuente
Algo que no se ha mencionado en las otras respuestas es que ejecutar vim con root dará privilegios de root a los complementos que haya instalado. Por lo tanto, la pregunta de si es seguro o no ejecutarlo como root depende de si confía en que los desarrolladores de complementos (o contribuyentes a su proyecto) no sean dueños de su sistema en su núcleo.
Vim generalmente es examinado por mantenedores de paquetes en todas las distribuciones de Linux, por lo que es fácil confiar. Sin embargo, los complementos vim generalmente se instalan directamente desde los repositorios de GitHub y generalmente tienen mucha menos auditoría de usuarios (tal vez nula). En otras palabras, no hay un proceso de investigación de antecedentes con ellos.
Si no carga complementos mientras está en la raíz, supongo que la ejecución como raíz depende de si confía en los desarrolladores de vim. Sin embargo, puede omitir tener que confiar en ellos utilizando sudoedit, que está hecho por los mismos desarrolladores de sudo, personas en las que ya hemos confiado con acceso root de todos modos. GKFX y NieDzejkob ya han mencionado por qué sudoedit es ideal. Además del punto de que no tiene que confiar en el acceso raíz a nadie más que los desarrolladores de sudo, puede cargar todos los complementos en los que ya ha confiado con su cuenta de usuario normal.
fuente
sudoedit /etc/apt/sources.list
tiene instalado un complemento comprometido, probablemente pueda insertar un repositorio malicioso y obtener acceso a la raíz la próxima vez que ejecute actualizaciones de todos modos. Estoy seguro de que hay una larga lista de archivos protegidos por root para los que se aplica algo similar. Y, por supuesto, no todos los virus requieren root; uno podría obtener sus datos bancarios con solo una extensión de navegador.