sabato 20 ottobre 2007

HOWTO: Principali comandi ,permessi e proprietà dei files

1. Premessa

Una volta installato Linux ci troviamo di fronte a un sistema operativo di tipo desktop che ci consente di poterlo gestire con qualche clic.
Tuttavia non è sempre cos? semplice ed è quindi comodo conoscerne i principali comandi per non trovarsi spiazzati davanti al prompt del modo testuale.

2. Principali comandi

Di seguito vengono riportati i principali comandi accompagnati da una breve descrizione e dalle opzioni più usate.

man è la guida che spiega la sintassi dei comandi e delle singole opzioni (es man cat).

cd cambia la directory corrente.

ls lista il contenuto di una directory.
Opzioni:
-a lista anche i file nascosti
-d lista le soledirectory
-k dimensione in Kb.
-F classifica i file a seconda del tipo.

cp copia file e directory.

mv muove o rinomina un file o una directory.
Opzioni:
-b crea copie di backup
-i chiede conferma

rm cancella file e directory.

mkdir crea una directory.

rmdir rimuove una directory.

pwd mostra la directory corrente.

cat lista il contenuto di un file.

find cerca un file (es: -name nomefile cerca file con quel nome).

df (-h)mostra lo spazio libero sul disco fisso.

free mostra lo stato della memoria.

mount monta un filesystem di solito di un dispositivo (ad es cd rom).
Opzioni:
-r monta un filesystem in sola lettura.
-w monta un filesystem in lettura/scrittura.
-t tipo monta un filesystem di quel determinato tipo .
-a monta tutti i filesystem presenti in /etc/fstab.

umount disattiva un filesystem.
Opzioni:
-a smonta tutti i filesystem inclusi in fstab.
-t smonta solo i filesystem di un certo tipo.

ps visualizza un elenco dei processi attivi (es. ps -ef )

kill termina un processo (es: kill -9 numero processo).

halt arresta il sistema.

reboot riavvia il sistema.

date mostra la data.

tar crea od estrae backup di file.
Opzioni:
x estrae.
c archivia.
f file (in cui archiviare o da estrarre).

more separa l'output in piu' pagine (anche less) Es. ls | more.

reset resetta il terminale.

zip e unzip comprime e decomprime file .zip.

grep trova testo all'interno di un file.
Opzioni:
-i ignora Maiuscolo/minuscolo.
-v inverte il senso della ricerca.
-l elenca solo il nome del file.

gzip comprime e decomprime file (estensione .gz).
Opzioni:
-d decomprime.
-1 piu' veloce.
-9 miglior compressione.

sh la shell base di linux.

su permette il login come altro utente.

uname mostra informazioni sul computer.
Opzioni:
-m tipo.
-n nome dell'host.
-r release dell'OS.
-s nome dell'OS.
-v versione dell'OS.
-a tutte le informazioni.

fdmount monta un dischetto.

passwd cambia la password di un utente.

who lista gli utenti loggati

2. Attributi e permessi

Linux è un sistema multiutente e in quanto tale offre la possibilità di consentire o vietare agli utenti l'accesso a determinate parti del sistema. L'utente che ha funzioni di amministratore (superuser) è quello che ,come si suol dire, ha"privilegi di root".
I permessi associati a un file o a una directory sono:
- utente proprietario (owner)
- gruppo proprietario (group definiti in /etc/group)
- il resto degli utenti (other)
- tutti (all)
- numero riguardante l'utente (u)

Il comando per vedere i permessi associati ad un file è :

$ ls -l
total 2
-rw-r--r-- 1 klizya users 230 nov 01 12:01 lista.txt
drwxr-xr-x 2 klizya users 1234 nov 01 15:23 prove

I primi dieci caratteri della riga sono i permessi di un file o directory. Saltando il primo carattere (se è una d significa che è una directory), i successivi caratteri rappresentano gli attributi riguardanti l'utente(il primo carattere a sinistra), il suo gruppo e gli altri utenti e possono essere pensati come 3 numeri binari di 3 cifre ciascuno. Le tre cifre rappresentano nell'ordine gli accessi in lettura(r), scrittura(w) ed esecuzione(x) da parte del proprietario mentre gli altri caratteri hanno le stesse caratteristiche per i group e gli other.

