Pregunta ¿Por qué mi variable $ PATH para root es diferente cuando uso su root?


Cuando intentaba ejecutar chkconfig como usuario normal (en CentOS 5) me di cuenta de que no podía acceder a él porque el directorio, sbin, no está en mi $ PATH. Cuando su para rootear todavía no funciona. Me doy cuenta de que la variable $ PATH es la misma que la del usuario normal desde el que cambié.

Sin embargo, cuando inicio sesión como root, la variable $ PATH es la correcta para root y puedo ejecutar el comando.

¿Se supone que esto funciona de esta manera? ¿Cómo puedo hacer que un usuario ordinario tenga acceso temporal a comandos que solo pueden ejecutarse como root?

Gracias


4
2017-08-18 23:30


origen


Siempre puede calificar completamente el comando que está intentando ejecutar. es decir #/sbin/chkconfig -options Funcionará si tu camino no es correcto - Zypher


Respuestas:


Intenta usar el comando su -. los - significa que el nuevo shell obtendrá un entorno del usuario al que ha cambiado. Si no lo usas, la mayor parte de tu entorno seguirá siendo el mismo.

La página del manual para su dice:

El argumento opcional - puede ser usado para   proporcionar un entorno similar a lo que   el usuario esperaría tener el usuario   Inicia sesión directamente.


18
2017-08-18 23:34





Root y User tienen ambientes totalmente diferentes y discretos. Al usar sudo, le da la capacidad de ejecutar comandos restringidos, pero en realidad no se tocan las variables ambientales.

Por otro lado, su, digamos que carga el entorno de la raíz. Es casi como iniciar sesión como root.

Acerca de su pregunta, puede hacer que un usuario regular pueda "ver" los comandos, pero no ejecutarlos. Todavía necesitas privilegios de root para esto.

por ejemplo, puede ejecutar ifconfig como usuario regular, solo para ver su IP, pero si desea cambiar algo, debe tener los privilegios adecuados.


0
2017-08-18 23:44





Creo que es normal, cada usuario tiene su propia variable PATH y puede cambiarla para el usuario en su perfil si lo necesita.

Con respecto a permitir que un usuario ejecute comandos reservados a la raíz es posible usar setuid bit pero puede ser peligroso (setuid). Si el usuario tiene permiso de ejecución (a través de un grupo, por ejemplo) en un archivo propiedad de root con el conjunto de bits setuid, ejecutará este archivo con los permisos del propietario (root) y no con sus propios permisos. No estoy seguro de que funcione en todas las distribuciones porque, según la documentación, muchas distribuciones no la respetan debido a los riesgos de seguridad, pero al menos funciona en Ubuntu.


0
2017-08-18 23:35