Oletustulkin muuttaminen Linuxissa
yleiskatsaus
interaktiivinen tulkki lukee komentoja käyttäjän syötöstä tty-päätteellä. Kutsumme interaktiivista komentotulkkia käyttäjän onnistuneen kirjautumisen jälkeen oletusarvoiseksi komentotulkiksi tai login shelliksi.
tässä opetusohjelmassa keskustellaan siitä, miten käyttäjän oletustulkin voi muuttaa.
Johdatus chsh-komentoon
chsh — komento toimitetaan util-linux-paketin mukana-vakiopaketti, joka on saatavilla kaikille Linux-distroille.
käyttämällä chsh-komentoa-l-valinnalla voimme luetella nykyiseen järjestelmään asennetut kuoret:
$ chsh -l/bin/sh/bin/bash/bin/zsh/usr/bin/zsh/usr/bin/git-shell
chsh-komennon yleisempi käyttö on käyttäjän oletustulkin muuttaminen.
käsittelemme sitä myöhemmin.
Mitä Kuorta Käytän Tällä Hetkellä?
onnistuneen kirjautumisen jälkeen olemme oletusarvoisella komentotulkillamme.
ennen kuin puhumme oletustulkin muuttamisesta, opetellaan ensin pari tapaa selvittää, mitä komentotulkkia tällä hetkellä käytämme.
yksi tapa on lukea järjestelmäympäristö $SHELL, joka tallentaa käynnissä olevan komentotulkin:
kent$ echo $SHELL/bin/zsh
kuten yllä oleva esimerkki osoittaa, nykyisen kirjautumiskäyttäjäni käynnissä oleva komentotulkki on Zsh.
vaihtoehtoisesti voimme tuntea nykyisen käynnissä olevan komentotulkin tutkimalla sen prosessitietoja. Linux tallentaa käynnissä olevan komentotulkin PID: n erikoismuuttujassa $$:
kent$ echo $3492
yllä olevassa esimerkissä prosessi PID 153492: lla olisi nykyinen kuoriprosessi. Voimme saada yksityiskohtaista tietoa prosessista käyttämällä ps-komentoa – p-valitsimella:
kent$ ps -p $$ PID TTY TIME CMD 153492 pts/2 00:00:00 zsh
lähtö kertoo, että Zsh on nykyinen komentotulkkimme.
nykyisen käyttäjän Oletustulkin muuttaminen
jos haluamme muuttaa nykyisen kirjautumiskäyttäjän oletustulkkia, voimme suorittaa chsh-komennon-s <NEW_SHELL> – valinnalla.
muutetaan nykyisen käyttäjän oletustulkki Bashiksi:
kent$ chsh -s /bin/bashChanging shell for kent.Password: Shell changed.
on syytä mainita, että kun oletustulkki on muutettu onnistuneesti, käynnissä olevaa komentotulkkia ei muuteta. Esimerkiksi, olemme asettaneet bash oletuksena kuori käyttäjä kent, mutta nykyinen kuori on edelleen Zsh:
kent$ ps -p $$ PID TTY TIME CMD 153492 pts/2 00:00:00 zsh
Uusi oletustulkki tulee voimaan seuraavan kerran, kun kirjaudumme sisään käyttäjän Kentin kanssa.
oletuskomento on välttämätön käyttäjien kirjautumisessa. Jos komento on virheellinen, meillä on vaikeuksia kirjautua sisään käyttäjän kanssa.
siksi, kun muutamme oletuspöytää, chsh-komento tarkistaa, onko annettu komentotulkki voimassa.
katsotaan, mitä tapahtuu, jos ohitamme kelvottoman polun chsh-komennolle:
kent$ chsh -s /bin/bashhhhChanging shell for kent.Password: chsh: "/bin/bashhhh" does not exist
olemme oppineet, että chsh-komento voi luetella järjestelmään asennetut kuoret.
chsh-komento kieltäytyy muuttamasta oletuspöytää, jos annettu komentotulkki ei ole järjestelmän kelvollisten komentotulkkien luettelossa:
kent$ chsh -s /usr/bin/catChanging shell for kent.Password: chsh: "/usr/bin/cat" is not listed in /etc/shells.Use chsh -l to see list.
yllä olevassa esimerkissä yritimme asettaa /usr/bin / cat-komennon käyttäjän Kentin oletusarvoiseksi komentotulkiksi.
cat-komentopolku on kelvollinen. Se ei kuitenkaan ole komentotulkkilistalla. Siksi chsh keskeytti vastaavan virheilmoituksen ja vihjeen.
muiden käyttäjien Oletustulkin muuttaminen
tähän mennessä olemme oppineet käyttämään chsh-komentoa nykyisen kirjautumiskäyttäjän oletustulkin muuttamiseen.
voimme myös muuttaa chsh-komennolla muiden käyttäjien oletustulkkia, mutta tarvitsemme pääkäyttäjän luvan siihen.
syntaksi on melko suoraviivainen:
root# chsh -s NEW_SHELL USERNAME
tällä kertaa kirjaudumme pääkäyttäjäksi ja muutamme käyttäjän Kent oletuskuoren muotoon / bin / sh:
root# chsh -s /bin/sh kent Changing shell for kent.Shell changed.
nyt, kirjaudutaan uudelleen käyttäjän kent ja tarkista, jos oletus komentotulkki muutettiin onnistuneesti:
sh-5.1$ echo $SHELL/bin/sh
kuten yllä olevasta tulosteesta käy ilmi, käyttäjän Kentin oletustulkki on nyt /bin / sh.
muokkaamalla /etc/passwd-tiedostoa
olemme oppineet käyttämään chsh-komentoa käyttäjän oletustulkin muuttamiseen. Vaihtoehtoisesti voimme tehdä sen myös muokkaamalla/etc / passwd-tiedostoa.
Linuxissa/etc / passwd-tiedosto on pelkkä tekstitiedosto. Se tallentaa käyttäjätilitietoja, joita tarvitaan käyttäjän kirjautumisen aikana:
-rw-r--r-- 1 root root 2.1K Mar 12 10:27 /etc/passwd
jos katsomme sen käyttöoikeuslippuja, näemme, että kaikki käyttäjät voivat lukea sen, mutta vain pääkäyttäjä saa kirjoittaa osoitteeseen /etc/passwd.
tarkistetaan /etc / passwd-tiedoston sisältö:
kent$ cat /etc/passwdroot:x:0:0:root:/root:/bin/zshbin:x:1:1:bin:/bin:/bin/false...kent:x:1000:1000::/home/kent:/bin/zshguest:x:1001:1001::/home/guest:/bin/zsh...cups:x:209:209:cups helper user:/:/sbin/nologin...
tiedoston jokainen rivi tallentaa käyttäjän tilitiedot. Tietueessa olevat kentät on erotettu toisistaan coloneilla.
tietue sisältää käyttäjän tilitietoja, kuten muun muassa käyttäjätunnuksen, UID: n, GID: n ja kotihakemiston. Viimeinen kenttä ilmaisee käyttäjän oletustulkin.
jos muutamme /etc/passwd-tiedoston oletuskenttää, se tulee voimaan, kun käyttäjä seuraavan kerran kirjautuu järjestelmään.
yksi etu /etc/passwd-tiedoston muokkaamisessa on se, että voimme muuttaa useiden käyttäjien oletustulppia yhdellä otoksella. Joskus tämä voi olla aika kätevää.
on kuitenkin syytä pitää mielessä, että kun Tallennamme /etc/passwd-tiedoston, muuttuneille oletuskuorille ei tapahdu vahvistusta tai vahvistusta.
siksi meidän on varmistettava, että olemme antaneet kelvolliset komentoradat. Muussa tapauksessa käyttäjällä on ongelma kirjautua järjestelmään seuraavan kerran.
johtopäätös
tässä nopeassa artikkelissa olemme oppineet muuttamaan käyttäjän oletuspäällystä esimerkkien kautta.
chsh-komento on melko suoraviivainen tehtävään. Lisäksi se voi tarkistaa, onko annettu kuori voimassa järjestelmässä.
jos haluamme muuttaa muun käyttäjän kuin nykyisen sisäänkirjautumisen oletustulkin, meidän on suoritettava chsh-komento pääkäyttäjän luvalla.
edelleen, jos voimme kirjautua pääkäyttäjäksi, voimme myös muuttaa useiden käyttäjien oletuskuorta muokkaamalla suoraan/etc / passwd-tiedostoa.