Megértjük fájlok
Nemrégiben találkoztam a következő problémát: az alkalmazás nem menti a beállításokat umask. előre meghatározott profil root felhasználó vagy egy / etc / profile. Kis a probléma megértését, rájöttem, hogy az alkalmazás csak a beállítás umask. amely úgy definiálható, az / etc / bashrc. anélkül, hogy akár az értékeket, amelyek a saját indító szkriptet.
Tanulj egy kis kérdés, rájöttem, milyen funkciót hajt végre a fájlokat, hogy miben különböznek, és hogyan hajtják végre őket. Egy ilyen kérdés merül fel, nem gyakran, így azt gondoltam, hogy hasznos lenne elmondani róla.
Miért van szükség az / etc / profile?
Ha Linuxot használ, akkor valószínűleg ismeri .profile vagy .bash_profile. elhelyezni saját könyvtárban. Ezek a fájlok meghatározására használt környezeti elemeket a felhasználó shell. Elemek, mint például, umask. és változók, mint a PS1 és az útvonal.
Az / etc / profile nem nagyon különbözik azoktól a fájlokat. Arra használják, hogy állítsa rendszerszintű környezeti változók a felhasználó shell. Néha ezek ugyanazok a változókat, mint .bash_profile. de ez a fájl lehet beállítani a kezdeti PATH PS1 vagy valamennyi felhasználó a rendszer shell.
/etc/profile.d
Amellett, hogy ha a környezeti elemek, az / etc / profile szkript végrehajtja belül /etc/profile.d/*.sh. Ha azt szeretnénk, hogy meghatározza a saját környezeti változók az egész rendszert, meg kell tenni a konfiguráció egy shell script /etc/profile.d.
Miért van szükség az / etc / bashrc?
Eltekintve .bash_profile. a saját könyvtárban, és akkor gyakran látni a .bashrc fájlba. Ez a fájl lehet beállítani alias és a függvények által használt bash shell felhasználóknak.
Ahogyan / etc / profile egy rendszerszintű verziójának .bash_profile. A / etc / bashrc Red Hat és /etc/bash.bashrc fájlt Ubuntu egy rendszerszintű verziójának .bashrc.
Érdemes megjegyezni, hogy a végrehajtás a Red Hat / etc / bashrc is végez egy shell script /etc/profile.d. de csak akkor, ha a felhasználó shell interaktív shell (azaz Bejelentkezés Shell (honlap köpeny))
Ha ezeket a fájlokat?
Akkor, amikor minden ilyen fájlok típusától függ a bejelentkezést. A Linux, kétféle kiindulási membránok (login kagyló) - Non-Interactive Interaktív héj és köpeny. Interaktív héjat alkalmaznak, a felhasználó kölcsönhatásba léphet egy héj, azaz például, egy tipikus meghívás bash kéri. A nem interaktív héjat alkalmaznak, amikor a felhasználó nem tud kölcsönhatásba lépni a héj, azaz végrehajtását bash-script.
A különbség egyszerű: az / etc / profile végrehajtása csak interaktív kagyló, és az / etc / bashrc - mind interaktív és nem interaktív. Tény, hogy az Ubuntu / etc / profile az / etc / bashrc közvetlenül.
Interaktív héj és nem interaktív shell: A Összehasonlítás
Összehasonlítani a példáját interaktív és nem interaktív shell, hozzáteszem a változó mindkét fájl / etc / profile és /etc/bash.bashrc az Ubuntu.
interaktív shell
Az alábbiakban egy példát egy interaktív héj. Ebben az esetben mind a / etc / profile és /etc/bash.bashrc végeztünk.
A nem interaktív shell
Ebben a példában mi végre a parancsot SSH-n keresztül shell, amely egy nem-interaktív; mivel ez egy nem interaktív shell végrehajtása csak /etc/bash.bashrc fájlt.
következtetés
Az én esetemben, az alkalmazás nem ismeri az értékét umask. meghatározott az / etc / profile. de elismeri az érték az / etc / bashrc. Ez arra utal, hogy az al folyamat kezdődik, mint egy nem interaktív héj. Mivel a javasolt módszer, ha a környezeti változókat, hogy adjunk egy shell script /etc/profile.d. az én esetemben ez jobb beállítani az umask a / etc / bashrc.