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
- Katso myös Onko / usr / sbin / nologin sisäänkirjautumisen kuorena tietoturvatarkoitus?
- Olen ’ m utelias miksi / bin / false vie 21 kt koodia palauttamaan ” 1 ” -palautuskoodin! (ja / sbin / nologin vie vain 4,7 kt)
- hyödyllistä lukea. Mikä on ero / sbin / nologin ja / bin / false välillä
- @MarkStewart Hieman liian myöhäistä, mutta haluat ehkä lukea Miksi tosi ja väärä ovat niin suuria? ja pyörremyrskyopetus todella teini-ikäisten ELF-suoritettavien tiedostojen luomisesta Linuxille .
- @nxnev Joo, en ajatellut ’ t ELF: n yleiskustannuksista. Ja vanhoista IBM-päivistäni lähtien oli IEFBR14-ohjelma, joka oli yksinkertainen op-koodin kokoonpano-ohje: BR 14 – Haara rekisteröidyksi 14, joka lopettaa ohjelman palautuskoodilla, joka on asetettu rekisteriin 14!
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
jafalse
ovat sisäänrakennettuja tiedostoja, joissabash
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ää, janologin
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.