Il seguente comando copia da filein a fileout 100 byte intervallati di 10 byte, ovvero byte_1, byte_11, byte_21, etcâŚ
dd if=filein of=fileout bs=1 seek=10 count=100
Scegli unâalternativa:
Falso
Vero
Risposta
Falso
Motivazione:
bs=1 indica che utilizzerĂ blocchi con dimensione da 1byte
seek=10 indica che salterĂ i primi 10 blocchi (10byte) del file in input (filein)
count=100 indica che inserirĂ nel file in output fileout soltanto 100 blocchi (100byte)
Domanda Numero 2 đ˘
Supponiamo di avere una directory /home/dir creata da root con permessi di accesso 0777/drwxrwxrwx(owner root) ed al suo interno il file filename, creato da root, con permessi di accesso 0770/-rwxrwx---(owner root).
Un qualsiasi utente può rimovere il file filename eseguendo, in user mode, il comando rm /home/dir/filename
Vero
Falso
Risposta
Vero
Motivazione:
La directory /home/dir ha permessi 0777 â tutti (owner, gruppo, altri) hanno lettura, scrittura e attraversamento (esecuzione).
Il file /home/dir/filename ha permessi 0770 ed è di proprietĂ di root â solo root e il suo gruppo possono leggerlo, scriverlo o eseguirlo.
Quindi il file si trova dentro una directory scrivibile da tutti.
In Linux, il permesso di cancellare un file non dipende dai permessi del file stesso, ma dai permessi sulla directory che lo contiene.
Un utente per cancella un file nella directory, deve avere sulla directory:
permesso di scrittura (w) â per modificare il contenuto della directory (aggiungere/rimuovere file)
permesso di esecuzione (x) â per attraversarla (navigare dentro)
In questo caso:
/home/dir ha permessi drwxrwxrwx (ovvero 777)
Tutti gli utenti hanno rwx (lettura, scrittura, esecuzione)
Quindi un qualsiasi utente può cancellare un file allâinterno di /home/dir, indipendentemente dai permessi del file.
Come impedire la cancellazione:
un opzione è rimuovere il permesso di scrittura per âothersâ sulla directory, cambiando i permessi in drwxrwxr-x, ma facendo ciò non sarebbe piĂš possible creare nuovi file nella cartella (per un utente qualsiasi)
un altra opzione è rimuovere il diretto di esecuzione per âothersâ sulla directory, cambiando i permessi in drwxrwxrw-, ma facendo ciò non sarebbe piĂš possibile attraversare la directory (per un utente qualsiasi)
Dato che nessuno di queste due soluzione è perfetta è stato introdotto lo sticky bit (t) che se applicato su una directory (permessi = drwxrwxrwt) obbliga lâutente ad avere i permessi di scrittura sul file per cancellarlo.
Domanda Numero 3 đ˘
Si consideri il comando ln -s myfile mylink. Dopo la sua esecuzione, lâoutput dei comandi du myfile e du mylink sarĂ diverso.
Falso
Vero
Risposta
Vero
Motivazione:
Quando si esegue il comando ln -s myfile mylink, si crea un collegamento simbolico chiamato mylink che punta a myfile.
Il comando du myfile restituirĂ la dimensione effettiva del file myfile.
Il comando du mylink restituirĂ generalmente un output di 0 byte, poichĂŠ il collegamento simbolico non occupa spazio significativo.
Quindi, lâoutput di du myfile e du mylink sarĂ diverso.
Domanda Numero 4 đ˘
Il comando ls -r mydir lista il contenuto di tutte le directory con radice mydir.
Vero
Falso
Risposta
Falso
Motivazione: la flag -r (o --reverse) fa sĂŹ che lâoutput venga mostrato in ordine inverso, non che si elenchino tutte le directory a partire da mydir.
Per listare il contenuto di tutte le directory con radice mydir (ricorsivamente) si deve utilizzare la flag -R.
Domanda Numero 5 đ˘
Nel comando # cd ~/Lezione1/esempi/filesystem è stato utilizzato un path relativo:
Vero
Falso
Risposta
Falso
Motivazione: il simbolo ~ rappresenta la home directory dellâutente attuale , quindi il percorso specificato è un path assoluto. I percorsi relativi non iniziano con / o ~, ma sono basati sulla posizione attuale allâinterno del filesystem.
Domanda Numero 6 đ˘
Per visualizzare lâatime di un file quale dei seguenti comandi è corretto?
ls -lu nomefile
ls -lc nomefile
ls -la nomefile
Risposta
ls -lu nomefile
Motivazione:
-a mostra anche gli elementi nascosti (ovvero il cui nome inizia con .)
-l mostra le informazioni estese (long)
-u ordina lâoutput per atime (ma non lo mostra)
-lu, la flag u se unita a -l ovvero -lu mostrato come orario lâatime, ma ordina per nome
-c ordina output per ctime (change time)
-lc, la flag c se unita a -l ovvero -lc mostrato come orario il ctime, ma ordina per nome
Queste cose non vanno imparate a memoria, basta vedere il man ls
Domanda Numero 7 đ˘
Per visualizzare la lista dei file presenti nella CWD ordinati per modified time si utilizza il comando:
ls -lt
ls -lut
ls -la
Risposta
ls -lt
Motivazione:
-a mostra anche gli elementi nascosti (ovvero il cui nome inizia con .)
-l mostra le informazioni estese (long)
-lt lâoutput esteso ordinato per mtime (modified time)
-u ordina output per lâatime (access time)
-lu, la flag -u se unita a -l ovvero -lu mostrato come orario lâatime, ma ordina per nome
-lut, la flag -lu se unita a -t ovvero -lut mostrato come orario lâatime ed ordina per atime
-c ordina output per ctime (change time)
-lc, la flag -c se unita a -l ovvero -lc mostrato come orario il ctime, ma ordina per nome
-lct, la flag -lc se unita a -t ovvero -lct mostrato come orario il ctime ed ordina per ctime
Queste cose non vanno imparate a memoria, basta vedere il man ls
Domanda Numero 8 đ˘
Si supponga di avere un file di testo filein contenente abcdefghilmnopqrstuvwxyzABCDEFGHILMNOPQRSTUVWXYZ dopo lâesecuzione del comando dd if=filein of=fileout bs=2 skip=3 count=10 cosa conterrĂ fileout?
ghilmnopqrstuvwxyzAB
ghilmnopqrstuvwxyzABCDEFGHILMN
GHILMNOPQRSTUVWXYZ
Risposta
ghilmnopqrstuvwxyzAB
Motivazione:
if=filein: specifica il file di input (filein)
of=fileout: specifica il file di output (fileout)
bs=2: imposta la dimensione del blocco a 2 byte
skip=3: salta i primi 3 blocchi di input, quindi 3 * 2 = 6 byte (ovvero salta abcdef)
count=10: copia 10 blocchi (10 * 2 = 20 byte) dopo i byte saltati (ovvero copia ghilmnopqrstuvwxyzAB)
Pertanto, fileout conterrĂ ghilmnopqrstuvwxyzAB
Domanda Numero 9 đ˘
Il comando ls -ltc restituisce la lista dei file nella CWD ordinati per atime.
Falso
Vero
Risposta
Falso
Motivazione: il comando ls -ltc restituisce la lista dei file nella directory corrente (CWD) ordinati per ctime ovvero la data di modifica dei metadati del file, non per atime (data di accesso).
Domanda Numero 10 đ˘
Sia nomefile un file memorizzato nella CWD, il comando touch nomefile crea un file vuoto che sostituisce il file esistente.
Falso
Vero
Risposta
Falso
Motivazione:touch nomefile va ad aggiornare lâaccess time di nome file non lo sostituisce. Lâunico caso in cui touch nomefile crea un file vuoto è quando nomefile non esiste.
Domanda Numero 11
Il valore totale 1512 del seguente codice rappresenta la dimensione della directory in numero di blocchi su disco:
studente@debian9 :~ $ ls -l apache-tomcat-8.0.27/totale 1512drwxr-xr-x 2 studente studente
Vero
Falso
Risposta
Vero
Domanda Numero 12 đ˘
Un utente che appartiene al gruppo sudo può direttamente accedere, in scrittura, al file /etc/passwd.
Falso
Vero
Risposta
Falso
Motivazione: per accedere deve comunque utilizzare il comando sudo
Domanda Numero 13
Entrambi i path che seguono sono path assoluti per lâutente studente:
Consideriamo il file eseguibile myProgram con proprietario utente1 e con permessi di accesso -rwxr-xr-x, se utente2 esegue myProgram si osserva che il RUID == EUID.
Falso
Vero
Risposta
Vero
Motivazione:
RUID (Real User ID) è lâin dellâutente che ha eseguito il programma
EUID (Effective User ID) rappresenta lâID dellâutente con i permessi effettivi del processo
Gli unici casi in cui RUID != EUID è quando:
il programma è stato eseguito con sudo, quindi RUID è lâid dellâutente che ha eseguito il programma e EUID è lâid dellâutente root
il programma ha nei permessi i bit setuid o setgid attivi, in questo caso il EUID sarebbe stato dellâutente/gruppo proprietario del file eseguibile
In questo caso non è stato utilizzato sudo e non sono attivi i bit setuid o setgid, quindi RUID == EUID
Domanda Numero 15 đ˘
Consideriamo il file eseguibile myProgram con proprietario utente1 e con permessi di accesso -rwsr-xr-x, se utente2 esegue myProgram si osserva che il RUID == EUID.
Falso
Vero
Risposta
Falso
Motivazione - i permessi di accesso mostrano che il bit setuid è attivo (-rwsr-xr-x) quindi quando lâutente2 esegue il programma:
il RUID (Real User ID) sarĂ uguale allâid del utente2
lâ EUID (Effective User ID) sarĂ uguale allâid dellâutente proprietario, ovvero lâutente1
Domanda Numero 16 đ˘
Supponiamo di avere una directory /home/dir creata da root con permessi di accesso 1777/drwxrwxrwt(owner root) ed al suo interno il file filename, creato da root, con permessi di accesso 0770/-rwxrwx ---(owner root).
Un qualsiasi utente può rimovere il file filename eseguendo, in user mode, il comando rm /home/dir/filename.
Vero
Falso
Risposta
Falso
Motivazione:
la cartella ha lo sticky bit attivo (drwxrwxrwt) quindi lâunico modo per eliminare il file è avere diritti di scrittura su esso
un utente in usermode non ha nessun privilegio sul file, dato che i permessi su esso sono -rwxrwx --- e è stato creato da root
Domanda Numero 17 đ˘
I permessi di accesso del file eseguibile /usr/bin/passwd sono impostati a 4755/-rwsr-xr-x per impedire che un qualsiasi utente, operante in usermode, possa eseguire il comando passwd e quindi modificare il file /etc/passwd.
Vero
Falso
Risposta
Falso
Motivazione: à vero che file eseguibile /usr/bin/passwd ha i permessi impostati ha 4755/-rwsr-xr-x ma non è vero che questo impedisce che un qualsiasi utente, operante in usermode, possa eseguire il comando passwd e quindi modificare il file /etc/passwd.
Infatti in -rwsr-xr-x lâultima x da il permesso ad un qualsiasi utente ad eseguire il comando.
Domanda Numero 18 đ˘
I permessi di accesso del file eseguibile /usr/bin/passwd sono impostati a 1755/-rwxr-xr-t per consentire ad un qualsiasi utente, operante in usermode, di eseguire il comando passwd e quindi modificare il file /etc/passwd.
Vero
Falso
Risposta
Falso
Motivazione: ĂŠ vero che i permessi 1755/-rwxr-xr-t permettono ad un qualsiasi utente di eseguire il comando, ma in realtĂ il file /usr/bin/passwd ha come permessi 4755/-rwxr-xr-x e non 1755/-rwxr-xr-t.
Infatti lo sticky bit (t) è inutile quando utilizzato su un file quindi il comportamento di 4755/-rwxr-xr-x è equivalente a 1755/-rwxr-xr-t.
Domanda Numero 19 đ˘
Il comando chmod 6774 nomefile imposta i permessi di nomefile a - rwS rwS r--.
Falso
Vero
Risposta
Falso
Motivazione - il comando chmod 6774 imposta i permessi a -rwsrwsr-- non a -rwSrwSr--, infatti:
abbiamo s (piccolo) sullâutente quando è attivo sia setuid sia lâesecuzione x
abbiamo S (grande) sullâutente quando è attivo lâsetuid ma non lâesecuzione x
ragionamento analogo per la sezione gruppo
Domanda Numero 20 đ˘
Il comando sudo adduser utente1 studente genera un errore se il gruppo studente esiste ma lâutente utente1 non esiste.
Vero
Falso
Risposta
Vero
Motivazione: Se utente1 non esiste, il comando genererĂ un errore, poichĂŠ adduser cerca di aggiungere un utente a un gruppo, ma non può farlo se lâutente non è stato creato.
Se dovesse esistere lâutente ma non il gruppo verrebbe comunque generato un errore.
Lâunico caso in cui lâoperazione va a buon fine è se esistono sia lâutente che il gruppo.
Domanda Numero 21 đ˘
Il comando touch -cat202006021200 filename imposta lâatime ed il ctime di filename al â2 giugno 2020 ore 12:00â.
Falso
Vero
Risposta
Falso
Motivazione: il comando non ha senso, il comando coretto è touch -t 202006021200 filename
Sessione pratica: eseguiamo il comando touch -cat202006021200 filename e non avviene nessun cambiamento (controlla utilizzando ls -lu filename e ls -lc filename)
Invece se eseguiamo il comando touch -t 202006021200 filename e poi eseguiamo i comandi ls -lu filename e ls -lc filename otteniamo come output:
-rw-r--r-- 1 501 dialout 0 Jun 2 2020 filename
Domanda Numero 22 đ˘
Il comando ls -R mydir lista il contenuto di tutte le directory con radice mydir.
Falso
Vero
Risposta
Vero
Motivazione: la flag -R sta per recursive quindi effettua ls ricorsivamente su tutte le directory contenute in mydir.
Domanda Numero 23 đ˘
Si assuma di avere due shell aperte, etichettate come shell_1 e shell_2 e si consideri la seguente sequenza di comandi (shell_i:cmd indica che cmd eâ eseguito nella shell i, i=1,2) eseguiti in usermode. Quale è il loro effetto?
Il processo xterm viene portato nello stato Interrupted (I)
Nulla. Un segnale di SIGINT inviato in usermode non viene considerato dal processo che lo riceve.
Il processo xterm viene terminato con segnale SIGINT
Risposta
Il processo xterm viene terminato con segnale SIGINT
Motivazione: Quando un processo riceve il segnale SIGINT viene terminato ovvero viene cancellata la sua esecuzione (se facciamo ps -e non sarĂ piĂš possibile trovarlo).
Note:
Lo stato I non esiste
SIGINT equivale al segnale SIGKILL
SIGINT e SIGKILL sono i segnale che vengono mandati al processo running sulla shell quando premiamo i tasti ctrl + c.
Si assuma di avere due shell aperte, etichettate come shell_1 e shell_2 e si consideri la seguente sequenza di comandi (shell_i:cmd indica che cmd è eseguito nella shell i, i=1,2) eseguiti in usermode. Quale è il loro effetto?
Crea lâutente usertest ma genera dati inconsistenti nel file /etc/passwd
Genera un errore
Crea lâutente usertest e la directory /home/usertest assegnandola come home directory allâutente
Risposta
Crea lâutente usertest ma genera dati inconsistenti nel file /etc/passwd
Motivazione:
Questo comando specifica il percorso della home directory del nuovo utente(/home/testdir), ma ha anche lâopzione --no-create-home di conseguenza:
viene creato lâutente usertest inserendo in /etc/passwd una riga contenete le informazione dellâutente tra cui la sua home directory che viene assegnata a /home/testdir
ma âper colpaâ di --no-create-home non viene create la directory /home/testdir vera e propria nel file system
Lâunico caso in cui questo comando non da problemi è se la cartella /home/testdir fosse giĂ esistente
Prova Pratica:
Dopo aver eseguito il comando sudo adduser --home=/home/testdir --no-create-home usertest, lâoutput di cat /etc/testdir è:
I seguenti segnali possono essere catturati e gestiti da un programma c eseguito in usermode
SIGINT
SIGABRT
SIGTERM
- [ ] Vero
- [ ] Falso
>[!done]- Risposta
>
>Vero
Domanda Numero 28 đ˘
I seguenti segnali non possono essere catturati e gestiti da un programma c eseguito in usermode
SIGKILLSIGINTSIGABRT
Vero
Falso
Risposta
Falso
Domanda Numero 29 đ˘
I comandi ~$ sudo -u usertest e ~$ su -l usertest sono equivalenti
Vero
Falso
Risposta
Falso
Morivazione:
sudo -u usertest
Esegue un comando come lâutente usertest senza cambiare la shell corrente. Può essere usato per eseguire un comando specifico come quellâutente, ed è necessario che lâutente attuale abbia i permessi di sudo per farlo. In oltre richiede la password dellâutente che ha eseguito il comando
su -l usertest
Cambia lâutente attivo a usertest, caricando lâambiente dellâutente (incluso il path e le variabili di ambiente) come se lâutente avesse effettuato il login. Questo comando richiede la password dellâutente usertest.
Possiamo vedere che entrambi hanno lo stesso Inode (62)
Domanda Numero 32 đ˘
Si consideri il comando ln -s myfile mylink. Dopo la sua esecuzione, myfile e mylink avranno un diverso inode.
Vero
Falso
Risposta
Vero
Motivazione:ls -s crea un soft link, che ha differenza del hard link non punta direttamente allâInde del file originale.
Domanda Numero 33
Il comando chmod 6774 nomefile imposta i seguenti permessi per il file nomefile-rwsrwsr--.
Falso
Vero
Risposta
Vero
Domanda Numero 34 đ˘
Assuma di avere due shell aperte, etichettate come shell_1 e shell_2 e supponga di eseguire, in usemode, la sequenza di comandi che segue (shell_i: cmd indica che cmd è eseguito nella shell_i, i=1,2). Quale è il loro effetto sul processo xterm?
Il processo sleep viene prima portato nello stato T e poi mandato nuovamente in esecuzione in foreground
Il processo sleep viene mandato in esecuzione in background
Nessuno. In usermode i processi ignorano il segnale di SIGSTOP. Lâinvio del segnale SIGCONT quindi non modifica lo stato del processo
Risposta
Il processo sleep viene mandato in esecuzione in background
Motivazione:
il segnale SINGSTOP manda il processo nello stato T (stopped)
il segnale SIGCONT manda il processo in esecuzione in background
Domanda Numero 35 đ˘
Il comando ~$ sleep 30 | sleep 15 | sleep 10 & crea 1 job in background
Falso
Vero
Risposta
Vero
Motivazione: Quando si utilizza lâoperatore pipeline (|) questo crea un unico job che contiene tutti i comandi specificati e lâoperatore ampersand (&) lo manda in background.
Test Pratico: Eseguiamo il comando sleep 30 | sleep 15 | sleep 10 &, ora se eseguiamo il comando jobs per vedere i job in esecuzione sulla shell otteniamo in output:
[1] + running sleep 30 | sleep 15 | sleep 10
Se dopo 10 secondi dallâinizio del job eseguiamo jobs otteniamo:
[1] + running sleep 30 | sleep 15 |
done sleep 10
Se dopo 15 secondi dallâinizio del job eseguiamo jobs otteniamo:
[1] + running sleep 30 |
done sleep 15 | sleep 10
Se dopo 30 secondi dallâinizio del job eseguiamo jobs otteniamo:
La directory /tmp ha i permessi di accesso impostati a 1777/drwxrwxrwt per consentire a tutti gli utenti di leggere, creare e rimuovere file anche se non hanno permessi di scrittura su di essi.
Falso
Vero
Risposta
Falso
Motivazione: è vero che \tmp ha come permessi 1777/drwxrwxrwt ma non è vero che questi permessi permettono a tutti di rimuovere i file dalla cartella, dato che lo sticky bit è attivo (drwxrwxrwt) questo obliga ad avere i diretti di esecuzione sul file per eliminarlo.
Domanda Numero 37 đ˘
Consideriamo il file eseguibile myProgram con proprietario utente1 e con permessi di accesso -rwxr-xr-x. Se utente2 esegue myProgram si osserva che il RUID è diverso dal EUID
Falso
Vero
Risposta
Falso
Motivazione: il RUID e il EUID di un processo sono sempre uguali tranne nei casi in cui:
il programma è eseguito con sudo
il fil eseguibile ha i bit setuid o setgid attivi
In questo caso myProgram non viene eseguito con sudo e non ha i bit setuid o setgid attivi, quando RUID == EUID.
Domanda Numero 38
Supponiamo di avere una directory /home/dir creata da root con permessi di accesso 1777/drwxrwxrwt(owner root) ed al suo interno il file filename, creato da root, con permessi di accesso 0770/-rwxrwx---(owner root). Un qualsiasi utente può rimovere il file filename eseguendo, in user mode, il comando rm /home/dir/filename
Vero
Falso
Risposta
Falso
Motivazione:
Dato che la directory /home/dir ha lo sticky bit (t) attivo se un utente vuole modificare in file deve avere i diritti di esecuzione du di esso.
Dato che i permessi del file filename sono impostati ha -rwxrwx--- solo lâutente proprietario o gli utenti che fanno parte degli stessi gruppi dellâutente proprietario hanno diritto di esecuzione sul file.
Di conseguenza un utente qualsiasi non ha diritto di esecuzione sul file e quindi non può eliminarlo.
Domanda Numero 39 đ˘
Per eseguire con successo il comando studente@hostname~$ sudo -u usertest stat file_di_usertest quale password deve essere fornita?
La password dellâutente usertest
La password dellâutente studente
La password di root
Risposta
La password dellâutente studente
Motivazione:
Il comando sudo richiede la password dellâutente che sta eseguendo il comando che in questo caso è studente
Infatti lâheader dello shell (studente@hostname~$) mostra che lâutente è studente
Domanda Numero 40 đ˘
Il comando adduser utente1 e poi adduser utente1 studente , dopo aver creato lâutente utente1, genera errore nellâesecuzione del secondo comando in quanto utente1 esiste giĂ .
Vero
Falso
Risposta
Falso
Se faccio adduser utente1 studente non genera un errore perchĂŠ lâutente utente1 esiste giĂ , infatti questo comando prova ad aggiungere lâutente utente1 al gruppo studente.
Gli unici casi in cui questo comando genera un errore è quando lâ utente utente1 non esiste, o quando il gruppo studente non esiste.
Domanda Numero 41 đ˘
Dopo lâesecuzione del comando ln filename link1, il comando stat filename e stat link1 avranno output uguale a meno del campo âFileâ.
Vero
Falso
Risposta
Vero
Motivazione: eseguendo ln filename link1 andiamo a creare un nuovo file (link1) che è un hard link a filename, di conseguenza abbiamo che link1 punta allo steso inode di filename, per questo condividono tutte le informazioni tranne il nome del file.
Prova Pratica:
Eseguo i comandi touch filename (pre creare il file filename) e poi ln filename link1 per creare lâhard link tra filename e link1.
Ora eseguendo il comando stat filename, ottengo in output:
Una directory con i permessi di accesso impostati a rw- --- --- permette allâutente proprietario della directory di: leggere il contenuto della directory inclusi gli attributi del file; impostare la directory come cwd; attraversare la directory;
Vero
Falso
Risposta
Falso
Motivazione: I permessi rw- --- --- permettono allâutente proprietario di:
âleggereâ la directory (ad esempio utilizzare ls su di essa)
âscrivereâ sulla directory ovvero creare e rimuovere file dalla directory (ma senza x in realtĂ non è possibile)
Non può attraversare la directory quindi non può impostarla come CWD