Un usuario de irc en #Vim me instó a no usar Sudo con Vim como:
sudo vim bad_idea
Cuando estoy haciendo cosas en ubicaciones como / var / www /, no puedo escribir sin él. Entonces, no usar sudo se convierte en un problema. Por supuesto, podría hacer cambios en diferentes ubicaciones como / tmp / y luego copiar directorios a / var / www. Sin embargo, siento una forma más fácil.
- Si no "sudo Vim", ¿por qué?
- En caso afirmativo a la primera pregunta, ¿cómo evita los problemas para no usar sudo?
Consulte: /programming/1005/getting-root-permissions-on-a-file-inside-of-vi :
fuente
vim permite a los usuarios ejecutar comandos de shell arbitrarios, por lo tanto, muchos administradores del sistema no permiten que vim se use con sudo.
rvim se incluye con vim. Es un vim restringido, que no permite comandos de shell. (O le permite suspender vim, por las mismas razones).
Es discutible si necesita llegar a esos extremos en su propia caja.
fuente
sudo vim
luego ingrese:!bash
y tendrá un shell como root - exactamente por quérvim
existesudo bash
osudo su -
no?vi
lanzamientos CentOSvim
pero comovi
lanzamientos de rootvi
. En Ubuntuvim
se usa en ambos casos ysudo vi
también se iniciavim
...Cuando edite archivos de configuración de todo el sistema, está totalmente bien, solo recuerde siempre que es root y, por lo tanto, tiene todo el poder y deje esos privilegios tan pronto como ya no los necesite.
En el caso especial
/var/www/
, es decir, las páginas del servidor web, es posible que desee pensar en cambiar algunas propiedades / grupos / permisos --- pero si depende en gran medida de su configuración particular (usuario único / multiusuario, servidor web real / solo localhost, dinámico / estática, etc.)fuente
Una pregunta como esta me hace golpearme la frente. Estoy del otro lado de la seguridad, "la seguridad no debe interferir con la experiencia del usuario, a menos que se espere o se requiera para evitar que la persona promedio realice actividades maliciosas".
Prevenir el uso de sudo de vim es solo una curita. Como se dijo anteriormente, alguien puede usar:
O
O
O
ect
Si realmente le preocupa que alguien haga algo malicioso en la caja, no le otorgue privilegios de sudo (o contraseña de root, obviamente), punto. No hay una bala de astillas para evitar actividades maliciosas usando sudo y solo se volverá loco al "aplicar" todas las "soluciones" para asegurarse de que una persona no pueda hacer nada malicioso.
Alguien mencionó el cambio de propiedad / grupos. Este es un problema difícil, ya que si el servidor web se ejecuta como otro usuario y usted cambia los permisos en el archivo, de repente su sitio no funciona. Bueno, obviamente eso no te ayudará. Puede agregarse al grupo que ejecuta el servidor web, sin embargo, si el grupo no tiene acceso de escritura a los archivos, necesitará ejecutar chmod -R g + w * (o archivos individuales de chmod) que pueden no ser lo que quiere y puede ser una molestia si tiene que modificar cada archivo.
Algunas personas incluso sugirieron usar rvim. Claro, uno podría simplemente agregar una línea en / etc / sudoers para permitir que ciertos usuarios solo sudo rvim, sin embargo, lógicamente se mantendría que si tuviera que ir por esa ruta, podría ser mejor implementar un administrador de archivos basado en la web. De esta forma, se ejecuta como el usuario del servidor web, por lo que no hay problemas de permisos de archivos y aún puede tener un control granular sobre quién edita qué archivos.
Mis dos centavos de todos modos.
fuente
La ejecución
sudo vim
no cambiará el$HOME
directorio, por lo que ejecutará Vim con permisos de root, pero$HOME
aún señala a su usuario normal.Si es la primera vez que ejecuta Vim, puede suceder que el
~/.viminfo
archivo se cree dentro de su directorio de usuario normal, pero con permisos de root.fuente
sudo vim -c '!echo $HOME' -c q
da mi carpeta de inicio, pero en mi servidor da/root
. Es posible que tenga que echar un vistazo a por qué es así, podría ser porque el OS X de uno es Gentoo del otro, o podría ser algo relacionado con la/etc/sudoers
configuración..viminfo
era accesible desde la raíz.SI ESTE ES SU PROPIO ORDENADOR ... No veo ninguna razón por la que no pueda usar 'sudo vim', aparte del caso límite que Denilson señaló: que podría crear su ~ / .viminfo propiedad de root.
Si no , si un administrador de sistemas está restringiendo lo que puede y no puede hacer, por "man sudo": "en la mayoría de los sistemas es posible evitar escapes de shell con la funcionalidad noexec de sudo. Consulte el manual de sudoers (5) para más detalles. "
Entonces, en este caso, si su administrador de sistemas está preocupado por el potencial de que usted ejecute subshells como root desde vim, puede usar la capacidad noexec. Pero ... volviendo al caso inicial: si esta es SU computadora, creo que es bastante seguro ejecutar 'sudo vim'.
fuente
Una referencia a la respuesta de balpha sobre los grupos:
Cómo: Linux Agregar usuario al grupo
fuente