El 14.04 aquí. SSHed en mi máquina, agregué la siguiente línea a /etc/sudoers:
myuser   ALL=NOPASSWD: ALL
Y luego trató de correr:
sudo mkdir /etc/blah
... y me piden mi contraseña. ¿¡¿Por qué?!?
Yo no quiero que se le solicite la contraseña cuando se hace esta operación. Tenga en cuenta que cuando corro ls -ltr /me sale:
drwxr-xr-x 94 root root  4096 Jul 30 13:28 etc
Pero no creo que esto importe porque me he erigido en un "sudoer", ¿verdad?
Más importante aún, ¿qué debo hacer para poder ejecutar sudo mkdir /etc/blahcomo mi usuario actual ( myuser) sin que se me solicite la contraseña?
Aquí está mi /etc/sudoersarchivo completo :
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root      ALL=(ALL:ALL) ALL
fizzbuzz  ALL=NOPASSWD: ALL
chadmin   ALL=NOPASSWD: ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL
# See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d

visudosin embargo, las ediciones manuales de este archivo no fueron trabajos de copiar y pegar, escribí todo tal como está. ¿Perovisudoedita otros archivos además de este? Eso podría ser .../etc/sudoers.d/, pueden ser de primer orden de las cosas/etc/sudoersRespuestas:
Es la secuencia / orden de las reglas que causó esto. La última regla tiene preferencia.
Para solucionar su problema, simplemente mueva sus líneas,
del
sudoersarchivo aEste es un mejor enfoque que editar el
sudoersarchivo con un editor de texto sin formato. Si inserta accidentalmente errores en el archivo, es posible que ya no pueda ejecutarlosudo. ¡Utilice siemprevisudo, para que la sintaxis esté marcada y reciba advertencias sobre errores!Su directiva no funciona porque es anulada por:
Si ejecuta el
groupscomando, debería ver que su usuario pertenece a estos grupos.fuente
nn-somename, por ejemplo/etc/sudoers.d/20-myoverridesSi myuser está en el grupo sudo , entonces este orden de las líneas no proporcionará acceso sin contraseña (como señaló Florian Diesch), porque la tercera línea anula la primera.
Así que solo pon las líneas en este orden:
En la cuenta myuser , use
sudo -lpara verificar qué permisos tiene myuser .fuente
Si varias entradas coinciden para un usuario, se usa la última . Entonces, si
fizzbuzzychadminson miembros de los gruposadminosudoaún se les pedirá una contraseña.Coloque las dos líneas al final del
sudoersarchivo después de la#includedirlínea.fuente
#includedires la última entradasudoerspor defecto.Idealmente, si está personalizando qué comandos se pueden ejecutar
sudo, debe realizar estos cambios en un archivo separado en/etc/sudoers.d/lugar de editar elsudoersarchivo directamente. También debe usar siemprevisudopara editar los archivos. NUNCA debe otorgarNOPASSWDlosALLcomandos.Ejemplo:
sudo visudo -f /etc/sudoers.d/mynotriskycommandInserte su línea otorgando permiso:
myuser ALL= NOPASSWD: /bin/mkdirLuego guarde y salga y
visudole avisará si tiene algún error de sintaxis.Puede ejecutar
sudo -lpara ver los permisos que se le han otorgado a su usuario, si alguno de losNOPASSWDcomandos específicos del usuario aparece ANTES de cualquier%groupyouarein ALL=(ALL) ALLcomando en la salida, se le solicitará su contraseña.Si se encuentra creando muchos de estos archivos sudoers.d, entonces tal vez desee crearlos nombrados por usuario para que sean más fáciles de visualizar. Tenga en cuenta que el orden de los NOMBRES DE ARCHIVO y de las REGLAS dentro del archivo es muy importante, el ÚLTIMO cargado gana, ya sea MÁS o MENOS permisivo que las entradas anteriores.
Intente ejecutar
printf '%s\n' {{0..99},{A-Z},{a-z}} | sortyprintf '%s\n' {{0..99},{A-Z},{a-z}} | LANG=C sortpara ver si su idioma actual se imprime,AaBbCcetc. oABCluegoabcpara determinar cuál sería el mejor "último" prefijo de letra para usar.fuente