Visualizzazione post con etichetta Unix. Mostra tutti i post
Visualizzazione post con etichetta Unix. Mostra tutti i post

giovedì 19 novembre 2015

Come collegarsi alla rete Wi-Fi dal terminale


Di solito il computer si collega automaticamente alla rete Wi-Fi senza bisogno del nostro intervento, altre volte invece bastano pochi click per farlo. Può capitare però di trovarci di fronte al terminale e non avere alcuna interfaccia grafica per collegare il nostro computer alla rete Wi-Fi, per esempio quando l'installazione dei driver grafici non è andata a buon fine.
In questa breve guida vi mostrerò come collegarci dalla riga di comando.

Durante la guida darò per scontato che abbiate effettuato il login come root o che prima di procedere abbiate eseguito il comando su per eseguire i comandi come super utente. Altrimenti potete sempre anteporre la parola sudo ad ogni comando.

Trovare la scheda Wi-Fi installata


Prima cosa da fare bisognerà trovare la scheda Wi-Fi installata sul nostro computer, useremo il comando iw

> iw dev

Produrrà un output simile a questo

phy#0
Interface wlan0
ifindex 3
wdev 0x1
addr 9c:d2:1e:61:a6:86
type managed
channel 6 (2437 MHz), width: 20 MHz, center1: 2437 Mhz

Nel mio caso ho una scheda di rete Wi-Fi chiamata wlan0

Visualizzare lo stato della scheda Wi-Fi


Ora possiamo controllare lo stato della scheda con il seguente comando

> ip link show wlan0

Otterremo un risultato simile a questo

3: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
link/ether 9c:d2:1e:61:a6:86 brd ff:ff:ff:ff:ff:ff

Come potete intuire dalla parola DOWN lo stato della Wi-Fi è spenta.

Accendere la scheda di rete Wi-Fi


Per attivare la scheda Wi-Fi procediamo con

> ip link set wlan0 up

Controlliamo di nuovo lo stato

> ip link show wlan0

Questa volta il risultato dovrebbe essere questo

3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
link/ether 9c:d2:1e:61:a6:86 brd ff:ff:ff:ff:ff:ff

Notate come questa volta lo stato è UP

Controllare lo stato della connessione


Ora che la scheda Wi-Fi è attiva, controlliamo lo stato della connessione

> iw wlan0 link

il risultato sarà

Not connected.
Non siamo connessi.

Cercare le reti disponibili


Ora cerchiamo le reti Wi-Fi disponibili

> iw wlan0 scan

Otterremo una lunga lista di informazioni per ogni rete trovata come questa


BSS 9c:d3:6d:b4:a4:10(on wlan0) -- associated
TSF: 914250503275 usec (10d, 13:57:30)
freq: 2437
beacon interval: 100 TUs
capability: ESS Privacy ShortSlotTime (0x0411)
signal: -41.00 dBm
last seen: 172 ms ago
Information elements from Probe Response frame:
SSID: My_Network
Supported rates: 1.0* 2.0* 5.5 11.0 18.0 24.0 36.0 54.0
DS Parameter set: channel 6
ERP: Barker_Preamble_Mode
ERP D4.0: Barker_Preamble_Mode
RSN: * Version: 1
* Group cipher: CCMP
* Pairwise ciphers: CCMP
* Authentication suites: PSK
* Capabilities: 16-PTKSA-RC 1-GTKSA-RC (0x000c)
Extended supported rates: 6.0 9.0 12.0 48.0
HT capabilities:
Capabilities: 0x186c
HT20
SM Power Save disabled
RX HT20 SGI
RX HT40 SGI
No RX STBC
Max AMSDU length: 7935 bytes
DSSS/CCK HT40
Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
Minimum RX AMPDU time spacing: 8 usec (0x06)
HT RX MCS rate indexes supported: 0-7
HT TX MCS rate indexes are undefined
HT operation:
* primary channel: 6
* secondary channel offset: no secondary
* STA channel width: 20 MHz
* RIFS: 1
* HT protection: no
* non-GF present: 1
* OBSS non-GF present: 0
* dual beacon: 0
* dual CTS protection: 0
* STBC beacon: 0
* L-SIG TXOP Prot: 0
* PCO active: 0
* PCO phase: 0
WPS: * Version: 1.0
* Wi-Fi Protected Setup State: 2 (Configured)
* Selected Registrar: 0x0
* Response Type: 3 (AP)
* UUID: 1620a1d7-a8d6-d819-4860-8a40e4e07abf
* Manufacturer: NETGEAR, Inc.
* Model: WNR1000v3
* Model Number: WNR1000v3
* Serial Number: 83258
* Primary Device Type: 6-0050f204-1
* Device name: WNR1000v3
* Config methods: Label, PBC
WMM: * Parameter version 1
* u-APSD
* BE: CW 15-1023, AIFSN 3
* BK: CW 15-1023, AIFSN 7
* VI: CW 7-15, AIFSN 2, TXOP 3008 usec
* VO: CW 3-7, AIFSN 2, TXOP 1504 usec

