Mikä ' erottaa / sbin / nologin ja / bin / false

Teknisesti, ellei pam on määritetty tarkistamaan komentotulkki pam_shells -toiminnolla. Kumpikaan näistä ei voi estää kirjautumistasi, jos et ole kuoressa. ne ovat jopa erikokoisia, joten epäilen heidän tekevän jotain. Joten mikä ero on? miksi he molemmat ovat olemassa? Miksi käytän toisiaan?

-rwxr-xr-x 1 root root 21K Feb 4 17:01 /bin/false -rwxr-xr-x 1 root root 4.7K Mar 2 14:59 /sbin/nologin 

Kommentit

vastaus

Kun /sbin/nologin on asetettu kuoreksi, jos käyttäjä Kun kuori kirjautuu sisään, he saavat kohteliaan viestin, jonka mukaan ”Tätä tiliä ei ole tällä hetkellä saatavilla.” Tätä viestiä voidaan muuttaa tiedostolla /etc/nologin.txt.

/bin/false on vain binääri, joka välittömästi poistuu ja palauttaa epätosi, kun sitä kutsutaan, eli kun joku, jolla on false kuorilokeina sisään, he ”kirjautuvat heti ulos, kun false poistuu. Jos kuoren arvoksi asetetaan /bin/true, sama vaikutus on, että ei sallita jonkun kirjautua sisään mutta false käytetään todennäköisesti käytäntönä true, koska se on paljon parempi Välittämättä käsitettä kyseisellä henkilöllä ei ole kuorta.

Tarkasteltaessa nologin ”-sivua sanotaan, että se luotiin 4.4 BSD: ssä (1990-luvun alku) ), joten se tuli kauan sen jälkeen, kun false luotiin. false -sovelluksen käyttö kuorena on todennäköisesti vain yleissopimus, joka on siirretty UNIX: n alkuaikoista.

nologin on käyttäjäystävällisempi vaihtoehto, jossa mukautettava viesti annetaan käyttäjälle, joka yrittää kirjautua sisään, joten teoreettisesti haluat käyttää sitä; mutta sekä nologin että false tuloksilla on sama lopputulos, jos jollakin ei ole kuorta eikä hän voi ssh: ää sisään.

Kommentit

  • /usr/sbin/nologin Debian-pohjaisiin jakeluihin.
  • Ainakin BSD-toteutus kirjaa sisäänkirjautumisyritys yrittää syslogia opensource.apple.com/source/system_cmds/system_cmds-735/… mukaisesti , kun taas / bin / false ei ’ t kirjaa mitään
  • TÄMÄ – Tämä on hämmästyttävä vastaus, jossa on esitetty suuri historia. Hyvin tehty Mark!
  • /etc/nologin.txt mukautettu viestiominaisuus ei ole käytettävissä Ubuntussa.

Vastaa

Jotkut FTP-palvelimet sallivat FTP-pääsyn vain, jos sinulla on kelvollinen kuori. /sbin/nologin katsotaan kelvolliseksi kuoreksi, kun taas /bin/false ei.

(Mielestäni ”kelvollinen” tarkoittaa sen exit-tila on 0, mutta siihen voi tulla myös /etc/shells, se riippuu todennäköisesti järjestelmästä, FTP-ohjelmistosta ja kokoonpanostasi.)

Kommentit

  • joo, että ’ on luultavasti osa ftp-ohjelmaa, jossa käytetään pamia, ja pam käyttäen pam_shells, joka, kuten sanoit, tarkistaa /etc/shells. Vain arvaus … Voisin olla väärässä.
  • Tarkistin juuri sekä Ubuntu 8.04: n että 14.04: n. Nologiinikomento poistuu tilasta 1, joka on samanlainen kuin epätosi, eikä yhtään tosi, väärä tai nologiini sisälly / etc / shell-tiedostoihin. Jos ne olisivat, käyttäjä voisi käyttää chsh: tä valitakseen tällaisen kuoren ja lukkiutua tililleen.

Vastaa

/bin/false on järjestelmäkomento, jota käytetään milloin tahansa, kun sinun on välitettävä komento ohjelmalle, jonka pitäisi tehdä muuta kuin poistua virheellä. Se on kumppani /bin/true. Molemmat ovat hyvin vanhoja ja tavallisia POSIX-apuohjelmia, eivätkä kumpikaan tuota mitään määritelmää.true-arvoa käytetään joskus komentosarjakomentosarjaan, jonka pitäisi silmukata loputtomasti, kuten:

while true; do ... # Waste time if [ $wasted_time -gt 100000 ]; then exit 0 fi ... done 

/usr/sbin/nologin on suunniteltu erityisesti korvaa kuori ja tuottaa tuloksen valittamalla, et voi ”kirjautua sisään. Ennen kuin sitä oli olemassa, oli tavallista käyttää /bin/false nuken käyttäjille, mutta se voi olla hämmentävää, koska käyttäjä ei t tiedä miksi heidät aloitettiin.

Kommentit

  • syytä huomata, että /bin/true ja /bin/false eivät aina ole sitä, mitä saat komentosarjakomentosarjassa. zsh true ja false ovat sisäänrakennettuja tiedostoja, joissa bash käyttää /bin/* -versioita

vastaus

Koneellani nologin näyttää aina saman viestin englanniksi, välittämättä argumentit . /bin/false vastaa --version ja --help kielellä, joka on merkitty $LC_CTYPE. Näiden kosmeettisten erojen lisäksi niillä on sama vaikutus.

Käytettävyyden kannalta nologin on parempi, jos sitä käytetään todellisen henkilön tilillä, joka puhuu englantia. Turvallisuuden kannalta ei ole eroa.

Kommentit

  • näyttää ehkä false on enemmän järjestelmätileille, joilla ei ole todellista käyttäjää, ja nologin on käytöstä poistetuille tileille.
  • Mikä on käyttöjärjestelmäsi? Centos nologin -versiossa ei ole argumentteja, mutta se voi lukea viestin osoitteesta /etc/nologin.txt.

Vastaa

Linuxissa /sbin/nologin tulee util-linux -projektista, kun taas /bin/false on osa GNU Coreutilsia . Niillä on erilaisia rooleja, ja nologinilla on mahdollisuus tulostaa viesti ihmisille, joilla on Se on heidän kuorensa, jotka kirjautuvat sisään. Linux-komennot tulevat BS: ltä D, jossa heillä näyttää olevan pitkä historia erilaisuudesta. FreeBSD false palauttaa yksinkertaisesti arvon 1 , kun taas nologin tarkistaa varmista, että se ”s toimii TTY: llä ja lähettää viestin syslogiin kirjautumisyritysten aikana. Linux-versiot ovat hieman monimutkaisempia (false tekee kaikenlaisia hauskoja juttuja kansainvälistämällä –help -tuotteen, oletan), mutta suorittaen samalla tavalla.

Vastaa

/ bin / false työ on poistua ei-nollakoodilla.

Kokeile komentorivillä:

$:> /bin/false $:> echo $? 1 $:> 

Jotkut organisaatiot käyttävät salasanatiedoston shell-kentässä / bin / false. Jos käyttäjä yrittää kirjautua sisään, komentotulkki on / bin / false, joten he poistuvat heti

vastaus

Ne voivat olla sama ohjelma, mutta niillä on erilaiset merkitykset. Ohjelman nimi kertoo kaiken.

  • / bin / false on tarkoitettu palauttamaan väärän arvon suoritetaan ohjelmana.
  • / bin / nologin on tarkoitettu osoittamaan käyttäjälle, että sisäänkirjautuminen ei ole sallittua tilille. (Sitä käytetään kirjautumislomakkeella.)

Vastaa

Molemmat tekevät suunnilleen saman työn, mutta /bin/false on hyödyllinen muille kuin etuoikeutetuille käyttäjille. Toisaalta /sbin/nologin on tarkoitettu etuoikeutetuille käyttäjille.

Kommentit

  • Voi, miten sinä tullut siihen johtopäätökseen?
  • Luultavasti hän on tutkinut /etc/passwd. Tarkistin juuri äskettäin asennetun Debian-osan /etc/passwd. Tässä ruudussa lähes kaikilla järjestelmätileillä (käyttäjätunnukset < 1000) on /usr/sbin/nologin kuorena muutamia poikkeuksia lukuun ottamatta. Huomaa, että en ole samaa mieltä @pythondetective ’ -vastauksen kanssa. Spekuloin vain, mikä on saattanut johtaa hänet tähän johtopäätökseen. Kommenttini on kuitenkin hieman myöhässä.
  • ei! oletuskirjautumisen kuori ei ole sama kuin käyttöoikeudet.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *