sudar que porque peso nada mucho mas malo hiperhidrosis haces hacer ejercicio cuando cabeza bueno bajo antes ahora path environment-variables sudo

path - peso - porque sudo mucho sin hacer nada



¿Por qué sudo cambia el PATH? (17)

¡Parece que este error ha existido durante bastante tiempo! Aquí hay algunas referencias de errores que pueden resultarle útiles (y es posible que desee suscribirse / votar, sugerencia, sugerencia ...):

Error # 85123 de Debian ("sudo: SECURE_PATH todavía no se puede anular") (¡desde 2001!)

Parece que el error # 20996 todavía está presente en esta versión de sudo. El registro de cambios dice que puede anularse en tiempo de ejecución, pero aún no he descubierto cómo.

Mencionan poner algo como esto en su archivo de sudoers:

Defaults secure_path="/bin:/usr/bin:/usr/local/bin"

pero cuando hago eso en Ubuntu 8.10 al menos, me da este error:

visudo: unknown defaults entry `secure_path'' referenced near line 10

Ubuntu bug # 50797 ("sudo construido con --with-secure-path es problemático")

Peor aún, por lo que puedo decir, es imposible volver a especificar secure_path en el archivo sudoers. Entonces, si, por ejemplo, desea ofrecer a sus usuarios acceso fácil a algo en / opt, debe volver a compilar sudo.

Sí. Debe haber una forma de anular esta "característica" sin tener que volver a compilar. Nada peor que los fanáticos de la seguridad que le dicen qué es lo mejor para su entorno y luego no le dan una manera de desactivarlo.

Esto es realmente molesto. Puede ser prudente mantener el comportamiento actual por defecto por razones de seguridad, pero debería haber una manera de anularlo de otra manera que no sea compilar desde el código fuente. Muchas personas están necesitando la herencia de PATH. Me pregunto por qué ningún mantenedor lo investiga, lo que parece fácil de encontrar con una solución aceptable.

Trabajé alrededor de esta manera:

mv /usr/bin/sudo /usr/bin/sudo.orig

luego cree un archivo / usr / bin / sudo que contenga lo siguiente:

#!/bin/bash /usr/bin/sudo.orig env PATH=$PATH "$@"

entonces su sudo normal funciona igual que el sudo que no es de ruta segura

Ubuntu bug # 192651 ("la ruta de sudo siempre se restablece")

Dado que originalmente se archivó un duplicado de este error en julio de 2006, no estoy claro cuánto tiempo ha estado funcionando un env_keep ineficaz. Independientemente de los méritos de obligar a los usuarios a emplear trucos como el que se menciona anteriormente, seguramente las páginas de manual de sudo y sudoers deberían reflejar el hecho de que las opciones para modificar el PATH son efectivamente redundantes.

Modificar la documentación para reflejar la ejecución real no es desestabilizador y es muy útil.

Ubuntu bug # 226595 ("imposible de retener / especificar PATH")

Necesito poder ejecutar sudo con carpetas binarias adicionales no estándar en el PATH. Después de haber agregado mis requisitos a / etc / environment, me sorprendió cuando recibí errores sobre la falta de comandos al ejecutarlos bajo sudo ...

Intenté lo siguiente para solucionar esto sin éxito:

  1. Usando la opción " sudo -E " - no funcionó. Mi PATH existente todavía fue restablecido por sudo

  2. Cambiar " Defaults env_reset " a " Defaults !env_reset " en / etc / sudoers - tampoco funcionó (incluso cuando se combinó con sudo -E)

  3. env_reset (por ejemplo, " #Defaults env_reset ") en / etc / sudoers - tampoco funcionó.

  4. Agregar '' Defaults env_keep += "PATH" '' a / etc / sudoers - tampoco funcionó.

Claramente, a pesar de la documentación del hombre, el sudo está completamente codificado con respecto a PATH y no permite ninguna flexibilidad con respecto a la retención de PATH de los usuarios. Muy molesto porque no puedo ejecutar software no predeterminado bajo permisos de root usando sudo.

Esta es la variable PATH sin sudo:

$ echo ''echo $PATH'' | sh /opt/local/ruby/bin:/usr/bin:/bin

Esta es la variable PATH con sudo:

$ echo ''echo $PATH'' | sudo sh /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin

Por lo que puedo decir, sudo se supone que debe dejar PATH sin tocar. ¿Que esta pasando? ¿Cómo cambio esto? (Esto es en Ubuntu 8.04).

ACTUALIZACIÓN: por lo que puedo ver, ninguno de los scripts se inició como root PATH cambio de ninguna manera.

De man sudo :

Para evitar la suplantación de comandos, sudo verifica las palabras ``. '''' Y `` '''' (ambas denotan el directorio actual) al buscar un comando en la RUTA del usuario (si una o ambas están en la RUTA). Sin embargo, tenga en cuenta que la variable de entorno PATH real no se modifica y se pasa sin cambios al programa que ejecuta sudo.


Creo que, de hecho, es deseable que sudo restablezca la RUTA: de lo contrario, un atacante que haya comprometido su cuenta de usuario podría poner versiones de puerta trasera de todo tipo de herramientas en la RUTA de sus usuarios, y se ejecutarían al usar sudo.

(Por supuesto, tener sudo resetea el PATH no es una solución completa para este tipo de problemas, pero ayuda)

Esto es precisamente lo que sucede cuando usas

Defaults env_reset

en / etc / sudoers sin usar exempt_group o env_keep .

Esto también es conveniente porque puede agregar directorios que solo son útiles para la raíz (como /sbin y /usr/sbin ) a la ruta sudo sin agregarlos a las rutas de los usuarios. Para especificar la ruta a ser utilizada por sudo:

Defaults secure_path="/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin"


En caso de que alguien más se encuentre con esto y quiera deshabilitar todas las variables de ruta que cambian para todos los usuarios.
Accede a tu archivo de sudoers usando el comando: visudo . Deberías ver la siguiente línea en algún lugar:

Valores predeterminados env_reset

el cual deberías agregar lo siguiente en la siguiente línea

Por defecto! Secure_path

secure_path está habilitado por defecto. Esta opción especifica qué hacer $ PATH al realizar sudoing. El signo de exclamación desactiva la función.


Er, no es realmente una prueba si no agrega algo a su camino:

bill@bill-desktop:~$ ls -l /opt/pkg/bin total 12 -rwxr-xr-x 1 root root 28 2009-01-22 18:58 foo bill@bill-desktop:~$ which foo /opt/pkg/bin/foo bill@bill-desktop:~$ sudo su root@bill-desktop:/home/bill# which foo root@bill-desktop:/home/bill#


Esto es una función molesta Una característica del sudo en muchas distribuciones.

Para solucionar este "problema" en ubuntu, hago lo siguiente en mi ~ / .bashrc

alias sudo=''sudo env PATH=$PATH''

Tenga en cuenta que lo anterior funcionará con los comandos que no restablecen el $ PATH. Sin embargo, `su ''restablece su $ PATH, por lo que debe usar -p para decirle que no lo haga. ES DECIR:

sudo su -p


Esto pareció funcionar para mí

sudo -i

que toma en el camino no sudo


Funciona ahora usando sudo desde los repositorios kármicos. Detalles de mi configuración:

root@sphinx:~# cat /etc/sudoers | grep -v -e ''^$'' -e ''^#'' Defaults env_reset Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/grub-1.96/sbin:/opt/grub-1.96/bin" root ALL=(ALL) ALL %admin ALL=(ALL) ALL root@sphinx:~# cat /etc/apt/sources.list deb http://au.archive.ubuntu.com/ubuntu/ jaunty main restricted universe deb-src http://au.archive.ubuntu.com/ubuntu/ jaunty main restricted universe deb http://au.archive.ubuntu.com/ubuntu/ jaunty-updates main restricted universe deb-src http://au.archive.ubuntu.com/ubuntu/ jaunty-updates main restricted universe deb http://security.ubuntu.com/ubuntu jaunty-security main restricted universe deb-src http://security.ubuntu.com/ubuntu jaunty-security main restricted universe deb http://au.archive.ubuntu.com/ubuntu/ karmic main restricted universe deb-src http://au.archive.ubuntu.com/ubuntu/ karmic main restricted universe deb http://au.archive.ubuntu.com/ubuntu/ karmic-updates main restricted universe deb-src http://au.archive.ubuntu.com/ubuntu/ karmic-updates main restricted universe deb http://security.ubuntu.com/ubuntu karmic-security main restricted universe deb-src http://security.ubuntu.com/ubuntu karmic-security main restricted universe root@sphinx:~# root@sphinx:~# cat /etc/apt/preferences Package: sudo Pin: release a=karmic-security Pin-Priority: 990 Package: sudo Pin: release a=karmic-updates Pin-Priority: 960 Package: sudo Pin: release a=karmic Pin-Priority: 930 Package: * Pin: release a=jaunty-security Pin-Priority: 900 Package: * Pin: release a=jaunty-updates Pin-Priority: 700 Package: * Pin: release a=jaunty Pin-Priority: 500 Package: * Pin: release a=karmic-security Pin-Priority: 450 Package: * Pin: release a=karmic-updates Pin-Priority: 250 Package: * Pin: release a=karmic Pin-Priority: 50 root@sphinx:~# apt-cache policy sudo sudo: Installed: 1.7.0-1ubuntu2 Candidate: 1.7.0-1ubuntu2 Package pin: 1.7.0-1ubuntu2 Version table: *** 1.7.0-1ubuntu2 930 50 http://au.archive.ubuntu.com karmic/main Packages 100 /var/lib/dpkg/status 1.6.9p17-1ubuntu3 930 500 http://au.archive.ubuntu.com jaunty/main Packages root@sphinx:~# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/grub-1.96/sbin:/opt/grub-1.96/bin root@sphinx:~# exit exit abolte@sphinx:~$ echo $PATH /home/abolte/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/grub-1.96/sbin:/opt/grub-1.96/bin:/opt/chromium-17593:/opt/grub-1.96/sbin:/opt/grub-1.96/bin:/opt/xpra-0.0.6/bin abolte@sphinx:~$

Es maravilloso tener finalmente resuelto esto sin usar un hack.


La RUTA se restablecerá cuando se utilice su o sudo según la definición de ENV_SUPATH y ENV_PATH definida en /etc/login.defs


La solución recomendada en los comentarios en la distribución de OpenSUSE sugiere cambiar:

Defaults env_reset

a:

Defaults !env_reset

y luego, probablemente, comentar la siguiente línea que no es necesaria:

Defaults env_keep = "LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION LC_MEASURE MENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME LC_ALL L ANGUAGE LINGUAS XDG_SESSION_COOKIE"


Secure_path es tu amigo, pero si quieres eximirte de secure_path, hazlo

sudo visudo

Y añadir

Defaults exempt_group=your_goup

Si desea eximir a un grupo de usuarios, cree un grupo, agréguelo a todos los usuarios y utilícelo como su grupo exento. hombre 5 sudoers para más.


Simplemente comente "Predeterminados env_reset" en / etc / sudoers


Solo edite env_keep en /etc/sudoers

Se ve algo como esto:

Defaults env_keep = "LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION LC_MEASURE MENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME LC_ALL L ANGUAGE LINGUAS XDG_SESSION_COOKIE"

Simplemente agregue PATH al final, para que después del cambio se vea así:

Defaults env_keep = "LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION LC_MEASURE MENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME LC_ALL L ANGUAGE LINGUAS XDG_SESSION_COOKIE PATH"

Cierre la terminal y luego vuelva a abrir.


También puede mover su archivo en un directorio usado de sudoers:

sudo mv $HOME/bash/script.sh /usr/sbin/


comentar tanto "Default env_reset" como "Default secure_path ..." en el archivo / etc / sudores funciona para mí


PATH es una variable de entorno y, como tal, se restablece de forma predeterminada mediante sudo.

Necesita permisos especiales para poder hacer esto.

Del man sudo

-E The -E (preserve environment) option will override the env_reset option in sudoers(5)). It is only available when either the match- ing command has the SETENV tag or the setenv option is set in sudo- ers(5).

Environment variables to be set for the command may also be passed on the command line in the form of VAR=value, e.g. LD_LIBRARY_PATH=/usr/local/pkg/lib. Variables passed on the command line are subject to the same restrictions as normal environment vari- ables with one important exception. If the setenv option is set in sudoers, the command to be run has the SETENV tag set or the command matched is ALL, the user may set variables that would overwise be for- bidden. See sudoers(5) for more information.

Un ejemplo de uso:

cat >> test.sh env | grep "MYEXAMPLE" ; ^D

sh test.sh MYEXAMPLE=1 sh test.sh # MYEXAMPLE=1 MYEXAMPLE=1 sudo sh test.sh MYEXAMPLE=1 sudo MYEXAMPLE=2 sh test.sh # MYEXAMPLE=2

actualizar

man 5 sudoers : env_reset If set, sudo will reset the environment to only contain the LOGNAME, SHELL, USER, USERNAME and the SUDO_* vari- ables. Any variables in the caller''s environment that match the env_keep and env_check lists are then added. The default contents of the env_keep and env_check lists are displayed when sudo is run by root with the -V option. If sudo was compiled with the SECURE_PATH option, its value will be used for the PATH environment variable. This flag is on by default.

Por lo tanto, es posible que deba comprobar que esto no está compilado.

Es por defecto en Gentoo.

# ( From the build Script ) .... ROOTPATH=$(cleanpath /bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/opt/bin${ROOTPATH:+:${ROOTPATH}}) .... econf --with-secure-path="${ROOTPATH}"


$ PATH es una variable de entorno y significa que el valor de $ PATH puede ser diferente para otros usuarios.

Cuando esté iniciando sesión en su sistema, la configuración de su perfil decidirá el valor de $ PATH .

Ahora, echemos un vistazo:

User | Value of $PATH -------------------------- root /var/www user1 /var/www/user1 user2 /var/www/html/private

Supongamos que estos son los valores de $ PATH para diferentes usuarios. Ahora, cuando está ejecutando cualquier comando con sudo, en realidad el usuario root ejecuta ese comando.

Puede confirmar ejecutando estos comandos en el terminal: -

user@localhost$ whoami username user@localhost$ sudo whoami root user@localhost$

Esta es la razón. Creo que está claro para ti.


# cat .bash_profile | grep PATH PATH=$HOME/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin export PATH # cat /etc/sudoers | grep Defaults Defaults requiretty Defaults env_reset Defaults env_keep = "SOME_PARAM1 SOME_PARAM2 ... PATH"