Le informazioni più importanti che ci occorrono sono il nome della rete ed il protocollo di sicurezza. Il nome della rete è quello che segue la parola SSID (Service Set Identifier), in questo caso è My_Network. Il protocollo di sicurezza è invece RSN, meglio conosciuto come WPA2.

Creare un file di configurazione WPA/WPA2


Per poterci collegare ad una rete Wi-Fi protetta da passphrase con protocollo WPA/WPA2 avremo bisogno di preparare un file di configurazione con questo comando:

> wpa_passphrase My_Network >> /etc/wpa_supplicant.conf

Subito dopo aver premuto invio dovremo digitare la passphrase per collegarci alla rete, quindi verrà creato il file di configurazione in /etc/wpa_supplicant.conf. Il file di configurazione così creato non andrà comunque a sostituire le configurazioni già esistenti.

Collegarsi alla rete Wi-Fi protetta da passphrase WPA/WPA2


Ora che abbiamo preparato tutto il necessario possiamo collegarci alla rete con

> wpa_supplicant -B -D wext -i wlan0 -c /etc/wpa_supplicant.conf

Controlliamo di nuovo lo stato della connessione 

> iw wlan0 link

 Questa volta ci dovrebbe mostrare la connessione avvenuta.

Connected to 9c:d3:6d:b4:a4:10 (on wlan0)
SSID: My_Network
freq: 2437
RX: 10476343 bytes (59172 packets)
TX: 743393 bytes (5687 packets)
signal: -49 dBm
tx bitrate: 65.0 MBit/s MCS 6 short GI

bss flags: short-slot-time
dtim period: 0
beacon int: 100

Ottenere un indirizzo IP dal DHCP


Possiamo ottenere un indirizzo IP con il comando

> dhclient wlan0

E verificare l'indirizzo IP con

> ip addr show wlan0

Otterrete qualcosa come questo

3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 9c:d2:1e:61:a6:86 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.5/24 brd 10.0.0.255 scope global dynamic wlan0
valid_lft 82996sec preferred_lft 82996sec
inet6 fe80::9ed2:1eff:fe61:a686/64 scope link
valid_lft forever preferred_lft forever

L'indirizzo IP è quello che segue la parola inet, in questo caso 10.0.0.5.

Testare la connessione


Per finire possiamo fare un test della connessione con il buon vecchio comando ping


Se il risultato è simile al seguente siete connessi

PING www.google.com (74.125.232.146) 56(84) bytes of data.
64 bytes from mil02s05-in-f18.1e100.net (74.125.232.146): icmp_seq=1 ttl=52 time=38.3 ms
64 bytes from mil02s05-in-f18.1e100.net (74.125.232.146): icmp_seq=2 ttl=52 time=37.9 ms
64 bytes from mil02s05-in-f18.1e100.net (74.125.232.146): icmp_seq=3 ttl=52 time=38.2 ms

