Tengo una línea NOPASSWD en / etc / sudoers (editado con visudo
)
gatoatigrado ALL=(ALL) NOPASSWD: /bin/set-slow-cpufreq
Sin embargo, la salida es,
gatoatigrado@coral:~> sudo -n /bin/set-slow-cpufreq
sudo: sorry, a password is required to run sudo
Este tipo de comando funciona en una máquina OpenSuSE, pero no en Ubuntu 11.10. ¿Qué estoy haciendo mal?
Nota : No puedo encontrar ningún mensaje de registro del sistema relevante, por ejemplo, a través de tail -f /var/log/syslog
.
editar
Aquí está / etc / sudoers.
Defaults env_reset
# things I've tried copying from an opensuse machine
Defaults always_set_home
Defaults env_keep = "LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS XDG_SESSION_COOKIE"
root ALL=(ALL:ALL) ALL
gatoatigrado ALL=NOPASSWD: /bin/set-slow-cpufreq
%admin ALL=(ALL) ALL
%sudo ALL=(ALL:ALL) ALL
sudoers
, el orden de las reglas no es irrelevante.Respuestas:
Debería poner esa línea después de la línea con la regla para el
sudo
grupo, porque, comosudoers
dice la página del manual:fuente
/etc/sudoers
y ahora funciona. Explicación completa aquí para las personas interesadas: techglimpse.com/ubuntu-sudoers-nopasswd-option-not-workingIdealmente, si está personalizando qué comandos se pueden ejecutar
sudo
, debe realizar estos cambios en un archivo separado en/etc/sudoers.d/
lugar de editar elsudoers
archivo directamente. También debe usar siemprevisudo
para editar los archivos.Ejemplo:
sudo visudo -f /etc/sudoers.d/slowcpu
Inserte su línea otorgando permiso:
gatoatigrado ALL=NOPASSWD: /bin/set-slow-cpufreq
Luego guarde y salga y
visudo
le avisará si tiene algún error de sintaxis.Puede ejecutar
sudo -l
para ver los permisos que se le han otorgado a su usuario, si alguno de losNOPASSWD
comandos específicos del usuario aparece ANTES de cualquier%groupyouarein ALL=(ALL) ALL
comando en la salida, se le solicitará su contraseña.Si te encuentras creando muchos de estos archivos sudoers.d, entonces quizás quieras 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.
Puede controlar el orden de los nombres de archivo utilizando un prefijo de 00-99 o aa / bb / cc, aunque también tenga en cuenta que si tiene CUALQUIER archivo que no tenga un prefijo numérico, se cargará después de los archivos numerados, anulando la configuración. Esto se debe a que, según la configuración de su idioma, la "clasificación léxica" que utiliza el shell clasifica primero los números y luego puede intercalar mayúsculas y minúsculas al ordenar en orden "ascendente".
Intente ejecutar
printf '%s\n' {{0..99},{A-Z},{a-z}} | sort
yprintf '%s\n' {{0..99},{A-Z},{a-z}} | LANG=C sort
para ver si su idioma actual se imprime,AaBbCc
etc. oABC
luegoabc
para determinar cuál sería el mejor "último" prefijo de letra para usar.fuente
id
y ver a qué grupos perteneces.Me encontré con esto también.
Mi situación es que estoy configurando un sistema remoto que funcionará sin cabeza. He habilitado el cifrado de disco completo (de lo contrario, un atacante con acceso físico puede hacer lo que quiera) Solo quiero autenticar con clave de pub (desarmaré la contraseña para que el esquema "tener algo, saber algo" sea una contraseña par de claves protegido: el inicio de sesión de raíz está, por supuesto, desactivado por completo)
El instalador de Ubuntu solicita un usuario administrador no root que se agrega al grupo
sudo
. Luego me agregué manualmente alsudoers
archivo usandosudo visudo
:NOTA: si usa nopasswd en su computadora portátil, siempre debe bloquear su computadora mientras se aleja, de lo contrario, un atacante casual puede comprometerse mucho mientras se levanta para poner crema en su café
Todavía tenía que autenticar con contraseña.
La respuesta de enzotib es la clave de lo que está sucediendo. El sudo grupal aparece en sudoers después de la entrada de mi nombre de usuario.
En lugar de mover mi entrada debajo de la línea de sudo, simplemente eliminé la línea que había agregado previamente y luego agregué
NOPASSWD
a la entrada para%sudo
Eso parece funcionar. Nuevamente, solo use nopasswd si realmente lo necesita (en mi caso fue precisamente lo que necesitaba, para la mayoría de los usuarios que requieren una contraseña para la actividad de sudo es mejor)
ADVERTENCIA adicional: siempre edite sudoers con visudo. (sudo visudo) Además, tener otra ventana abierta cambiada al usuario raíz le permite recuperar cualquier error que pueda cometer al cambiar el archivo sudoers.
fuente
sudo
que use sus propios permisos para agregar otro usuario al grupo sudo además de ejecutar el comando solicitado.En el sistema remoto, suelte el cifrado, pero deje que todo sea propiedad de una raíz como en el grupo de "Administradores", ¡eso no es 0!
Puede enmendar
#sudo -g Administrators
a aquellos que necesitan acceso completo, no en elsudo
archivo, sino en el.login
perfil. Cualquier script estándar ahora puede tener acceso al control remoto como "root" y puede proteger los archivos que deben protegerse.Otro "grupo" útil es "Sandbox" con un directorio de inicio de sesión en el caché del navegador y puede leerlo libremente y nada más. Utilice mayúsculas primer carácter.
fuente