Salve a tutti!! In uno dei post
precedenti abbiamo mostrato i comandi base della shell di Linux, oggi
ne andremo a vedere altri importanti e molto utili, dai permessi sui
file, fino agli utenti, e andremo a vedere come possiamo vedere i processi
in esecuzione sul nostro computer.
INTRODUZIONE
Iniziamo a vedere come sono mostrati i
file sulla nostra shell dando questo comando ad
esempio nella directory /bin:
esempio nella directory /bin:
ls -l /bin
Prendiamo in considerazione la prima
linea:
-rwxr-xr-x 1 root root 975488 set 25
21:49 bash
e vediamo cosa vogliono dire queste
scritte.
All'inizio possiamo vedere -rwxr-xr-x,
il primo carattere indica il tipo di file, e può essere
rappresentato con diverse opzioni:
- file regolare
d directory
l simbolic
link
b block-device
file
c character-device
file
p pipe
s socket
Quindi
in questo caso il file bash è un file regolare.
Gli
altri nove caratteri indicano i permessi sul file e li dividiamo in
blocchi da 3 caratteri in questo modo: rwx | r-x | r-x dove r sta per
lettura del file, w sta per scrittura sul file e x sta per esecuzione
del file.
Il
primo insieme di tre caratteri indica i permessi che ha l'utente
proprietario del file, il secondo insieme indica i permessi che hanno gli
utenti che sono nello stesso gruppo del proprietario del file ed
infine l'ultimo insieme indica i permessi che hanno tutti gli
altri utenti sul file (compreso il proprietario).
Dopo
questa sequenza di caratteri troviamo un numero, che indica il numero
di link al file, poi troviamo il nome del proprietario del file, in
questo caso root, poi troviamo un altro nome che indica il gruppo del
proprietario (che anche in questo caso è root), dopo c'è questo
numero 975488 che indica la dimensione del file in caratteri, poi
troviamo la data di ultima modifica ed infine il nome del file.
CHMOD
CHMOD
Andiamo
ora a modificare i permessi sul file utilizzando il comando chmod.
Come abbiamo visto precedentemente, i permessi sono indicati da tre
gruppi di tre caratteri. Per la modifica dei permessi possiamo
scegliere di farlo in due modi:
la
prima opzione è utilizzare la rappresentazione ottale dei tre
gruppi, vediamo un esempio: supponiamo di avere il seguente file:
-rw-r--r--
1 daniele daniele 5 nov 16 11:54 test
notiamo
che l'utente daniele ha i permessi di lettura e scrittura, ma gli
utenti del suo gruppo no, proviamo ora a dare i permessi di scrittura
anche a loro.
Come prima cosa dobbiamo vedere un singolo insieme come una sequenza di tre bit, dove se troviamo il carattere -, il bit sarà 0 altrimenti se il carattere è r, w o x allora il bit sarà 1, ad esempio rw- sarà 110, mentre r-- sarà 100, quindi se vogliamo passare da r-- a rw- dobbiamo impostare a 1 il bit di w in modo tale che la sequenza sarà 110, e dopo di che convertiamo la cifra in ottale, quindi da 110 abbiamo 6, e applichiamo il ragionamento per tutti e tre gli insiemi.
Come prima cosa dobbiamo vedere un singolo insieme come una sequenza di tre bit, dove se troviamo il carattere -, il bit sarà 0 altrimenti se il carattere è r, w o x allora il bit sarà 1, ad esempio rw- sarà 110, mentre r-- sarà 100, quindi se vogliamo passare da r-- a rw- dobbiamo impostare a 1 il bit di w in modo tale che la sequenza sarà 110, e dopo di che convertiamo la cifra in ottale, quindi da 110 abbiamo 6, e applichiamo il ragionamento per tutti e tre gli insiemi.
Una volta applicato il ragionamento a tutti e tre gli insiemi la
rappresentazione finale in ottale sarà la seguente: 664.
Ora
applichiamo la modifica utilizzando la sequenza in ottale che ci
siamo ricavati in questo modo:
chmod
664 test
ed
effettivamente se andiamo a scrivere ls -l test notiamo questo:
Se la rappresentazione ottale non ci piace, esiste un secondo modo più semplice per modificare i permessi utilizzando i seguenti caratteri u, g e a. Il carattere u sta per utente, g sta per il gruppo dell'utente e a sta per tutti gli utenti. Vediamo degli esempi sul file test:
-rw-rw-r--
1 daniele daniele 5 nov 16 11:54 test
Se la rappresentazione ottale non ci piace, esiste un secondo modo più semplice per modificare i permessi utilizzando i seguenti caratteri u, g e a. Il carattere u sta per utente, g sta per il gruppo dell'utente e a sta per tutti gli utenti. Vediamo degli esempi sul file test:
Se
vogliamo dare i permessi di scrittura al nostro gruppo sul file di
prima scriviamo:
Se vogliamo dare i permessi di lettura, scrittura ed esecuzione a tutti gli utenti:
chmod
g+w test
Se vogliamo dare i permessi di lettura, scrittura ed esecuzione a tutti gli utenti:
chmod a+rwx test
Se,
ad esempio, vogliamo togliere i permessi di esecuzione a tutti gli
utenti allora scriviamo:
Direi che questo modo è più veloce rispetto alla rappresentazione ottale!!!
chmod
a-x test
Direi che questo modo è più veloce rispetto alla rappresentazione ottale!!!
USERADD
Per
aggiungere nuovi utenti al computer usiamo il comando useradd. Alcune
opzioni utili possono essere:
-m:
crea la directory home.
-g:
nome del gruppo principale a cui assegnare l'utente.
-s:
la shell che userà l'utente.
Ad
esempio per creare l'utente pluto possiamo scrivere:
In questo modo verrà creato l'utente pluto sul gruppo “gruppo”, verrà creata una cartella per l'utente sulla /home e all'avvio gli verrà assegnata la bash come shell.
useradd
-m -g gruppo -s /bin/bash pluto
In questo modo verrà creato l'utente pluto sul gruppo “gruppo”, verrà creata una cartella per l'utente sulla /home e all'avvio gli verrà assegnata la bash come shell.
Per
impostare una password all'utente usare il comando passwd, ad
esempio:
passwd
pluto
USERDEL
Invece,
per eliminare un'utente, usare il comando userdel, ad esempio se
vogliamo eliminare l'utente pluto:
Se utilizziamo l'optione -r verrà eliminata anche la sua directory associata in /home.
userdel
pluto
Se utilizziamo l'optione -r verrà eliminata anche la sua directory associata in /home.
GROUADD, GROUPDEL E GPASSWD
Per
creare un gruppo usiamo il comando groupadd, ad esempio se vogliamo
creare il gruppo “test” scriviamo:
Invece se vogliamo eliminare il gruppo usiamo il comando inverso groudel in questo modo:
Per quanto riguarda i gruppi, un altro comando interessante è gpasswd che permette di aggiungere o eliminare un'utente da un gruppo, ad esempio se vogliamo aggiungere l'utente pluto al gruppo test scriviamo:
Dove l'opzione -a significa add, invece se vogliamo rimuovere un'utente da un gruppo usiamo l'opzione -d, ad esempio:
PS
groupadd
test
Invece se vogliamo eliminare il gruppo usiamo il comando inverso groudel in questo modo:
groupdel
test
Per quanto riguarda i gruppi, un altro comando interessante è gpasswd che permette di aggiungere o eliminare un'utente da un gruppo, ad esempio se vogliamo aggiungere l'utente pluto al gruppo test scriviamo:
gpasswd
-a pluto test
Dove l'opzione -a significa add, invece se vogliamo rimuovere un'utente da un gruppo usiamo l'opzione -d, ad esempio:
gpasswd
-d pluto test
PS
Un
comando che può tornare utile nel monitorare i processo è ps. Se
proviamo a scrivere ps ci verrà mostrato un output simile:
Dove
ci mostra il processo corrente ossia la nostra shell e il comando
appena lanciato, ossia ps.
Se
vogliamo vedere tutti i processi che sono in esecuzione sul nostro
computer possiamo aggiungere l'opzione ax:
Se invece utilizziamo l'opzione -aux, in output abbiamo più informazioni a nostra disposizione.
ps
-ax
Se invece utilizziamo l'opzione -aux, in output abbiamo più informazioni a nostra disposizione.
Altre
opzioni interessanti possono essere:
p
[n]: dove n è un numero, e stampa il processo con il pid indicato,
ad esempio se scriviamo:
verrà stampato:
perché il pid numero 1 è associato sempre al processo init.
ps -p
1
verrà stampato:
1 ?
00:00:00 init
perché il pid numero 1 è associato sempre al processo init.
u
[user]: con questa opzione fa vedere tutti i processi che sono in
esecuzione dall'utente user.
Ovviamente
ci sono tantissime altre opzioni che vi invitiamo ad andare a vedere,
scrivendo man ps.
KILL
Se
vogliamo semplicemente terminare un processo basta eseguire il
comando kill con il pid del processo da eliminare, ad esempio:
terminerà il processo con il pid 5438.
kill
5438
terminerà il processo con il pid 5438.
TOP
Il
comando top, è un'alternativa a ps, e secondo me è anche più
completo. Se lanciamo il comando avremo una schermata del genere:
Come
possiamo vedere all'inizio ci vengono mostrate informazioni riguardo
i processo in esecuzione, l'utilizzo della CPU, l'utilizzo della
memoria RAM e della memoria SWAP. Invece sotto possiamo vedere una
tabella con i processi in esecuzione, e se clicchiamo “f”
possiamo abilitare e disabilitare delle colonne di questa tabella.
CONCLUSIONI
I
comandi della shell sono tantissimi, e molti di questi permettono di
fare moltissime cose interessanti, ad esempio come avevamo visto in questo post esiste anche un editor di testo da usare sul terminale.
Bene ora non vi resta che testare e sperimentare questi comandi, e vi
ricordo che se volete maggiori informazioni, da terminale per ogni
comando c'è il suo apposito manuale.
Fonti:
- Immagini dell'autore;
Fonti:
- Immagini dell'autore;
Nessun commento:
Posta un commento