Fermate l'esecuzione di ping con la combinazione di tasti Ctrl + c.

Il vostro sistema è online!





lunedì 17 giugno 2013

Adesivi per coprire il logo del tasto Windows con Tux, il pinguino di Linux

Tralasciando i miei portatili Apple del passato, ho sempre e solo utilizzato distribuzioni GNU/Linux sui miei computer, mi sono quindi chiesto perché le mie tastiere devono avere quel tasto con il logo di Windows? Quello che in ambiente Unix è chiamato tasto "super" o tasto "meta".
Purtroppo in commercio non ci sono alternative, al massimo si possono trovare pochissimi modelli di tastiere pensate per i Mac che non sfoggiano la bandierina a scacchi di Microsoft, ma hanno il tasto "command".
Per personalizzare le mie tastiere mi sono messo a cercare degli adesivi che potessero sostituire il logo Windows con il pinguino Tux di Linux o qualsiasi altro simbolo che fosse coerente con l'utilizzo con i sistemi GNU/Linux. Questa ricerca mi ha portato ad un unico negozio online che vende degli adesivi con il pinguino Tux dagli Stati Uniti, i prezzi purtroppo non sono economici e sono ulteriormente aggravati dalle spese di spedizione.
Così alla fine ho deciso di auto produrli. Ho cercato un file vettoriale con Tux, ho apportato delle piccole modifiche per adattarlo alla stampa ed ho commissionato un'azienda specializzata per far stampare gli adesivi.
Ho fatto stampare gli adesivi su un materiale polimerico lucido con retro grigio, per avere una lunga durata. Sono adatti per l'esposizione in luoghi interni ed anche esterni, inoltre, una laminazione lucida sopra la stampa, li protegge dall'usura dovuta al contatto con le dita.
Sono tagliati a forma circolare, di 13 mm di diametro, adatti quindi alla maggior parte delle tastiere, li ho applicati con successo anche sulla tastiera del mio net-book.
Ho ottenuto quello che volevo, ma ho dovuto spendere molto di più del preventivato, avendo dovuto ordinarne in gran quantità.
Se qualcuno fosse interessato ad avere degli adesivi per la tastiera può contattarmi, io ne ho utilizzati quattro, ma ne ho centinaia da parte.

Il punguino Tux sulla tastiera del mio net-book



Questa è la tastiera Logitech del mio desktop

martedì 11 giugno 2013

Raspberry Pi - Guida veloce di riferimento per l'amministrazione del sistema

Un computer completo grande quanto una carta di credito: Raspberry Pi



Ormai ha compiuto più di un anno e continua a catturare l'attenzione di tanti appassionati di informatica ed elettronica, sto parlando del Raspberry Pi.
Se state leggendo questo post probabilmente sapete già che cos'è, nel caso non ne aveste mai sentito parlare vi invito a leggere questa pagina su Wikipedia ed a visitare il sito ufficiale.
L'idea originale è quella di realizzare un dispositivo economico allo scopo di diffondere l'insegnamento dell'informatica e della programmazione a tutti.
Io ne ho acquistato uno qualche mese fa e per il momento lo sto utilizzando principalmente come piccolo server nella mia rete casalinga. Il punto forte di questo piccolo computer economico è l'estrema facilità con la quale è possibile connettere sensori e altri dispositivi elettronici, ci sono infatti centinaia di progetti online con appositi tutorial.
L'idea alla base del Raspberry Pi è, secondo me, l'aspetto più importante, cioè la diffusione della cultura dell'informatica e della programmazione. Purtroppo siamo sempre più circondati da dispositivi chiusi che non stimolano in alcun modo la creatività, ma ci spingono soltanto a fruire di contenuti a pagamento. Il Raspberry Pi non ha nulla a che vedere con tali dispositivi il cui unico scopo è spillarci denaro, ma al contrario è un piccolo computer versatile e che utilizza principalmente software libero, a cominciare dal sistema operativo!

Raspbian GNU/Linux