Il comando per cambiare i permessi è chmod.

$ chmod g+w lista.txt (g sta per group e w per scrittura il segno + per aggiungere)
$ ls -l lista.txt
-rw-rw-r-- 1 Klizya users 230 nov 01 18:12 lista.txt

oppure :
$ chmod 664 lista.txt
$ ls -l lista.txt
-rw-rw-r-- 1 Klizya users 230 nov 01 18:12 lista.txt

Con questo esempio si consente agli utenti del gruppo di modificare il file e, si pu• notare, al posto delle lettere si possono usare dei numeri che sono la traduzione ottale del numero binario che si ottiene assegnando 1 al permesso , 0 alla negazione e 1 al - . chmod pu• essere usato in modo ricorsivo(il permesso è assegnato alla directory e ai files al suo interno) usando l'opzione -R :

$ chmod -R g+w prove/

E' importante sottolineare che bisogna stare molto attenti quando si usa la ricorsivit… e settare lo sticky bit per impedire che i files o la directory possano essere modificati o cancellati da tutti:

$ chmod +t prove

Abbiamo visto che chmod ci permette di modificare i permessi ma va specificato che quando viene creato un file sorge il problema di quali debbano essere i permessi ad esso assegnati. Il file appartiene all'utente che lo crea e al suo gruppo ma per stabilire il tipo di permesso da assegnare si ricorre alla maschera dei permessi (umask) che viene utilizzata per impedire che alcuni permessi possano essere assegnati ai nuovi file in sede di creazione. I bit indicati nella maschera vengono infatti cancellati dai permessi quando un nuovo file viene creato.
In genere si usa questa maschera per impostare un valore predefinito che escluda preventivamente alcuni permessi (usualmentequello di scrittura per il gruppo e gli altri, corrispondente ad un valore per mask pari a 022). In questo modo è possibile cancellare automaticamente i permessi non voluti.

La sintassi è:

umask utente/gruppo +/-/= permessi da attribuire

Se vogliamo impostare il valore di umask per consentire permessi di lettura, scrittura ed esecuzione per il possessore del file e solo il permesso di lettura per tutti gli altri (-rwxr--r--) sui file appena creati basta digitare:

$ umask u=rwx,g=r,o=r

3. le proprietà

Ogni file e directory appartiene simultaneamente a un utente e a un gruppo e ciò attribuisce significato ai permessi di accesso. Tali permessi sono distinguibili in base al fatto che chi vuole accedere può essere l'utente proprietario, un utente del gruppo o un altro utente.
Il comando chown permette di modificare la proprietà dei files. La sintassi è:

chown [opzioni] [utente][:|.][gruppo] file...

Se viene indicato solo il nome dell'utente o il suo UID (User ID), questi diviene il nuovo proprietario dei file. Se il nome dell'utente (o il suo UID) è seguito da : oppure dal . e dal nome o dal numero di un gruppo (GID cioè Group ID), vengono modificate sia le proprietà dell'utente che del gruppo. Se dopo : o . non si specifica il nome del gruppo viene attribuito il gruppo di appartenenza dell'utente. Se prima di : o . non viene indicato il nome dell'utente, viene modificata solo la proprietà del gruppo.
Chiariamo con qualche esempio:

# chown paolo prova

Il superuser cambia l'utente proprietario del file prova che sarà paolo.

# chown paolo.users prova

Qui cambiano l'utente e il gruppo

Analogo a chown è il comando chgrp che consente di modificare il gruppo proprietario di file e directory ma non viene specificato l'utente. La sua sintassi è:

chgrp [opzioni] gruppo file...

Esempio:

$ chgrp users prova

Per approfondimenti:
http://www.to.infn.it/groups/group4/mirror/linux/AppuntiLinux/AL-4.13.53.html
http://www.magicmill.net/linux/grap/grap.html

Nessun commento: