¿Existe un BSD equivalente a "!!"?

¿Existe un BSD equivalente a "!!"?

A menudo me encuentro emitiendo un comando para el que no tengo los privilegios elevados adecuados.

En Ubuntu podría usar

sudo !!

Esto emitiría el mismo comando con privilegios sudo. ¿Existe un equivalente en OpenBSD?

Editar: debería haber sido más específico sobre qué versión de OpenBSD. Estoy usando OpenBSD 4.8 donde Sudo parece estar instalado de forma predeterminada. Ya creé un usuario además de root y edité mi archivo sudoers para permitir que ese usuario use sudo.

Mi pregunta es, ¿existe ya un atajo integrado para el "!!" para usar el comando anterior.

Respuesta1

sudoes un paquete de software independiente que comenzó a desarrollarse al menos una década antes que Ubuntu u OpenBSD.

Le sugeriría que use pkg_add de OpenBSD para instalar esto en su sistema, pero las preguntas frecuentes de OpenBSD parainstalando un nuevo paquetetiene un ejemplo que usa sudo, por lo que ya debería estar instalado.

¿ !!Funciona solo (es decir, sin sudo)? De lo contrario, es posible que esté configurado para utilizar un shell diferente al que utiliza en Ubuntu.

Respuesta2

Para que quede claro con todas las demás respuestas, !!es parte del mecanismo del historial del shell. Creo que el problema no es con sudo, sino con tu shell, o más específicamente con tu shell cuando eres root.

Ha pasado mucho tiempo desde que jugué con cualquiera de los BSD, pero tienden a ser UNIX más "tradicionales", lo que significa que todavía usan un shell Bourne real (léase: no tan destacado como bash) como shell de root. Shell Bourne 'real' en este caso significa que no hay mecanismo de historial. Esto es por motivos de recuperación del sistema.(*)

Cuando inicias sesión en root, puedes ejecutar un shell con historial, ya sea como quieras exec /bin/basho exec /bin/tcshcomo quieras.

El viejo truco solía ser tener una cuenta equivalente a root, generalmente llamada 'toor', que tenía un shell de inicio de sesión tcsh o bash, el mismo directorio de inicio y uid 0. No harías sudo para rootear, lo harías sudo toory luego serías en fiesta. No estoy seguro de cuál es el nuevo atractivo, tal vez

(*) La razón es que el shell de root es /sbin/sh y está vinculado estáticamente. Lo que significa que tiene el número mínimo de dependencias. Si su shell es /bin/bash y tiene dependencias de biblioteca en /usr, y ahora /usr está dañado, no tiene shell. Si su shell es /sbin/sh, entonces si al menos /sbin es montable, puede trabajar un poco.

Respuesta3

Este sitio debería serle de alguna ayuda:http://linux-bsd-sharing.blogspot.com/2009/03/howto-using-sudo-on-freebsd.html

Además, en BSD las tareas administrativas generalmente se realizan directamente desde la cuenta de usuario raíz. En Ubuntu, la cuenta de administrador raíz está deshabilitada y todas las tareas administrativas se realizan a través de la cuenta de usuario y el programa sudo verifica que están bien.

Cuando instaló BSD, debería haberle preguntado cuál desea que sea su contraseña de root, debería poder iniciar sesión en root usando la contraseña que especificó. Si el inicio de sesión de root local está deshabilitado en Gnome (o lo que sea que esté usando como escritorio), entonces puede iniciar sesión como root con el comando "su -" en una terminal y debería solicitarle su contraseña de root. Una vez que haya iniciado sesión como root, podrá hacer lo que quiera porque esa cuenta tiene todos los privilegios.

Generalmente no se recomienda iniciar sesión como root y ejecutar todo de esa manera por razones de seguridad. Cualquier programa que ejecute como root tiene privilegios de root. Esto significa que si ejecuta un programa diseñado para eliminar todo lo que hay en su disco duro, tiene permiso para hacerlo. Es por eso que siempre debes tener cuidado al iniciar sesión en root, simplemente inicia sesión y haz lo que necesites. Cuando haya terminado, regrese a su cuenta de usuario solo para estar seguro.

Respuesta4

OpenBSD tiene su propia implementación integrada en el sistema base, por lo que si su usuario está en el /etc/sudoersarchivo, entonces el problema podría ser que su shell sea probablemente el Bourne predeterminado sh, que no proporciona la misma funcionalidad a la que podría estar acostumbrado en Ubuntu.

Creo que puedes instalar bash usando el comando pkg_add -r bashy luego configurarlo con chsh -s /usr/local/bin/bash (creo que esa es la ruta correcta, estoy más familiarizado con FreeBSD, pero creo que el sistema de puertos/paquetes es similar en ambos).

información relacionada