Il Raspberry Pi viene venduto senza sistema operativo, sta all'acquirente scegliere ed installare un sistema operativo su di una scheda SD e questa è la prima grande libertà che ci offre.
Attualmente il sistema operativo più diffuso per questo dispositivo è Raspbian, una distribuzione derivata da Debian cucita su misura per il nostro Raspberry Pi. La diffusione di questo piccolo computer quindi ha spinto molti ad avvicinarsi al mondo GNU/Linux.
Ho letto molti forum con utenti Windows che non hanno nessuna familiarità con i sistemi GNU/Linux e che spesso tendono a copiare comandi per il terminale dai tutorial senza capire molto cosa stanno scrivendo.
Con questo post vorrei fornire una guida veloce di riferimento per l'amministrazione del Raspberry Pi e spiegare brevemente almeno i concetti fondamentali, così che leggendo dei comandi in un tutorial se ne capisca meglio il significato.

Gestione degli utenti


In tutti i sistemi ispirati e/o derivati da Unix come Linux, FreeBSD e OS X l'utente predefinito per l'amministrazione del sistema si chiama root, detto anche super utente. Per motivi di sicurezza non si accede mai al sistema utilizzando root, ma si utilizzano utenti standard che, all'occasione, possono ottenere i privilegi del super utente.
La prima volta che avviamo Raspbian troveremo un utente di default che si chiama pi e la cui password di accesso è raspberry.
Prima cosa saggia da fare sarebbe quella di cambiare la password di pi con il comando passwd:

passwd pi

Ci chiederà di inserire due volte la nuova password per conferma.

Se magari invece preferiamo creare un nuovo utente con un nome di nostro gradimento allora possiamo utilizzare il comando adduser:

sudo adduser [nuovo utente]

ad esempio:

sudo adduser max

Crea l'utente max.

Ottenere i privilegi del super utente


