Me gustaría hacer algo así:
sudo -p password rm /a/file
¿Puedo poner la contraseña y el usuario en la misma línea?
Mi versión de Sudo es 1.8.9p5
Respuesta aceptada:
sudo
no tiene una opción para especificar la contraseña, pero aún puede realizar la autenticación en la línea de comando, así:
echo password | sudo -u root --stdin
o simplemente
echo password | sudo -S
refiriéndose a la página del manual de sudo:
-S
, --stdin
Escriba el aviso en el error estándar y lea la contraseña de la entrada estándar en lugar de usar el dispositivo terminal. La contraseña debe ir seguida de un carácter de nueva línea.
y
-u
usuario, --user=
usuario
Ejecute el comando como un usuario que no sea el usuario de destino predeterminado (normalmente root). El usuario puede ser un nombre de usuario o una ID de usuario numérica (UID) con el prefijo "#" (por ejemplo, #0 para UID 0). Cuando se ejecutan comandos como un UID, muchos shells requieren que el '#' se escape con una barra invertida (''). Algunas políticas de seguridad pueden restringir los UID a los que figuran en la base de datos de contraseñas. La política de sudoers permite UID que no están en la base de datos de contraseñas siempre que la opción targetpw no esté configurada. Es posible que otras políticas de seguridad no admitan esto.
Pero sudo
ha estado en desarrollo durante mucho tiempo. Compruebe la versión:
-V
, --version
Imprime el sudo
cadena de versión, así como la cadena de versión del complemento de política de seguridad y cualquier complemento de E/S. Si el usuario que invoca ya es root, el -V
La opción mostrará los argumentos pasados para configurar cuando sudo
fue creado y los complementos pueden mostrar información más detallada, como las opciones predeterminadas.
El soporte para opciones largas se agregó en 2013.
Además de la autenticación, necesita algo para sudo
para hacer , por ejemplo, un comando. A menudo compruebo que funciona haciendo solo
sudo id
que debería mostrar la raíz usuario, por ejemplo,
uid=0(root) gid=0(root) groups=0(root)