Kürzlich stieß ich auf diesen Artikel: . Hier möchte ich meine Sichtweise zum Standard teilen.
/bin
Enthält Befehle, die sowohl von Systemadministratoren als auch von Benutzern verwendet werden können, jedoch notwendig sind, wenn keine anderen Dateisysteme gemountet sind (z. B. im Einbenutzermodus). Er kann auch Befehle enthalten, die indirekt in Skripten verwendet werden.
Es wird erwartet, dass folgende Befehle vorhanden sind:
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 /usr in Zeiten von systemd nicht auf einem separaten Gerät vorkommt, kann es immer noch in eingebetteten Systemen, Ampeln, Kaffeemühlen und PDP-11, die ein wichtiges Gerät in einem der Institute der Akademie der Wissenschaften betreuen, zu finden sein.
/sbin
Die Tools, die für die Systemadministration verwendet werden (und andere Befehle, die nur für den Root-Benutzer bestimmt sind), befinden sich in /sbin. Diese enthalten die notwendigen Binärdateien für das Booten, Wiederherstellen und/oder Reparieren des Systems, zusätzlich zu den Binärdateien in /bin. Programme, die nach dem Montieren von /usr ausgeführt werden (wenn keine Probleme vorliegen), sind in der Regel in /usr/sbin zu finden. Lokal installierte Programme für die 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 unbefugtem Zugriff zu schützen, besteht darin, die Ausführung dieser Tools für unbefugte Benutzer durch Setzen des Attributs x zu verbieten.
Darüber hinaus ist das Ersetzen von /bin und /sbin durch Kopien aus einem Archiv (das für alle identischen Systeme gleich ist) eine schnelle Möglichkeit, Systeme ohne Paketmanager zu reparieren.
/usr/bin
Hier ist alles einfach. Die gleichen Befehle, identisch für alle Server und Kaffeemühlen des Unternehmens. Das Verzeichnis /usr kann auch für verschiedene Betriebssysteme gleich eingerichtet werden (für /bin und /sbin funktioniert das normalerweise nicht), da es sich um architekturunabhängige Programme handelt. Es kann Links zu Perl- oder Python-Interpretern enthalten, die sich in /opt oder an anderen Stellen im Netzwerk befinden.
/usr/sbin
Das gleiche wie /usr/bin, jedoch nur für die Verwendung durch Administratoren.
/usr/local/bin и /usr/local/sbin
Eine der wichtigsten Standorte. Im Gegensatz zum Rest kann /usr nicht für die gesamte Organisation identisch sein. Hier befinden sich betriebssystemabhängige, hardwareabhängige und einfach Programme, die nicht auf allen Geräten benötigt werden. Bei der Synchronisierung von /usr auf den Maschinen muss /usr/local ausgeschlossen werden.
/home/$USER/bin
Hier handelt es sich um einen ähnlichen Fall wie bei /usr/local, nur dass Programme enthalten sind, die spezifisch für einen bestimmten Benutzer sind. Diese können beim Umzug des Benutzers auf einen anderen Rechner übertragen (oder synchronisiert) werden. Alles, was nicht übertragen werden kann, befindet sich in /home/$USER/.local/bin. Sie können local ohne Punkt verwenden. /home/$USER/sbin ist aus verständlichen Gründen nicht vorhanden.
Ich freue mich über Korrekturen und Ergänzungen.
Quelle: habr.com