Per poter modificare i file posti al di fuori della propria cartella home o per avviare programmi di amministrazione del sistema è necessario ottenere i privilegi dell'amministratore.
Per fare questo si utilizza il comando sudo (dall'inglese super user do) seguito dal comando che si vuole eseguire come amministratore.
Quando si utilizza sudo verrà richiesto di autentificarsi con l'inserimento della propria password utente.
Se avete creato un nuovo utente con adduser come nel precedente esempio, è probabile che questo non sia autorizzato ad utilizzare il comando sudo. Per abilitare l'utente all'utilizzo di sudo possiamo aggiungerlo al gruppo sudo con questo comando:

adduser [nome utente] sudo

ad esempio:

adduser max sudo

Aggiunge l'utente max al gruppo sudo.

Organizzazione del file system


root è anche il termine che indica il punto di inizio del disco di sistema, il suo indirizzo è rappresentato dal carattere /.
Per visualizzare il contenuto del disco ad una data posizione si utilizza il comando ls (dall'inglese list segments) seguito dall'indirizzo della posizione, ad esempio:

ls /
visualizza il contenuto del disco di sistema.

All'interno del disco ci sono una serie di cartelle standard che hanno uno scopo ed un contenuto ben preciso, quelle che vedremo in questo post sono:
  • home – contiene le cartelle home di tutti gli utenti. Ciascun utente ha i diritti di accesso in lettura e scrittura all'interno della propria cartella home.
  • mnt – (mount) contiene le cartelle che danno accesso ad i file system degli altri dischi collegati, o meglio dire montati, nel sistema.
  • etc – contiene tutte le cartelle ed i file di configurazione del sistema.

Montare hard disk esterni


L'operazione di mount di un'unità esterna, che può essere un hard disk o una penna USB, consiste nel rendere accessibile il contenuto della stessa al nostro sistema. Normalmente, nelle distribuzioni più comuni questa operazione è fatta automaticamente nel momento in cui si collega l'unità, sul Raspberry Pi invece, questa operazione va fatta manualmente dal terminale.

Quando si “monta” un disco esterno in pratica si fa in modo che il file system dell'unità esterna diventi parte del file system di sistema.
Come ho spiegato precedentemente, la cartella /mnt è quella destinata a contenere le cartelle alle quali si collegano i file system dei dischi collegati. Prima cosa da fare è creare una cartella all'interno di /mnt che farà da punto di inizio del disco esterno, ad esempio:

sudo mkdir /mnt/disco

Il comando mkdir serve a creare nuove cartelle, in questo caso abbiamo creato una cartella chiamata disco. Ancora una volta abbiamo usato sudo perché stiamo apportando modifiche al di fuori della nostra cartella home.
Colleghiamo il disco esterno ad una porta USB del Raspberry Pi ed utilizziamo il comando lsblk (dall'inglese list block devices) per identificare il disco.

lsblk

Verrà visualizzato sul terminale una lista dei dischi collegati come questa:

NAME               MAJ:MIN    RM    SIZE    RO    TYPE    MOUNTPOINT
sda                            8:0           0       1.8T       0       disk
└─sda1                     8:1           0      1.8T        0       part
mmcblk0               179:0           0     14.9G      0       disk
├─mmcblk0p1      179:1          0      56M        0       part         /boot
└─mmcblk0p2      179:2          0      14.8G      0       part        /

Il disco mmcblk0 è la scheda SD che contiene il sistema operativo. Come chiaramente mostrato la scheda SD ha due partizioni chiamate rispettivamente mmcblk0p1 e mmcblk0p2.
sda invece è il disco collegato alla porta USB, il quale, in questo caso, ha una sola partizione identificata come sda1.
Di solito il primo disco esterno collegato è chiamato sda, quindi ci sarà sdb per il secondo disco, sdc per il terzo e così via. Per ogni disco ci possono essere una o più partizioni identificate dal numero che segue il nome del disco, quindi sda1 è la prima partizione del disco sda, sda2 la seconda partizione, ecc...
Ora che conosciamo quale disco e quale partizione montare basta dare il comando:

sudo mount /dev/sda1 /mnt/disco

Abbiamo comunicato al comando mount di associare la prima partizione del disco sda alla cartella disco all'interno di /mnt.
Ora possiamo guardare il contenuto del disco

ls /mnt/disco

Modificare i file di configurazione del sistema


Generalmente tutti i file di configurazione del sistema sono posti nella cartella /etc come già detto precedentemente. Tra questi troviamo anche i file di configurazione delle applicazioni o dei demoni che abbiamo installato. In ogni sistema operativo ispirato a Unix i file di configurazione sono sempre dei file di testo che possono essere letti e modificati con un editor di testo. Questo principio di mantenere i file leggibili e modificabili rende estremamente semplice la configurazione del sistema.

Per modificare un file di configurazione dobbiamo lanciare un editor di testo con i privilegi di amministrazione. Ci sono diversi editor di testo disponibili, uno dei più semplici da utilizzare è nano:

sudo nano nome_file

nano è un editor di testo essenziale e semplice da utilizzare, nome_file deve essere sostituito con il percorso del file che vogliamo modificare.
Gli editor di testo per il terminale non utilizzano il mouse, il cursore si sposta tramite i tasti freccia. I comandi fondamentali di nano sono i seguenti:
  • Ctrl + o salva il testo, prima di salvare chiede conferma del nome del file
  • Ctrl + x esce dal programma e torna al terminale, se il testo è stato modificato, ma non ancora salvato, chiede se si vuole procedere con il salvataggio.

Montare un disco esterno automaticamente all'avvio del computer


Per poter fare in modo che il sistema monti un disco al suo avvio basterà andare a modificare un file di configurazione che si trova in /etc, questo file si chiama fstab (File System Table, tabella dei file system).
Apriamo fstab con l'editor di testo per configurare il montaggio automatico del disco

sudo nano /etc/fstab

All'interno del file ci sono tante righe quante sono le partizioni che vengono integrate nel file system principale. Ogni riga ha il seguente formato:

<file system> <punto di mount> <tipo> <opzioni> <dump> <pass>

  • file system è la partizione che vogliamo montare
  • punto di mount è la cartella che vogliamo collegare alla partizione
  • tipo è il formato del file system della partizione (ext4 è il formato standard di Linux)
  • opzioni sono le opzioni per il montaggio del disco, di solite vanno bene quelle di default
  • dump è un'opzione deprecata, sarà sempre 0
  • pass è l'ordine con il quale la partizione viene controllata dal comando fsck (con 0 non viene controllata)
Per il nostro disco la riga dovrà essere così

/dev/sda1    /mnt/disco    ext4    defaults    0     3

Dopo aver aggiunto la riga vista nell'esempio alla fine del file fstab, possiamo salvare premendo i tasti Ctrl + o, quindi usciamo dall'editor con Ctrl + x.
Ora possiamo riavviare il sistema con il disco collegato e questo verrà montato all'avvio.

Il sistema di aggiornamento ed installazione di programmi


Ciascuna distribuzione adotta un proprio sistema di gestione dei pacchetti software per l'aggiornamento del sistema e l'installazione/disinstallazione dei programmi.
Tutti i pacchetti software ed i programmi previsti dai curatori della distribuzione sono a disposizione degli utenti su dei server online. Ogni distribuzione avrà quindi uno o più repository (ripostiglio o magazzino), cioè un database online, dal quale prelevare i pacchetti software aggiornati dai curatori.
Nella maggior parte dei casi quindi, per installare un programma o verificare gli aggiornamenti del sistema e dei programmi installati basterà interrogare il repository di riferimento della propria distribuzione.

Per quanto riguarda il Raspberry Pi i comandi utilizzati per verificare gli aggiornamenti sono gli stessi utilizzati in tutti i sistemi Debian e derivati.
I comandi necessari da terminale sono due, il primo scarica la lista delle versioni di tutti i pacchetti software presenti nel repository:

sudo apt-get update

Il comando sudo è necessario per ottenere i privilegi di amministratore visto che l'utente normale non può effettuare operazioni di aggiornamento del sistema.
Successivamente si ordina di eseguire l'aggiornamento confrontando le versioni dei pacchetti prelevate dal repository con quelli installati attualmente sul sistema:

sudo apt-get upgrade

Alla fine della verifica verranno indicati il numero di pacchetti che devono essere aggiornati o eventualmente installati ex-novo o eliminati. Dopo aver confermato la volontà di eseguire l'aggiornamento i pacchetti verranno scaricati ed installati.

Installare programmi o altri pacchetti software


In modo molto simile alla procedura di aggiornamento si possono installare programmi o pacchetti nuovi. E' sempre meglio, prima di procedere, aggiornare la lista delle versioni disponibili sul repository se non lo si è già fatto in giornata per assicurarci di scaricare la versione aggiornata.

sudo apt-get update

quindi si può procedere all'installazione del pacchetto voluto con

sudo apt-get install [nome pacchetto]

ad esempio:

sudo apt-get install transmission-daemon

scarica ed installa il client torrent Transmission in versione daemon (un demone è un programma eseguito in background senza interfaccia grafica).

Conclusione


Concludo qui questa breve guida, prossimamente pubblicherò dei tutorial per l'installazione e configurazione di altri pacchetti software.

domenica 29 aprile 2012

Problemi con Hard Disk esterni ed accesso ai file in Ubuntu? Potrebbe essere un problema di permessi dei file


Premessa
I sistemi Unix-like gestiscono tutto come file, le directory tramite cui sono ordinati i file sono anch'esse file, lo stesso vale per i dispositivi, i singoli processi, ecc. Tutti i file hanno associati un utente proprietario, un gruppo di utenti e dei permessi che ne regolano l'accesso. Solo il super utente "root" ha la possibilità di accedere a qualsiasi file nel sistema senza tenere conto dei permessi.

Utilizziamo il Terminale
Il terminale è lo strumento che ci permette di visualizzare ed eventualmente modificare i proprietari ed i permessi di accesso ai file. Questo potente e flessibile strumento è temuto e ritenuto troppo complicato da molti utenti, soprattutto da quelli poco pratici degli ambienti Unix-like, ma in realtà, con un minimo di pratica, si dimostra molto più efficace e veloce di qualsiasi gestore di file con interfaccia grafica.

Visualizzare proprietari e permessi con il comando ls
Per poter visualizzare i proprietari ed i permessi dei file possiamo usare il comando ls con l'opzione -l, digitiamo quindi:
ls -l
e vedremo la lista dei file contenuti nella directory corrente arricchita da diverse informazioni, come ad esempio:

drwxr-xr-x 2 massi massi 4096 feb 7 14:52 Documenti
-rw-r--r-- 1 massi massi 179 feb 7 14:36 examples.desktop
drwxr-xr-x 2 massi massi 4096 apr 24 11:28 Immagini
drwxr-xr-x 2 massi massi 4096 feb 7 14:52 Modelli
drwxr-xr-x 2 massi massi 4096 feb 7 14:52 Musica
drwxr-xr-x 2 massi massi 4096 feb 7 14:52 Pubblici
drwxr-xr-x 5 massi massi 4096 apr 27 16:43 Scaricati
drwxr-xr-x 2 massi massi 4096 apr 28 13:15 Scrivania
drwxr-xr-x 2 massi massi 4096 apr 27 23:42 Video

la prima stringa di lettere rappresenta i permessi di accesso ai file, analizziamo insieme quella relativa alla directory Documenti:
d il primo carattere, ci informa che il file è una directory;
rwx è la prima terna di caratteri che rappresentano i permessi di accesso del proprietario, r sta per read (lettura), w sta per write (scrittura) e x sta per execute (esecuzione). Quindi il proprietario ha la facoltà di leggere, scrivere ed eseguire il file.
r-x è la seconda terna e rappresenta i permessi del gruppo a cui appartiene il file. In questo caso gli appartenenti al gruppo hanno facoltà di lettura ed esecuzione, ma non di scrittura.
r-x è l'ultima terna e si riferisce a tutti gli altri utenti. I permessi sono gli stessi riservati al gruppo, cioè lettura ed esecuzione.

Successivamente abbiamo il nome del proprietario e quello del gruppo, tutti i file sono di proprietà dell'utente massi e del gruppo massi.

Modificare il proprietario e il gruppo dei file
Per modificare il proprietario e il gruppo di un file usiamo il comando chown.

Ad esempio creiamo un file di prova con il seguente comando:

touch prova

Il comando touch creerà un file con il nome prova, il proprietario e il gruppo sarà quello dell'utente corrente. Se volessimo cambiare il proprietario del file prova con l'utente paolo ed il gruppo lavoro scriveremo:

sudo chown paolo:lavoro prova

Ora il proprietario sarà paolo ed il gruppo lavoro. Come vedete dall'esempio è necessario usare il comando sudo per poter ottenere il permesso di modificare il proprietario ed il gruppo di un file.

Modificare i permessi di accesso di un file
Per modificare i permessi di accesso di un file utilizziamo il comando chmod, anche in questo caso è necessario utilizzare sudo.

I permessi di accesso di prova sono -rw-rw-r--, che vuol dire accesso in lettura e scrittura per il proprietario e gli appartenenti al gruppo, accesso solo in lettura per gli altri. Nessuno ha il permesso di eseguire il file.

La sintassi del comando è: chmod [ugoa] [+-=] [permessi] [file]

Il primo gruppo di parametri serve ad indicare a quali tipologia di utenti vogliamo applicare le modifiche di accesso.
u sta per user, cioè il proprietario del file.
g sta per group, cioè il gruppo.
o sta per others, cioè tutti gli altri.
a sta per all, tutti senza distinzioni.
Ad esempio, volendo modificare i permessi di accesso al proprietario e al gruppo scriveremmo ug, se invece volessimo modificare i permessi agli altri utenti scriveremmo o, se ancora volessimo applicarle a tutti scriveremmo a oppure ugo.

Il secondo gruppo di parametri serve ad indicare se vogliamo aggiungere un permesso con + o toglierlo con -.

Nel terzo gruppo di parametri andremo a specificare quali permessi vogliamo modificare, quindi r per lettura, w per scrittura e x per esecuzione.

Torniamo al nostro file d'esempio prova e poniamo il caso volessimo aggiungere il permesso in scrittura per tutti gli altri utenti:

sudo chmod o+w prova

Ora i permessi di prova saranno -rw-rw-rw-

Problemi con Hard Disk esterni causati dai permessi di accesso

Se vi è capitato di collegare un hard disk esterno e questo non appare nell'elenco delle periferiche nel Nautilus, mentre su un altro sistema viene riconosciuto senza problemi, allora potreste avere un problema di permessi di accesso.

Provate a collegare l'hard disk e poi aprite il Terminale e digitate il comando:

cd /media

per impostare come directory corrente /media. In questa directory troveremo tutte le periferiche collegate rappresentate da rispettive directory. Proviamo a visualizzarne il contenuto con le informazioni dettagliate dei proprietari e dei permessi di accesso con il comando:

ls -l

Se vedete una directory con il nome dell'hard disk che il Nautilus si rifiuta di mostrarvi allora questa è la conferma che il problema sta nei permessi di accesso.

Qui entra in gioco il permesso di accesso in esecuzione di cui non abbiamo parlato in precedenza. Questo permesso, applicato ai file eseguibili, permette all'utente di avviare l'esecuzione del file. Per i file di tipo directory invece assume un altro ruolo, cioè permette l'accesso e l'utilizzo della directory stessa. Se ad esempio utilizziamo il comando cd su una directory che non ha il permesso in esecuzione, questo fallirà e non riuscirà ad impostare la directory corrente.

Detto questo, torniamo al nostro hard disk che poniamo il caso si chiami esterno. Se vogliamo che qualunque utente possa accedere all'hard disk possiamo verificare che i permessi di accesso r (in lettura) e x (in esecuzione) siano garantiti a tutti. Se così non fosse possiamo modificare i permessi di accesso digitando il comando:

sudo chmod a+rx esterno

Ora sul Nautilus dovreste poter vedere il disco esterno.

In questo breve tutorial ho parlato molto brevemente dei comandi chown e chmod, per ulteriori informazioni dettagliate sulle opzioni e sui parametri accettati da questi comandi vi consiglio di guardare la documentazione offerta con il comando man.
Ad esempio digitando man chown avrete accesso alla documentazione dettagliata del comando.

venerdì 14 ottobre 2011

Il padre del linguaggio C e di Unix ci lascia all'età di 70 anni

Dennis MacAlistair Ritchie
Dennis Ritchie, nato a Bronxville N.Y. nel 9 settembre 1941, si laureo' ad Harvard ed inizio' a lavorare presso i Bell Labs nel 1967 seguendo le orme del padre.
Insieme a Ken Thompson ha sviluppato la prima versione di Unix, successivamente ha creato il linguaggio C, ancora oggi ampiamente utilizzato nello sviluppo di applicazioni e sistemi operativi.
Famoso il libro pubblicato insieme a Brian Kernighan The C Programming Language, pubblicato in Italia con il titolo Programmare in C, ancora oggi e' considerato un testo fondamentale per tutti i programmatori ( io ne possiedo una copia edita dallo storico Gruppo Editoriale Jackson ).
L'impatto del suo lavoro e' stato enorme nell'evoluzione dell'informatica, basti pensare che Linux e BSD derivano dal kernel Unix, quindi se oggi possiamo usare Linux, FreeBSD od OS X sul nostro computer o anche Android o iOS sul nostro smartphone, lo dobbiamo anche a lui.


Un saluto ad una vera icona dell'informatica che ci ha lasciati.