Eine weitere Meinung über den Unterschied zwischen bin, sbin, usr/bin, usr/sbin

Vor kurzem habe ich diesen Artikel entdeckt: Der Unterschied zwischen bin, sbin, usr/bin, usr/sbin. Ich möchte meine Sicht auf den Standard teilen.

/bin

Er enthält Befehle, die sowohl von Systemadministratoren als auch von Benutzern verwendet werden können, jedoch notwendig sind, wenn keine anderen Dateisysteme gemountet sind (zum Beispiel im Einzelbenutzermodus). Er kann auch Befehle enthalten, die indirekt von Skripten verwendet werden.

Dort wird das Vorhandensein solcher Befehle erwartet:

cat, chgrp, chmod, chown, cp, date, dd, df, dmesg, echo, false, hostname, kill, ln, login, ls, mkdir, mknod, more, mount, mv, ps, pwd, rm, rmdir, sed, sh, stty, su, sync, true, umount, uname.

Es können Symlinks auf /usr erstellt werden, aber obwohl es zur Zeit von systemd selten ein separates Gerät für /usr gibt, kann es dennoch in eingebetteten Systemen, Ampeln, Kaffeemühlen und einem PDP-11, das ein wichtiges Gerät in einem der Labore der Akademie der Wissenschaften bedient, anzutreffen sein.

/sbin

Die für die Systemadministration verwendeten Dienstprogramme (und andere Befehle nur für root) befinden sich in /sbin, die die für den Start, die Wiederherstellung und/oder Wiederherstellung des Systems notwendigen Binärdateien enthalten, zusätzlich zu den Binärdateien in /bin. Programme, die nach dem Mounten von /usr ausgeführt werden (wenn es keine Probleme gibt), befinden sich normalerweise in /usr/sbin. Lokal installierte Programme zur Systemadministration sollten in /usr/local/sbin abgelegt werden.

Erwartet werden:

fastboot, fasthalt, fdisk, fsck, getty, halt, ifconfig, init, mkfs, mkswap, reboot, route, swapon, swapoff, update.

Eine Möglichkeit, das System vor den ungezogenen Händen der Benutzer zu schützen, besteht darin, den Start dieser Dienstprogramme für Unbefugte zu verbieten, indem das Attribut x gesetzt wird.
Außerdem ist der Austausch von /bin und /sbin gegen Kopien aus dem Archiv (die für alle ähnlichen Systeme gleich sind) eine schnelle Möglichkeit, Systeme ohne Paketmanager zu reparieren.

/usr/bin

Hier ist alles einfach. Gleiche Befehle, die für alle Server/Kaffeemühlen des Unternehmens identisch sind. Und /usr kann sich dieselbe für verschiedene Betriebssysteme entfalten (für /bin und /sbin funktioniert das in der Regel nicht), es handelt sich um architekturunabhängige Programme. Es kann Links auf Perl- oder Python-Interpreter enthalten, die sich in /opt oder anderswo im Netzwerk befinden.

/usr/sbin

Das Gleiche wie /usr/bin, aber nur zur Verwendung durch Administratoren.

/usr/local/bin и /usr/local/sbin

Einer der wichtigsten Orte. Im Gegensatz zu den anderen kann /usr nicht für die gesamte Organisation identisch sein. Hier befinden sich betriebssystemspezifische, hardwareabhängige und einfach Programme, die nicht auf allen Geräten benötigt werden. Bei der Synchronisierung von /usr auf Maschinen muss /usr/local ausgeschlossen werden.

/home/$USER/bin

Hier gibt es einen ähnlichen Fall wie bei /usr/local, nur dass hier Programme liegen, die spezifisch für einen bestimmten Benutzer sind. Man kann sie bei einem Umzug des Benutzers auf eine andere Maschine übertragen (oder synchronisieren). Was nicht übertragen werden kann, befindet sich in /home/$USER/.local/bin. Man kann local auch ohne Punkt verwenden. /home/$USER/sbin fehlt aus nachvollziehbaren Gründen.

Korrekturen und Ergänzungen sind willkommen.

Quelle: habr.com

60GB SSD 8Gb DDR4