Disculpas de antemano si esta pregunta va a molestar a todos como lo aprecio, se ha hecho de varias maneras muchas veces antes. Tenga la seguridad de que he leído los archivos y he probado al menos algunas de las sugerencias, pero aún no puedo resolver el problema (simple). Espero que alguien pueda dar una respuesta y pueda sentirme debidamente humilde. Para su información, para evitar cualquier ambigüedad, voy a usar rutas absolutas en lugar de relativas.
Cuando inicio sesión, lo hago como usuario adam
. Los alias /Users/adam/.bash_profile
están cargados y puedo usarlos inmediatamente al abrir un terminal. No uso un .bashrc
archivo y está bien.
De vez en cuando, cambio a root escribiendo su
en el terminal y luego ingresando mi contraseña. El aviso cambia y ahora soy usuario root. Mi pregunta es la siguiente: inmediatamente después de convertirme en root, ¿se puede cargar mi perfil de bash root sin que tenga que buscar manualmente el archivo de perfil? La razón por la que sé que no sucede automáticamente es porque tengo los mismos alias en mi archivo de perfil raíz y en mi /Users/adam/.bash_profile
. Después de convertirse en usuario root, a menos que escriba source [root_profile_file]
, no funcionan. Intenté configurar las siguientes permutaciones y luego cambiar a root a través del terminal, pero ninguna de ellas obtiene automáticamente el perfil / alias (nota, no tengo ninguna de las siguientes opciones configuradas simultáneamente, así que no creo que ' m confundiendo el sistema):
Opción 1: poner mis alias en/etc/profile
Opcion 2:
- en
/etc/profile
insertar[ -r /etc/bashrc ] && . /etc/bashrc
- poner mis alias en
/etc/bashrc
Opcion 3:
- en
/etc/bash_profile
insertar[ -r /etc/bashrc ] && . /etc/bashrc
- poner mis alias en
/etc/bashrc
Opción 4: poner mis alias en/var/root/.profile
Opcion 5:
- en
/var/root/.profile
insertar[ -r /var/root/.bashrc ] && . /var/root/.bashrc
- poner mis alias en
/var/root/.bashrc
Opcion 6:
- en
/var/root/.bash_profile
insertar[ -r /var/root/.bashrc ] && . /var/root/.bashrc
- poner mis alias en
/var/root/.bashrc
Tenga en cuenta que, con cualquiera de los anteriores, si cambio a root y luego source root_profile_file
escribo los alias se cargan, pero solo si de hecho obtengo el archivo manualmente. Quizás he entendido mal cómo funciona bash y no es posible obtener un archivo de perfil automáticamente después de cambiar a root, pero espero que haya una solución simple. Gracias de antemano a cualquiera que se haya tomado el tiempo de leer este mensaje.
su
ni trabajan comoroot
. Existesudo
para ese propósito, o puede trabajar de tal manera que no requiera privilegios de root en absoluto.En realidad, los usos de raíz
/bin/sh
(antiguo shell bourne),.bash_profile
y.bashrc
son leídos por bash.Se vuelve complicado ya que esos archivos pueden usar una funcionalidad no disponible en
sh
. Incluso si ustedsource .bashrc
osource .bash_profile
, todavía tendrá algún problema con funciones complejas, por ejemplo.Una forma de resolver esto es ejecutar
para cambiar
root
el caparazón abash
.fuente
/bin/sh
utiliza el/var/root/.profile
archivo. Crédito a la respuesta deCuando debo hacerlo, lo
sudo bash
que me hace root pero con el entorno de JRobert. Mi .bashrc contiene:, para hacer que el mensaje de raíz me devuelva la mirada en ROJO para enfatizar que ahora soy (más) vulnerable a la mía [elija uno: descaro, tontería, tendencias de dedo gordo, falta de voluntad para seguir un buen consejo, hasta ahora. - no dejes caer la pala].
fuente
Estoy usando
sudo -i
para cambiar a usuario root. En este caso, se lee la configuración de shell/var/root/.profile
.fuente
En general, desaconsejo
su
ya que es peligroso, solo búscalo y sabrás por qué. En cuanto a su pregunta, la cuenta raíz funciona de la misma manera que su cuenta: genera ~ / .bash_profile y / o ~ / .bashrc. No sé cuál, pero mi intuición se inclina hacia ~ / .bashrc , por lo que es posible que desee intentar poner sus alias allí. Aquí hay una sugerencia:fuente
sudo dscl . -change /Users/root UserShell /bin/sh /bin/bash
¡Solo esto funciona! Traté de poner miexport PS1=...
a cualquiera de todos estos archivos anteriores. / etc / profile, / etc / bashrc /var/root/.bashrc /var/root/.profile /var/root/.bash_profile.De todos estos archivos
/bin/sh
shell, ¡no lee la información! (solo bash) (Mac OS El Capitan). Y tuve que cambiar shell para golpear.También
"su -"
funciona también. (con este shell está leyendo el/var/root/.profile
archivo)fuente
Una forma de resolver esto es ejecutar lo siguiente para cambiar el shell de root a bash:
Esta solución también ha solucionado mi problema.
fuente
si solo tiene un usuario 'predeterminado' y el usuario raíz, puede poner
alias su="su -"
el .bash_profile del usuario 'predeterminado' y obtendrá el efecto que desea. Funciona y sin cosas extravagantes.fuente