Mi a ' különbség a / sbin / nologin és / bin / false

Technikailag, hacsak pam úgy van beállítva, hogy ellenőrizze a héját a pam_shells funkcióval, és ezek sem akadályozhatják a bejelentkezést, ha nem vagy a héjban. még különböző méretűek is, ezért gyanítom, hogy valóban csinálnak valamit. Tehát mi a különbség? miért léteznek mindketten? Miért használnám az egyiket a másik felett?

-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 

Megjegyzések

Válasz

Amikor /sbin/nologin van beállítva héjként, ha a felhasználó A shell bejelentkezésével “udvarias üzenetet kapnak:” Ez a fiók jelenleg nem érhető el. “Ez az üzenet a /etc/nologin.txt fájllal módosítható.

/bin/false csak egy bináris fájl, amely azonnal kilép, hamis eredményt ad vissza, amikor hívják, tehát amikor valaki, akinek false van a héjnaplója be, akkor azonnal kijelentkeznek, amikor false kilép. A héj /bin/true értékre állításával ugyanez a hatás nem engedélyezi, hogy valaki bejelentkezzen de a false valószínűleg egyezményként használatos a true felett, mivel sokkal jobb a Az a fogalom közvetítése, hogy az embernek nincs héja.

A nologin “man oldalát nézve azt mondja, hogy 4.4 BSD-ben (1990-es évek elején) jött létre. ), tehát jóval azután történt, hogy létrehozták a false -et. Az false használata shellként valószínűleg csak egy konvenció, amelyet a UNIX korai napjaiból vettek át.

nologin a felhasználóbarátabb opció, testreszabható üzenettel, amelyet a felhasználó megpróbál bejelentkezni, ezért elméletileg ezt szeretné használni; de a nologin és a false mindkettőnek ugyanaz a végeredménye lesz, ha valakinek nincs héja és nem tud bejutni.

Megjegyzések

  • /usr/sbin/nologin Debian alapú terjesztésekhez.
  • Legalább a BSD implementáció is naplózza a bejelentkezés megkísérli a syslog beírását az opensource.apple.com/source/system_cmds/system_cmds-735/… részben látható módon. , míg a / bin / false nem akarna ‘ t semmit sem naplózni
  • EZ – Elképesztő válasz, itt nagyszerű történelem van bemutatva. Jól sikerült Mark!
  • Az /etc/nologin.txt egyéni üzenet szolgáltatás nem érhető el az Ubuntuban.

Válasz

Néhány FTP-kiszolgáló csak akkor engedélyezi az FTP-hozzáférést, ha van érvényes héja. A /sbin/nologin érvényes héjnak tekinthető, míg a /bin/false nem.

(Szerintem az “érvényes” azt jelenti, hogy a kilépési állapot 0, de /etc/shells is beléphet, valószínűleg a rendszertől, az FTP szoftvertől és a konfigurációtól függ.)

Megjegyzések

  • igen, hogy ‘ valószínűleg az ftp program része a pam használatával, és pam a pam_shells használatával, ami, ahogy mondtad, ellenőrzi a /etc/shells. Csak egy tipp … tévedhetek.
  • Most ellenőriztem az Ubuntu 8.04-et és a 14.04-et is. A nologin parancs a hamishoz hasonló 1-es státusszal lép ki, és az true, false vagy nologin egyikét sem tartalmazza az / etc / shell. Ha igen, akkor a felhasználó a chsh segítségével kiválaszthatja az ilyen héjat, és bezárhatja magát a fiókjából.

Válasz

/bin/false egy olyan rendszerparancs, amelyet bármikor használnak, amikor át kell adnia egy parancsot egy programnak, amelynek semmi mást nem szabad tennie, csak hibával lépnie. Ez a /bin/true társa. Mindkettő nagyon régi és szabványos POSIX segédprogram, és definíció szerint egyik sem hoz létre kimenetet.Az true értéket néha olyan shell szkripthez használják, amelynek a végtelenségig kell ciklusba lépnie, például:

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

