Esta respuesta aún debería ayudarte, incluso teniendo en cuenta las ediciones de la pregunta. En particular, una cuenta creada con
--disabled-login
no tiene una contraseña establecida y no hay otros medios para iniciar sesión , pero aún debería ser posible usar sudo
(explicado a continuación) para ejecutar comandos o un shell como usuario. Así es, de hecho, cómo root
se configura la
cuenta en Ubuntu.
Hay múltiples problemas con el comando su - irssi
.
Este comando intenta iniciar un shell propiedad de un usuario llamadoirssi
.
Fallará si:
- No hay
irssi
usuario
- La
irssi
cuenta del usuario está deshabilitada.
- La
irssi
cuenta del usuario está deshabilitada para el inicio de sesión interactivo. A veces, una cuenta puede usar servicios como FTP, pero tiene prohibido iniciar sesión normalmente configurando su shell en algo que se cierra inmediatamente, como /bin/false
. Luego, un inicio de sesión termina inmediatamente, sin mensaje.
- La contraseña que está ingresando no es correcta para el
irssi
usuario.
El -
indicador hace que el shell simule un shell de inicio de sesión inicial, es decir, realmente es muy parecido a iniciar sesión como irssi
. Sin la -
bandera, si el su
comando tuvo éxito, todavía obtendría un shell irssi
, pero las variables de entorno no HOME
cambiarían.
Si en su lugar desea ejecutar un programa llamado irssi
, debe invocar de manera su
diferente:
su username - -c irssi
Si lo omite , es lo mismo que - intenta ejecutar el comando como root.-c username
-c root
Alternativamente, puede iniciar un shell y luego ejecutar el comando :
- Comience la cáscara con .
su username -
- En el shell, ejecute el comando (
irssi
).
- Si ya terminaste, deja el shell corriendo
exit
.
Ejecutando comandos como root
Si quieres correr irssi
como root
, su
no es la forma de hacerlo. Los inicios de sesión raíz están deshabilitados de manera predeterminada en Ubuntu, y rara vez hay alguna razón para volver a habilitarlos . Si ha habilitado el root
inicio de sesión, entonces debería poder usar su
para convertirse root
. La razón por la que no es necesario habilitar la root
cuenta es que, lo hagas o no, aún puedes ejecutar comandos como root
con sudo
.
Cuando ejecuta comandos con sudo
, ingresa su contraseña, no la contraseña del usuario bajo cuya identidad desea que se ejecute el comando. Solo los administradores pueden ejecutar comandos arbitrarios como root
con sudo
(a menos que reconfigure sudo
para permitir que otros lo hagan, por supuesto). Por lo tanto, un usuario que no tiene permiso para administrar el sistema no puede ejecutar comandos como root
con su propia contraseña.
Para correr irssi
como root
con sudo
:
sudo irssi
Y usted ingresaría su contraseña cuando se le solicite, no root
la de.
Excepto qué contraseña ingresas, esto hace lo mismo que:
su -c irssi
Excepto que la sudo
versión puede tener éxito porque no requiere que la root
cuenta esté habilitada.
Al igual que con su
, puede usar sudo
para ejecutar comandos como otro, no root
usuario . Para correr irssi
como username
con sudo
:
sudo -u username irssi
Si desea sudo
comportarse como su -
con respecto aHOME
, es decir, desea utilizar las HOME
variables de entorno del usuario objetivo , puede ejecutar sudo
con el -H
indicador:
sudo -H irssi
sudo -H -u username irssi
Puede comenzar un shell completo con sudo
, como puede hacerlo con su
. Excepto por la contraseña que ingresó, este comando tiene el mismo efecto que su
:
sudo -s
Y este comando tiene el mismo efecto que su -
:
sudo -i
( i
Significa el shell de inicio de sesión inicial ).
También puede iniciar un shell como otro usuario:
sudo -u username -s
sudo -u username -i
Lectura adicional sobre sudo
Para obtener más informaciónsudo
, eche un vistazo a:
¿Por qué gksu
funcionó cuando su
no?
gksu
Probablemente funcionó corriendosudo
.
gksu
es una interfaz para ambos su
y sudo
. En Ubuntu, el uso predeterminado es sudo
(ya que en Ubuntu, su
generalmente no se usa para convertirse root
, y es solo una forma secundaria de convertirse en otros, no root
usuarios).
Puede gksu
utilizarlo su
como interfaz de usuario ejecutando gksu --su-mode
.
Puede averiguar si gksu
está en su
modo o sudo
modo, y (si lo desea) cambiar esta configuración, ejecutando gksu-properties
. Esta es una configuración por usuario.
Cuando gksu
está en sudo
modo, se comporta igual que gksudo
.
Lectura adicional sobre gksu
Análisis posterior a la solución
Finalmente descubrió que podía ejecutar el comando necesario con:
sudo -u username irssi
(Cuál es una de las técnicas mencionadas anteriormente).
Finalmente, usted reportó dos datos, que son suficientes para explicar por qué otras técnicas fallaron, pero tuvieron éxito:
La username
cuenta se creó con el --disabled-login
indicador, lo que hace que no tenga contraseña (y ningún otro medio para iniciar sesión). No tener contraseña no significa que sea posible iniciar sesión con una contraseña en blanco . Significa que ninguna contraseña es suficiente para autenticar. En combinación con la eliminación de otros medios de autenticación, este medio username
no puede autenticarse en absoluto.
Entonces, todas las su
soluciones basadas están fuera. sudo
Sin embargo, puede funcionar, porque con sudo
usted no se autentica como el usuario que está a punto de suplantar. En cambio, tiene que estar autorizado para hacerse pasar por ellos y autenticarse como usted mismo (es decir, ingrese su propia contraseña, no la de ellos).
Es posible establecer una contraseña en la cuenta, lo que elimina esta barrera para iniciar sesión:
sudo passwd username
Sin embargo, puede haber una buena razón por la cual el usuario no tiene permiso para iniciar sesión. Por ejemplo, si a este usuario se le permitiera iniciar sesión e iniciar sesión gráficamente, surgirían problemas graves si el entorno del usuario o los privilegios no son adecuados para ejecutar aplicaciones X11 ? Si este usuario pudiera iniciar sesión, ¿eso permitiría iniciar sesión de forma remota como ese usuario (para máquinas donde haya expuesto servicios de red)?
Si alguna vez quieres volver a desactivarlo:
sudo passwd -dl username
Relacionado: Rehabilitar la root
cuenta después de haberla habilitado temporalmente.
La username
cuenta tiene /bin/false
como shell de inicio de sesión.
Cuando un shell como se bash
ejecuta como su shell de inicio de sesión, configura su entorno y le ofrece un mensaje interactivo con el que controlar la máquina.
Cuando se /bin/false
ejecuta, por otro lado, no hace nada y reporta fallas . ( /bin/true
no hace nada e informa el éxito)
Los comandos false
y true
son útiles en las secuencias de comandos y para diversos fines de prueba, pero también para deshabilitar una cuenta para que cuando alguien inicie sesión, su sesión de inicio de sesión termine inmediatamente. De esa manera, se puede habilitar una contraseña (u otro medio de autenticación), y las personas pueden iniciar sesión, pero no para el acceso de shell . Por ejemplo, si hay un servidor FTP, aún podrían acceder a su cuenta a través de FTP. Si hay un servidor SSH, no podrían obtener un shell a través de SSH, pero aún podrían usar sftp
y scp
transferir archivos.
Desde username
's shell de entrada era no funcional, comandos como , , , y no podía trabajar.su username
su - username
sudo -u username -s
sudo -u username -i
Pero los comandos que no dan un shell, como o podrían funcionar.sudo -u username command
su username -c 'command'
Como se pueden ejecutar comandos , puede cambiar el shell de inicio de sesión del usuario a algo funcional:
sudo chsh -s /bin/bash username
Sin embargo, esto también debe hacerse con precaución, ya que puede haber una buena razón para deshabilitar los inicios de sesión interactivos para el usuario.
Aquí, username
ambos habían deshabilitado la contraseña y el shell "deshabilitado". La ausencia de una contraseña de trabajo impidió que todas las su
soluciones basadas en el trabajo funcionen, mientras que la ausencia de un shell de inicio de sesión interactivo que funcionó impidió que todas las soluciones de generación de shell funcionen (excepto invocar manualmente un shell, como ).sudo -u username bash
sudo -u username command
es lo que quedaba.