Wat is ' het verschil tussen / sbin / nologin en / bin / false

Technisch gezien, tenzij pam is ingesteld om je shell te controleren met pam_shells geen van beide kan je login verhinderen, als je niet in de shell zit. Op mijn systeem ze hebben zelfs verschillende maten, dus ik vermoed dat ze echt iets doen. Dus wat is het verschil? waarom bestaan ze allebei? Waarom zou ik de ene boven de andere gebruiken?

-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 

Reacties

Antwoord

Wanneer /sbin/nologin is ingesteld als de shell, als gebruiker wanneer die shell inlogt, krijgen ze een beleefd bericht met de mededeling “Dit account is momenteel niet beschikbaar”. Dit bericht kan worden gewijzigd met het bestand /etc/nologin.txt.

/bin/false is slechts een binair bestand dat onmiddellijk wordt afgesloten en false retourneert wanneer het wordt aangeroepen, dus wanneer iemand false als shell-logs heeft in, worden ze “onmiddellijk uitgelogd wanneer false wordt afgesloten. Het instellen van de shell op /bin/true heeft hetzelfde effect als iemand niet toestaan om in te loggen maar false wordt waarschijnlijk gebruikt als conventie boven true omdat het veel beter is een t overbrengen van het concept dat die persoon geen shell heeft.

Kijkend naar de man-pagina van nologin “, staat er dat deze is gemaakt in 4.4 BSD (begin jaren 90 ) dus het kwam lang nadat false was gemaakt. Het gebruik van false als een shell is waarschijnlijk slechts een conventie die is overgenomen uit de begintijd van UNIX.

nologin is de meer gebruikersvriendelijke optie, met een aanpasbaar bericht dat wordt gegeven aan de gebruiker die probeert in te loggen, dus u zou dat theoretisch willen gebruiken; maar beide nologin en false zullen hetzelfde eindresultaat hebben dat iemand geen shell heeft en niet in staat is om in te sshen.

Reacties

  • /usr/sbin/nologin voor op Debian gebaseerde distributies.
  • Ten minste BSD-implementatie logt ook de login pogingen om syslog te maken zoals gezien in opensource.apple.com/source/system_cmds/system_cmds-735/… , terwijl / bin / false n ‘ niets zou loggen
  • DIT – Is een geweldig antwoord, met een geweldige geschiedenis die hier wordt gepresenteerd. Goed gedaan Mark!
  • De /etc/nologin.txt aangepaste berichtfunctie is niet beschikbaar in Ubuntu.

Antwoord

Sommige FTP-servers staan je alleen FTP-toegang toe als je een geldige shell hebt. /sbin/nologin wordt beschouwd als een geldige shell, terwijl /bin/false dat niet is.

(Ik denk dat “valid” exit-status is 0, maar /etc/shells kan er ook in komen, dit hangt waarschijnlijk af van het systeem, de FTP-software en uw configuratie.)

Opmerkingen

  • ja, dat ‘ maakt waarschijnlijk deel uit van het ftp-programma met pam, en pam met pam_shells die, zoals je zei, /etc/shells. Gewoon een gok … Ik zou het mis kunnen hebben.
  • Ik heb zojuist zowel Ubuntu 8.04 als 14.04 gecontroleerd. Het nologin-commando wordt afgesloten met status 1 vergelijkbaar met false, en geen van true, false of nologin is opgenomen in / etc / shells. Als dat het geval was, zou een gebruiker chsh kunnen gebruiken om zon shell te selecteren en zichzelf van zijn account af te sluiten.

Answer

/bin/false is een systeemcommando dat wordt gebruikt wanneer je een commando moet doorgeven aan een programma dat niets anders zou moeten doen dan afsluiten met een fout. Het is de metgezel van /bin/true. Beide zijn zeer oude en standaard POSIX-hulpprogrammas en produceren per definitie geen enkele uitvoer.true wordt soms gebruikt voor een shellscript dat voor onbepaalde tijd zou moeten doorlopen, zoals:

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

