Recentemente ho trovato un articolo di questo tipo: . Vorrei condividere la mia opinione sui standard.
/bin
Contiene comandi che possono essere utilizzati sia dagli amministratori di sistema che dagli utenti, ma che sono necessari quando nessun altro filesystem è montato (ad esempio, in modalità singolo utente). Può anche contenere comandi che sono utilizzati indirettamente dagli script.
Qui ci si aspetta la presenza dei seguenti comandi:
cat, chgrp, chmod, chown, cp, date, dd, df, dmesg, echo, false, hostname, kill, ln, accesso, ls, mkdir, mknod, more, mount, mv, ps, pwd, rm, rmdir, sed, sh, stty, su, sync, true, umount, uname.
È possibile creare symlink su /usr, ma sebbene ai tempi di systemd /usr non sia presente su un dispositivo separato, potrebbe ancora trovarsi in un sistema embedded, in un semaforo, in un macinacaffè e in un PDP-11 che serve un dispositivo importante in uno dei laboratori dell'Accademia delle Scienze.
/sbin
Utility utilizzate per l'amministrazione di sistema (e altri comandi solo per root), /sbin contiene file binari necessari per l'avvio, il ripristino e/o il recupero del sistema, oltre ai file binari in /bin. I programmi eseguiti dopo che /usr è montato (quando non ci sono problemi) sono solitamente collocati in /usr/sbin. I programmi di amministrazione di sistema installati localmente dovrebbero essere collocati in /usr/local/sbin.
Attesi:
fastboot, fasthalt, fdisk, fsck, getty, halt, ifconfig, init, mkfs, mkswap, reboot, route, swapon, swapoff, update.
Uno dei modi per proteggere il sistema da mani indolenti è vietare l'esecuzione di queste utility a chiunque, impostando l'attributo x.
Inoltre, sostituire /bin e /sbin con copie da un archivio (identico per tutti i sistemi omogenei) è un modo veloce per riparare i sistemi senza un gestore di pacchetti.
/usr/bin
Qui tutto è semplice. Comandi omogenei, identici per tutti i server/macchine da caffè dell'azienda. Inoltre, /usr può essere distribuito in modo identico per diversi sistemi operativi (per /bin e /sbin questo di solito non funziona), poiché si tratta di programmi indipendenti dall'architettura. Può contenere collegamenti a interpreti perl o python che si trovano in /opt o altrove nella rete.
/usr/sbin
È lo stesso di /usr/bin, ma destinato solo all'uso degli amministratori.
/usr/local/bin и /usr/local/sbin
Una delle posizioni più importanti. A differenza del resto, /usr non può essere identica per tutta l'organizzazione. Qui si trovano programmi dipendenti dal sistema operativo, dal hardware e semplicemente programmi che non sono necessari su tutti i dispositivi. Durante la sincronizzazione di /usr su macchine, /usr/local deve essere escluso.
/home/$USER/bin
Qui la situazione è analoga a /usr/local, tranne che contiene programmi specifici per un singolo utente. Possono essere trasferiti (o sincronizzati) su un'altra macchina durante il trasferimento dell'utente. Ciò che non può essere trasferito è conservato in /home/$USER/.local/bin. È possibile utilizzare local senza punto. /home/$USER/sbin per motivi ovvi non esiste.
Sarò felice di ricevere correzioni e aggiustamenti.
Fonte: habr.com
