
Soy consciente de que podemos ejecutar un comando/script como super/otro usuario usando sudo
el comando. Pero, ¿existe la posibilidad de que la sudo
utilidad en sí no esté disponible o la elimine el usuario? Si es así, ¿cuál podría ser la alternativa a sudo
otra que no sea su
? Además, ¿tienen sudo
y su
sirven el mismo propósito?
Respuesta1
'sudo' le permite iniciar cualquier programa como cualquier usuario. Es 'setuid root', ya que el programa en sí requiere permisos de root para hacer esto. El poder de sudo es que puedes configurar fácilmente quién puede hacer qué. Puede permitir que un usuario ejecute nmap (y solo nmap) usando sudo.
'su' le permite iniciar un shell como cualquier usuario. Cuando inicia un shell, obviamente puede iniciar cualquier otro programa. Por tanto, es más peligroso; en sistemas bien administrados, su
el acceso generalmente está deshabilitado, pero sudo
puede estar disponible para distintos programas.
La razón por la que se utilizan los dos programas anteriores es la rendición de cuentas. Sudo registra todas las solicitudes que se realizan. Por lo tanto, es muy fácil para un administrador realizar un seguimiento de lo que ha hecho un usuario utilizando privilegios de root. Si otorga acceso a un shell, un usuario puede hacer lo que quiera (es un "agujero negro"). (Por supuesto, el registro avanzado a nivel de kernel frustra esto).
Por supuesto, estos programas también se pueden marcar setuid
. Esto cambia los permisos al propietario del binario al ejecutarlo. Si logra activar el setuid
bit, por ejemplo, /bin/bash
y establece el propietario en /bin/bash
, root
será root cada vez que ejecute /bin/bash
.
Por último, el acceso físico a la máquina te permitirá hacer lo que quieras. Puede arrancar desde una unidad flash y acceder al sistema de archivos local. Incluso podría configurar su gestor de arranque para utilizar un init
proceso diferente que inicie inmediatamente un shell en modo de usuario único (sin solicitar una contraseña).
Respuesta2
Parece que nadie ha respondido a la pregunta de si existen o no alternativas a sudo además de su, por lo que quizás le interese saber que el sitio web de sudo en realidad mantiene una lista de alternativas de sudo:
La lista incluye software comercial y de código abierto. Aquí están las alternativas de sudo de código abierto enumeradas en este momento:
-
- ¿Ahora no existente? Referencia:SUS: un modelo de referencia de objetos para distribuir privilegios de superusuario de Unix
op: escalada de privilegios controlada (una alternativa flexible a sudo)
Dicho esto, nunca he usado ninguna de estas alternativas, ni las he visto ni oído hablar de ellas en ningún otro contexto. También parece que al menos algunos de ellos son experimentales, están obsoletos o no cuentan con soporte alguno. La impresión que tengo es que sudo
son su
el único juego real en la ciudad.
Respuesta3
Inicie sesión como root (si su tty lo permite) o reinicie la computadora e inicie sesión con init=/bin/bash en la línea de comando para restaurar la funcionalidad requerida.
Señalo que solo root puede eliminar sudo.
sudo y su tienen propósitos similares pero diferentes. "sudo" te permite hacer algo con los permisos de otra persona, mientras que "su" te permite "convertirte" en ese usuario y comportarte como ellos.
Respuesta4
Si la máquina lo tiene openssh-server
instalado, entonces una alternativa sudo
podría ser:
ssh root@localhost ..command.. ..goes.. ..here..
Si no se ha deshabilitado, entonces existe su
lo que mencionaste:
su - root -c "..command.. ..goes.. ..here.."