/usr/sbin/nologin is specifiek ontworpen om vervangt een shell en produceert output die klaagt dat je niet kunt inloggen. Voordat het bestond, was het gebruikelijk om /bin/false te gebruiken voor nepgebruikers, maar dit kan verwarrend zijn omdat de gebruiker niet weet waarom ze “zijn afgetrapt.

Reacties

  • vermeldenswaard dat /bin/true en /bin/false zijn niet altijd wat u in een shell-script krijgt. In zsh true en false zijn ingebouwde versies, waarbij bash de /bin/* versies

gebruikt

Answer

Op mijn computer geeft nologin altijd hetzelfde bericht weer, in het Engels, argumenten negerend . /bin/false reageert op --version en --help in de taal aangegeven door $LC_CTYPE. Afgezien van deze cosmetische verschillen, hebben ze hetzelfde effect.

Wat de bruikbaarheid betreft, is nologin beter als het wordt gebruikt voor het account van een echt persoon die spreekt Engels. Veiligheidstechnisch is er geen verschil.

Reacties

  • lijkt misschien false is meer voor systeemaccounts die geen echte gebruiker hebben, en nologin is voor uitgeschakelde accounts.
  • Wat is je besturingssysteem? Centos nologin versie accepteert geen argumenten, maar kan bericht lezen van /etc/nologin.txt.

Antwoord

Op linux komt /sbin/nologin van het util-linux project, terwijl /bin/false maakt deel uit van GNU Coreutils . Ze vervullen verschillende rollen en nologin heeft de mogelijkheid om een bericht af te drukken voor mensen die het als hun shell die inloggen. De linux-commandos komen van BS D, waar ze een lange geschiedenis lijken te hebben van anders zijn. De FreeBSD false retourneert gewoon 1 , terwijl de nologin controleert op zorg ervoor dat “s draait op een TTY en een bericht naar syslog stuurt tijdens inlogpogingen. De linux-versies zijn iets gecompliceerder (false allerlei leuke dingen doen met internationalisering voor de output van –help, neem ik aan) maar in wezen op dezelfde manier presteren.

Antwoord

/ bin / false enige taak is om af te sluiten met een niet-nul afsluitcode.

Probeer het op de opdrachtregel:

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

Sommige instellingen gebruiken / bin / false in het shell-veld van het wachtwoordbestand. Als de gebruiker probeert in te loggen, is de shell / bin / false, dus ze worden meteen afgesloten

Answer

Ze zouden hetzelfde programma kunnen zijn, maar ze hebben verschillende betekenissen. De naam van het programma zegt het allemaal.

  • / bin / false is bedoeld om een false-waarde te retourneren wordt als programma uitgevoerd.
  • / bin / nologin is bedoeld om de gebruiker aan te geven dat inloggen niet is toegestaan voor een account. (Het wordt gebruikt als een login-shell.)

Answer

Beiden doen min of meer hetzelfde werk, maar /bin/false is handig voor niet-geprivilegieerde gebruikers. Aan de andere kant, /sbin/nologin is voor geprivilegieerde gebruikers.

Reacties

  • Oh, hoe heb je tot die conclusie komen?
  • Waarschijnlijk heeft hij /etc/passwd onderzocht. Ik heb zojuist /etc/passwd van een pas geïnstalleerde Debian-stretch bekeken. In dit vak hebben bijna alle systeemaccounts (gebruikers-IDs < 1000) /usr/sbin/nologin als shell, met een paar uitzonderingen. Houd er rekening mee dat ik het niet eens ben met het antwoord van @pythondetective ‘. Ik speculeer slechts wat hem tot deze conclusie zou kunnen hebben geleid. Mijn opmerking is echter een beetje laat.
  • nee! standaard login shell is niet hetzelfde als privileges.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *