dal 2015 - visita n. 710
Creazione Directories
Creazione Directories

 

Creazione Directories

Prevedendo di dover entrare in chroot più volte ed in tempi diversi, dal momento che l'iter di costruzione del sistema definitivo mi appariva abbastanza lungo, ho realizzato un piccolo script per reimpostare i mount corretti prima di dare il comando chroot.

#!/bin/bash
mount -v --bind /dev $LFS/dev
mount -vt devpts devpts $LFS/dev/pts -o gid=5,mode=620
mount -vt proc proc $LFS/proc
mount -vt sysfs sysfs $LFS/sys
Ho chiamato questo script prechr e l'ho reso eseguibile cambiandone i permessi con:
chmod +x prechr
quindi ad ogni nuova sessione di lavoro (quando trovo il tempo e ne ho voglia), da amministratore, comincio il lavoro nel modo seguente:

A questo punto, dopo essersi posizionati in chroot, occorre preparare alcune strutture nel file-system LFS. Bisogna creare un albero di directory standard inserendo uno ad uno i seguenti comandi:

mkdir -pv /{bin,boot,etc/{opt,sysconfig},home,lib,mnt,opt,run}
mkdir -pv /{media/{floppy,cdrom},sbin,srv,var}
install -dv -m 0750 /root
install -dv -m 1777 /tmp /var/tmp
mkdir -pv /usr/{,local/}{bin,include,lib,sbin,src}
mkdir -pv /usr/{,local/}share/{doc,info,locale,man}
mkdir -v  /usr/{,local/}share/{misc,terminfo,zoneinfo}
mkdir -pv /usr/{,local/}share/man/man{1..8}

Le directory vengono create con il permesso predefinito 755, ma in qualche caso ciò deve essere modificato. Nei comandi precedenti vengono fatti due cambiamenti: uno alla directory home dell'utente root e un altro alle directory per i file temporanei.

Il primo cambiamento di modalità assicura che non tutti possano entrare nella directory /root, la stessa cosa che un utente normale avrebbe fatto con la propria home directory. Il secondo cambio di modalità assicura che tutti gli utenti possano scrivere nelle directory /tmp e /var/tmp, ma non possano rimuovere da queste i file di altri utenti. Quest'ultima operazione è proibita dal cosiddetto sticky bit, il bit più alto nella maschera 1777.

Poi diamo ancora il seguente comando:

for dir in /usr /usr/local; do
  ln -sv share/{man,doc,info} $dir
done
case $(uname -m) in
 x86_64) ln -sv lib /lib64 && ln -sv lib /usr/lib64 && ln -sv lib /usr/local/lib64 ;;
esac

E concludiamo con i seguenti:

mkdir -v /var/{log,mail,spool}
ln -sv /run /var/run
ln -sv /run/lock /var/lock
mkdir -pv /var/{opt,cache,lib/{misc,locate},local}

Nota sulla conformità a FHS
L'albero delle directory si basa sul Filesystem Hierarchy Standard, consultabile su FHS.
Oltre alla gerarchia FHS abbiamo creato dei link simbolici di compatibilitlà per le directory man, doc, info, poiché molti pacchetti cercano ancora di installare la loro documentazione in /usr/<directory> o /usr/local/<directory> invece che in /usr/share/<directory> o /usr/local/share/<directory>.
FHS non obbliga ad una precisa struttura della sottodirectory /usr/local/share, quindi abbiamo creato solo le directory strettamente necessarie. Tuttavia si è liberi di creare queste directory se si preferisce conformarsi più strettamente allo standard FHS.


















Introduzione 0
Prerequisiti 1
Partizioni LFS 2
Pacchetti e Patch 3
Ultimi preparativi 4
Stima dei tempi
Sistema Provvisorio 5
Costruzione Provvisoria
Rifiniture
Sistema Definitivo 6
File System Virtuali
Gestione Pacchetti
Ambiente Chroot
Creazione Directories
Creazione Files e Link
Costruzione Definitiva
Rifiniture Definitive


LinuxFrom Scratch
Beyond LinuxFrom Scratch
Errata Corrige
F.A.Q.
Editor: nano
Shell Bash
Pseudoterminali PTY



Un uomo senza carattere è una balia senza latte, un soldato senz'armi, un viaggiatore senza quattrini.
L.A.Pètiet

Valid CSS!
pagina generata in 0.001 secondi