Sistemi Operativi Corso di Laurea Triennale in Ingegneria Informatica Daniel Cesarini (daniel.cesarini@for.unipi.it) 1
Informazioni Generali Ricevimento su appuntamento (tramite e-mail). E-mail daniel.cesarini@for.unipi.it specificare SEMPRE come oggetto sistemioperativi 2
Terza Esercitazione 3
Sommario lezione Shell (I lezione) Permessi (II esercitazione) Gestione utenti (prima parte), (II esercitazione) 4
Shell 5
Shell (informazioni aggiuntive) Per avere informazioni su una shell si può usare il manuale. man bash, man sh. All interno di tale pagina di manuale vi sono informazioni riguardanti la redirezione e le pipeline. Le shell che un utente può utilizzare sono elencate nel file /etc/shells. 6
Permessi (dalla seconda esercitazione) 7
Comando chmod (1 di 2) chmod permette di modificare i permessi. La sintassi generale di chmod è la seguente: chmod [who][how][which] who: a chi modificare i permessi: owner (u), group (g), others (o), all (a). how: '+' aggiunge un permesso, '-' toglie un permesso, '=' assegna un permesso. 8
Comando chmod (2 di 2) Rappresentazione simbolica: chmod a+rwx directory1 Rappresentazione ottale: chmod 0741 file opzione -R : modifica ricorsivamente i permessi delle directory indicate e del loro contenuto. 9
Gestione utenti (prima parte) (dalla seconda esercitazione) 10
Creazione e rimozione utenti adduser : crea un nuovo utente nomeutente. adduser nomeutente rmuser : rimuove l'utente nomeutente. rmuser nomeutente 11
Comandi chown, chgrp l comando chown permette di modificare il proprietario e/o il gruppo assegnato ad un file o directory. l comando chgrp permette di modificare il gruppo assegnato ad un file o directory. 12
Gestione utenti (seconda parte) 13
File di configurazione utenti File con le informazioni sugli utenti: /etc/passwd File con le informazioni sugli utenti e le password criptate: /etc/master.passwd si può aprire con il comando vipw, che lo apre con l editor predefinito. 14
File /etc/master.passwd (1 / 4) login class expires home osor:pwdcriptata:1001:1001::0:0:osor:/home/osor:/bin/sh utente password cifrata UID GID pwd change dati personali shell 15
File /etc/master.passwd (2 / 4) 16
File /etc/master.passwd (3 / 4) Utenti di sistema Campo password criptata * indica che il login non è possibile (nessuna stringa criptata genera *). /etc/login.conf definisce l ambiente dell utente al login, ponendo eventuali restrizioni: l utente necessita di una home directory per potersi loggare, valore di umask, tipo di criptazione, 17
File /etc/master.passwd (4 / 4) Shell Può essere impostata a /sbin/nologin (in genere per gli utenti di sistema). In tal caso non è possibile fare login con tale utente. 18
File /etc/passwd (1 di 2) password dati personali osor:*:1001:1001:osor:/home/osor:/bin/sh utente UID GID home shell 19
File /etc/passwd (2 di 2) 20
Formato del file /etc/group password elenco utenti studenti:x:1010:alessio,giuseppe,giovanni gruppo GID 21
Creazione utente manuale (1/2) Editare il file /etc/master.passwd aggiungendo una riga per il nuovo utente (comando vipw): utilizzare un UID libero, conviene lasciare la password vuota e cambiarla in seguito con il comando passwd. la home va creata esplicitamente Editare /etc/group aggiungendo un nuovo gruppo per il nuovo utente: utilizzare un GID libero. Creare la cartella home del nuovo utente. 22
Creazione utente manuale (2/2) Cambiare i permessi della cartella home accesso completo al solo proprietario. Creare l ambiente base nella home copiare tutti i file (compresi i file nascosti) in /usr/share/skel nella home dell utente. Cambiare proprietario e gruppo della home e dei file appena copiati in quelli del nuovo utente. Impostare la password dell utente loggarsi con il nuovo utente, digitare il comando passwd. 23
24
Pausa? 25
26
Esercizio 27
Esercizio ( 1 / 2) Eseguire il login come utente root. Creare, utilizzando il comando adduser -s, un utente pippo (impostare come home la cartella /tmp/pippo). Creare manualmente un utente pluto (impostare come home la cartella /tmp/pluto). pluto può creare file nella home di pippo? In caso negativo modificare i diritti delle home di pippo e pluto in modo che i due utenti possano fare tale operazione a vicenda. Creare un nuovo gruppo floppyusr a cui deve appartenere l'utente pluto. 28
Esercizio (2 / 2) pluto appartiene al nuovo gruppo (comando id)? Eseguire logout e nuovo login di pluto. Cosa cambia? Creare una cartella /tmp/floppy appartenente al gruppo floppyusr. Assegnare a questa cartella i diritti in modo che: i membri del gruppo floppyusr abbiano accesso illimitato, a tutti gli altri utenti non sia consentito alcun tipo di accesso. 29
DOMANDE? Pensate 10 minuti... consultate le pagine di manuale, la guida di FreeBSD, e poi consultatevi con i compagni... pensate ancora 10 minuti... alla fine di questo iter se non siete giunti alla soluzione chiedete pure a me 30
Soluzione (1 / 3) Login con root adduser s (pippo) vipw : aggiungere la riga (es.): pluto::1002:1002::0:0:pluto:/home/pluto:/bin/sh Attenzione: scegliere come ID di utente e gruppo un valore non in uso vi /etc/group : aggiungere la riga (es.): (vigr) pluto:*:1002: Attenzione: scegliere come ID di gruppo lo stesso indicato nel punto 1. mkdir /home/pluto cp /usr/share/skel/* /home/pluto chown -R pluto:pluto /home/pluto chmod R u+rwx,g+rx,o+rx /home/pluto loggarsi con pluto e cambiare password (comando passwd). 31
Soluzione (2 / 3) pluto non può creare file nella home di pippo con i permessi default. Quindi, dato che non appartengono allo stesso gruppo, bisogna aggiungere il permesso in scrittura per la sezione others chmod o+w /home/pluto chmod o+w /home/pippo Una soluzione migliore consiste nel definire un gruppo a cui appartengono pluto e pippo e assegnare tale gruppo alle home dei due utenti e abilitare il diritto di scrittura (group owner) sulle due cartelle. su root (oppure logout, login con root) vi /etc/group : aggiungere la riga (es.): floppyusr:*:1003:pluto 32
Soluzione (3 / 3) Le nuove impostazioni sui gruppi diventano effettive al nuovo login, come si può osservare dalla seguente sequenza di comandi: id logout login con pluto id L'output prodotto dal comando id è diverso nei due casi (solo nel secondo viene mostrato il gruppo al quale pluto è stato aggiunto). su root (oppure logout, login con root) mkdir /tmp/floppy chown :floppyusr /tmp/floppy chmod g+rwx,o-rwx /tmp/floppy 33 3
Opzionalmente... se c'è tempo 34
Interfaccia grafica 1. Creare nella propria home un file con nome:.xinitrc 2. Nel file.xinitrc scrivere: wmaker (o il window manager preferito) 3. Chiudere e salvare il file.xinitrc 4. Digitare il comando startx Esercitazione 2 Daniel Cesarini 35 35
X Window System creato dal MIT nel 1984. fornisce l'ambiente e i componenti di base per le interfacce grafiche: disegno e spostamento delle finestre sullo schermo l'interazione con il mouse e la tastiera non gestisce l'interfaccia grafica utente o lo stile grafico delle applicazioni questi aspetti sono gestiti direttamente da ogni singola applicazione trasparenza di rete Esercitazione 2 Daniel Cesarini 36 36
X Window System (2) X usa un modello client/server: il server X comunica con gli altri programmi (client) Il server accetta richieste per output grafici (finestre) e input dall'utente (dalla tastiera, il mouse o dal touchscreen). Il server X può essere: un programma di sistema che controlla l'output video di un PC un componente hardware dedicato un'applicazione che mostra dati su una finestra di un altro sistema grafico. Esercitazione 2 Daniel Cesarini 37 37
X Window System (3) Il protocollo di comunicazione tra server e client opera in modo trasparente rispetto alla rete: entrambi possono risiedere sulla stessa macchina o su altre, anche con architetture e sistemi operativi differenti il server ed il client possono anche comunicare in modo sicuro attraverso la rete sfruttando un tunnel cifrato (SSH). Esercitazione 2 Daniel Cesarini 38 38