/usr/sbin/nologin kifejezetten cserélje le a héjat, és kimenetet hoz létre, panaszkodva, hogy “nem lehet bejelentkezni. Mielőtt létezett volna, a /bin/false -t használták a próbabábu felhasználók számára, de zavaró lehet, mivel a felhasználó nem” t ” tudja, miért indultak újra.

Megjegyzések

  • érdemes megjegyezni, hogy /bin/true és /bin/false nem mindig az, amit kapsz egy shell szkriptben. A zsh true és a false beépítettek, ahol bash a /bin/* verziókat

használja.

Válasz

A gépemen a nologin mindig ugyanazt az üzenetet jeleníti meg angolul, figyelmen kívül hagyva az argumentumokat . /bin/false válaszol --version és --help a $LC_CTYPE által jelzett nyelven. Ezektől a kozmetikai különbségektől eltekintve ugyanaz a hatásuk.

Felhasználhatósági szempontból jobb, ha nologin jobb, ha valódi személy számlájára használják, aki angolul beszél. Biztonsági szempontból nincs különbség.

Megjegyzések

  • talán false inkább azoknak a rendszerfiókoknak szól, amelyeknek nincs valódi felhasználója, és a nologin a letiltott fiókoké.
  • Mi az operációs rendszered? Centos nologin verzió nem tartalmaz argumentumokat, de képes olvasni az üzenetet a következőből: /etc/nologin.txt.

Válasz

A linuxon a /sbin/nologin a util-linux projektből származik, míg a /bin/false a GNU Coreutils része. Különböző szerepeket töltenek be, és a nologin lehetősége van üzenetet nyomtatni azok számára, akik mint a shelljük, akik bejelentkeznek D, ahol úgy tűnik, hogy régóta vannak különbözőek. A FreeBSD false egyszerűen 1-t ad vissza, míg a nologin győződjön meg róla, hogy “s TTY-n fut, és a bejelentkezési kísérletek során üzenetet küld a syslogba. A linuxos verziók valamivel bonyolultabbak (false mindenféle szórakoztató dolgot nemzetközivé téve a –help kimenetére), de lényegében ugyanúgy teljesít.

Válasz

/ bin / hamis feladat csak az, hogy kilépjen nulla értékű kilépési kóddal.

Próbálja ki a parancssorban:

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

Egyes intézmények a / bin / false parancsot használják a jelszófájl shell mezőjében. Ha a felhasználó megpróbál bejelentkezni, a shell / bin / false, ezért azonnal kilépnek

Válasz

Lehet, hogy ugyanaz a program, de különböző jelentése van. A program neve mindent elmond.

    / bin / false hamis érték visszaadására szolgál programként fut.

  • / bin / nologin célja, hogy jelezze a felhasználó számára, hogy nem engedélyezett bejelentkezés egy fiókhoz. (Bejelentkezési héjat használ.)

Válasz

Mindkettő nagyjából ugyanazt a munkát végzi, de /bin/false nem privilegizált felhasználók számára hasznos. Másrészt a /sbin/nologin privilegizált felhasználóknak szól.

Megjegyzések

  • Ó, hogy sikerült erre a következtetésre jutott?
  • Valószínűleg belenézett /etc/passwd. Most néztem át egy frissen telepített Debian szakasz /etc/passwd jét. Ebben a mezőben szinte az összes rendszerfiók (felhasználói azonosító < 1000) /usr/sbin/nologin mint shell, néhány kivételtől eltekintve. Felhívjuk figyelmét, hogy nem értek egyet a @pythondetective ‘ válaszával. Csak arra tippelek, mi vezethetett erre a következtetésre. A megjegyzésem azonban kissé elkésett.
  • nem! az alapértelmezett bejelentkezési shell nem azonos a privilégiumokkal.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük