Hva ' er forskjellen mellom / sbin / nologin og / bin / false

Teknisk, med mindre pam er satt opp for å sjekke skallet ditt med pam_shells ingen av disse kan faktisk forhindre påloggingen din, hvis du ikke er på skallet. de har til og med forskjellige størrelser, så jeg mistenker at de faktisk gjør noe. Så hva er forskjellen? hvorfor eksisterer de begge? Hvorfor skulle jeg bruke hverandre?

-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 

Kommentarer

Svar

Når /sbin/nologin er satt som skall, hvis bruker med at skallet logger på, får de en høflig melding som sier «Denne kontoen er for øyeblikket ikke tilgjengelig.» Denne meldingen kan endres med filen /etc/nologin.txt.

/bin/false er bare en binær som umiddelbart går ut, og returnerer falsk når den heter, så når noen som har false som skalllogger i, de «logges umiddelbart ut når false går ut. Hvis du setter skallet til /bin/true, har den samme effekten av at ikke noen kan logge på men false brukes sannsynligvis som en konvensjon over true siden det er mye bedre a t formidle konseptet om at personen ikke har et skall.

Ser man på nologin «s mannsside, står det at den ble opprettet i 4.4 BSD (tidlig på 1990-tallet) ) så det kom lenge etter at false ble opprettet. Bruk av false som et skall er sannsynligvis bare en konvensjon som ble overført fra de tidlige dagene av UNIX.

nologin er det mer brukervennlige alternativet, med en tilpassbar melding gitt til brukeren som prøver å logge på, så du vil teoretisk sett bruke den; men både nologin og false vil ha det samme sluttresultatet av at noen ikke har et skall og ikke kan ssh inn.

Kommentarer

  • /usr/sbin/nologin for Debian-baserte distribusjoner.
  • I det minste logges også BSD-implementering påloggingen prøver å syslog som sett i opensource.apple.com/source/system_cmds/system_cmds-735/… , mens / bin / false ikke ville ‘ t logge noe
  • DETTE – Er et fantastisk svar, med stor historie presentert her. Vel gjort Mark!
  • /etc/nologin.txt egendefinerte meldingsfunksjon er ikke tilgjengelig i Ubuntu.

Svar

Noen FTP-servere gir deg bare FTP-tilgang hvis du har et gyldig skall. /sbin/nologin betraktes som et gyldig skall, mens /bin/false ikke er det.

(jeg tror «gyldig» betyr dens exit-status er 0, men /etc/shells kan også komme inn i den, det avhenger sannsynligvis av systemet, FTP-programvaren og konfigurasjonen din.)

Kommentarer

  • ja, at ‘ sannsynligvis er en del av ftp-programmet ved hjelp av pam, og pam ved hjelp av pam_shells som som du sjekker /etc/shells. Bare en gjetning … Jeg kan ta feil.
  • Jeg sjekket bare både Ubuntu 8.04 og 14.04. Nologin-kommandoen går ut med status 1 som falsk, og ingen av true, false eller nologin er inkludert i / etc / shell. Hvis de var det, kunne en bruker bruke chsh til å velge et slikt skall og låse seg utenfor kontoen sin.

Svar

/bin/false er en systemkommando som brukes når som helst du trenger å sende en kommando til et program som ikke skal gjøre annet enn å avslutte med en feil. Det er følgesvennen til /bin/true. Begge disse er veldig gamle og standard POSIX-verktøy og gir heller ikke noe output per definisjon.true brukes noen ganger for et skallskript som skal løkke på ubestemt tid, som:

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

/usr/sbin/nologin er spesielt designet for erstatte et skall og produserer utdata som klager på at du ikke kan logge på. Før det eksisterte, var det vanlig å bruke /bin/false for dummybrukere, men det kan være forvirrende siden brukeren ikke «t vet hvorfor de «startet.»

Kommentarer

  • verdt å merke seg at /bin/true og /bin/false er ikke alltid det du får i et skallskript. I zsh true og false er innebygde, der bash bruker /bin/* versjoner

Svar

På maskinen min viser nologin alltid den samme meldingen, på engelsk, og ignorerer argumenter . /bin/false svarer på --version og --help på språket angitt av $LC_CTYPE. Bortsett fra disse kosmetiske forskjellene, har de samme effekt.

Brukervennlig, nologin er bedre hvis det brukes på kontoen til en ekte person som snakker engelsk. Sikkerhetsmessig er det ingen forskjell.

Kommentarer

  • virker som false er mer for systemkontoer som ikke har noen reell bruker, og nologin er for deaktiverte kontoer.
  • Hva er operativsystemet ditt? Centos nologin -versjonen tar ingen argumenter, men kan lese melding fra /etc/nologin.txt.

Svar

På linux kommer /sbin/nologin fra util-linux -prosjektet, mens /bin/false er en del av GNU Coreutils . De har forskjellige roller, og nologin har muligheten til å skrive ut en melding for folk som har det som skallet deres som logger på. Linux-kommandoene kommer fra BS D, hvor de ser ut til å ha en lang historie med å være forskjellige. FreeBSD false returnerer ganske enkelt 1 , mens nologin sjekker til sørg for at den «s kjører på en TTY og sender en melding til syslog under påloggingsforsøk. Linux-versjonene er litt mer kompliserte (false gjør alle mulige morsomme ting med internasjonalisering for produksjonen av –help antar jeg), men utfører egentlig på samme måte.

Svar

/ bin / false eneste jobb er å avslutte med en utgangskode som ikke er null.

Prøv den på kommandolinjen:

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

Noen institusjoner bruker / bin / false i skallfeltet i passordfilen. Hvis brukeren prøver å logge inn, er skallet / bin / false, så de avsluttes med en gang

Svar

De kan være det samme programmet, men de har forskjellige betydninger. Programmets navn forteller alt.

  • / bin / false er ment å gi en falsk verdi kjøres som program.
  • / bin / nologin er ment å indikere til brukeren at ingen innlogging er tillatt for en konto. (Det brukes et påloggingsskall.)

Svar

Begge gjør mer eller mindre den samme jobben, men /bin/false er nyttig for ikke-privilegerte brukere. På den annen side er /sbin/nologin for privilegerte brukere.

Kommentarer

  • Å, hvordan gjorde du komme til den konklusjonen?
  • Sannsynligvis har han sett på /etc/passwd. Jeg så bare på /etc/passwd av en nyinstallert Debian-strekning. I denne boksen har nesten alle systemkontoer (bruker-ID < 1000) /usr/sbin/nologin som skall, med noen få unntak. Vær oppmerksom på at jeg ikke er enig med @pythondetective ‘ s svar. Jeg spekulerer bare i hva som kan ha ført ham til denne konklusjonen. Kommentaren min er imidlertid litt sen.
  • nei! standard påloggingsskall er ikke det samme som privilegier.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *