Linux :: alias condivisi in /etc/profile.d non applicato all'utente root, perché?

Nella mia macchina per sviluppatori Fedora 14 posso aggiungere un file sharedAliases.sh a /etc/profile.d – sia il mio utente che l'utente principale hanno accesso agli alias condivisi.

Passare alla macchina CentOS 5.7 remota e quello che sembra essere la stessa configuration, nessun dado, l'utente root non ha accesso agli alias condivisi.

Questo può essere dovuto al fatto che io SSH nella casella CentOS, non sono sicuro. In each caso, la soluzione più sorda è stata quella di copiare gli alias condivisi in root user's .bashrc poichè è l'unico modo in cui sono riuscito a get i prefs desiderati in root (sì, so che dovrei sudo ma sono stati rotolati con su per anni).

Idee apprezzate, preferiscono non wherer duplicare alias se ansible.

  • Rsync su ssh con accesso root su entrambi i lati
  • Qual è la differenza tra `su` e` su -` in CentOS?
  • La shell di root modificata in un path non esistente
  • Ho l'accesso root di WHM, ma non sono in grado di connettersi utilizzando SSH
  • Eseguire un programma con privilegi root in Ubuntu
  • CPanel - Come arrestare Apache da eseguire come utente root?
  • Permettendo che il root si accenda in sftp mentre lo distriggers su ssh?
  • Errore di root di Chown
  • One Solution collect form web for “Linux :: alias condivisi in /etc/profile.d non applicato all'utente root, perché?”

    Deve avere a che fare con diff tra su-ing su ssh vs quando registrati direttamente nella macchina

    Sospetto che eseguire il command su senza dash ( - ) e, in caso affermativo, richiamerà una shell intertriggers di non-login . Combina con te ha solo seguito in /root/.bashrc :

     # Test for an interactive shell. There is no need to set anything # past this point for scp and rcp, and it's importnt to refrain from # outputting anything in those cases. if [[ $- != *i* ]] ; then # Shell is non-interactive. Be done now! return fi 

    (non sorgente /etc/bashrc )

    mentre se si fa il login diretto o si usa su - , verrà richiamato un shell di login , /etc/profile viene letto e sharedAliases.sh verrà eseguito.

    Per vedere che file viene letto con diverse shell, aggiungendo i log a tutti questi file eseguendo i seguenti comandi come root:

     echo "echo 'running /etc/bashrc'" >> /etc/bashrc echo "echo 'running /etc/profile'" >> /etc/profile echo "echo 'running /root/.bashrc'" >> ~/.bashrc 

    Creare un alias di prova:

     # echo "alias list='ls'" > /etc/profile.d/test.sh 

    Ora, accedi come utente normale e usi su , vedrai qualcosa di simile:

     $ su Password: running /root/.bashrc bash-3.2# list bash: list: command not found 

    e con su - :

     $ su - Password: running /etc/profile running /root/.bashrc # list total 226540 -rw-rw-r-- 1 root root 60148987 Apr 1 2011 3241948.flv 
    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.