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
- Lásd még: Biztonsági célt szolgál az / usr / sbin / nologin, mint bejelentkezési héj?
- kíváncsi vagyok ‘ Miért / bin / false 21k kódot igényel egy ” 1 ” visszatérési kód visszaadásához! (és / sbin / nologin csak 4.7k-ig tart)
- hasznos olvasni. Mi a különbség a / sbin / nologin és a / bin / false között
- @MarkStewart Kicsit későn, de érdemes elolvasni Miért olyan nagyok az igazak és hamisak? és Forgószél oktatóanyag az igazán tizenéves ELF futtatható fájlok létrehozásáról Linux számára .
- @nxnev Igen, nem gondolt ‘ nem az ELF rezsire. A régi IBM-koromtól kezdve létezett egy IEFBR14 program, amely egy egyszerű op-kódos összeszerelési utasítás volt: BR 14 – Fióktelep a 14-es regisztrációhoz, amely a programot a 14-es regisztrációhoz tartozó visszatérési kóddal állítja le!
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. Azsh
true
és afalse
beépítettek, aholbash
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 anologin
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 / 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.