Ya había hecho esta pregunta en Stack Overflow , pero me han pedido que la publique aquí. Entonces haciendo lo mismo.
Ejecuté este comando usando mi programa java
sudo -u <username> -S pwd
Tengo esta salida
command=sudo -u <username> -S pwd
exitCode=1
sudo: sorry, you must have a tty to run sudo
Intenté editar / etc / sudoers pero ya contiene
<username> ALL=(ALL) NOPASSWD: ALL
Luego, aprendí que esto se puede hacer comentando el siguiente código en / etc / sudoers
# Defaults requiretty
Además, de manera predeterminada, cuando intentamos ejecutar un comando como otro usuario sudo
, debemos proporcionar nuestra propia contraseña. Pero esto se puede cambiar haciendo el siguiente cambio en / etc / sudoers-
Defaults targetpw
Mi pregunta es, ¿ es posible ejecutar mi comando anterior en Java sin hacer ningún cambio en ningún lugar, es decir, tener la configuración predeterminada ?
requiretty
está habilitada de forma predeterminada. Según sudo
la propia documentación , está "desactivado por defecto".