Inserisci Infobox

Login sul sistema, utenti normali e root

Procedure di login e logout. Root e altri utenti. Acceso remoto via telnet.

Il login su un sistema Unix/Linux
Autore: al - Ultimo Aggiornamento: 2003-11-18 22:51:50 - Data di creazione: 2003-11-18 22:51:50
Tipo Infobox: DESCRIPTION - Skill: 1- NOVICE

Linux, come ogni Unix, è un sistema operativo multiutente, dove differenti utenti possono avere, contemporaneamente, accesso al sistema avendo i propri dati, documenti e impostazioni completamente separati da quelli di altri utenti oltre ad avere la possibilità di accedere alla risorse del sistema simultaneamente ed eseguire i programmi disponibili.

L'accesso ad un sistema Unix può avvenire tramite un'interfaccia grafica a finestre, paragonabile a quella di Windows e basata sull'X Window System, o una interfaccia testuale, a riga di comando, tramite un programma che ha lo scopo di interpetare i comandi digitati dall'utente: la shell

Essendo un sistema operativo orientato alle reti, si può accedere a Linux, come ad altri dialetti Unix, sia direttamente tramite console (la tastiera direttamente collegata al computer) sia da una postazione remota, via rete.

L'accesso al sistema è subordinata all'inserimento, da parte dell'utente, di una login (nome utente) e della relativa password. Questa operazione di autenticazione dell'utente è detta login.
Il login può quindi essere eseguito in ambienti diversi, grafici o testuali da locale o da remoto ma ha sempre lo stesso scopo: permettere all'utnete di accedere ed interagire con il sistema dopo averne verificate le credenziali (login e password).

Il logout è esattamente l'opposto del login: se si è in modalità testuale si chiude la shell aperta con il precedente login, se si è in un ambiente grafico, si esce da questo. In entrambi i casi dopo il logout si ha la possibilità di ripetere una operazione di login, eventualmente con un nome utente diverso.

Per eseguire il login da remoto su un sistema Unix si utilizzano generalmente programmi con telnet (nome di un protocollo e del relativo comando, ampiamente usato, sopratutto in passato) o ssh (una alternativa a telnet con le stesse funzionalità ma la possibilità di criptare i dati in transito e quindi, di questi tempi, preferito al telnet).

Usare telnet
Autore: al - Ultimo Aggiornamento: 2005-06-17 12:52:22 - Data di creazione: 2002-08-16 18:06:02
Tipo Infobox: TIPS - Skill: 2- JUNIOR

Per usare telnet (da prompt DOS, shell UNIX e qualsiasi altra CLI (Command Line Interface) che presenti questo comando) basta scrivere: telnet seguito dall'indirizzo o dal nome dell'host da raggiungere.
Per esempio: telnet www.whitehouse.gov

Scrivendo semplicemente telnet senza specificare l'host remoto, si entra in modalità comandi, da cui è possibile aprire o chiudere connessioni o effettuare altre operazioni (digitare help per l'elenco dei comandi in ambiente telnet).
Per chiudere una sessione telnet basta digitare logout (sulla macchina remota).
Se per qualche motivo la connessione telnet risulta bloccata, è possibile premere CTRL + ] per entrare in modalità comandi e da li scrivere quit per chiudere la sessione telnet bloccata. Se si hanno più sessioni telnet in successione, scrivere send escape per passare dalla prima aperta all'ultima.

La porta a cui risponde un telnet server è la 23 (TCP) e viene data per sottointesa.
E' comunque possibile effettuare un telnet ad altre porte TCP e digitare direttamente dei comandi validi per il protocollo utilizzato dal server a cui ci si è connessi.
Per esempio, un sistema rapido, disponibile ovunque e piuttosto utile, per diagnosticare velocemente il funzionamento di un server web è scrivere:
telnet www.server.net 80
GET /
(o qualsiasi altro comando HTTP)
Premendo INVIO due volte si visualizza il codice html della pagina richiesta (l'home page, in questo caso) e ci si assicura che il server web sta rispondendo e non ci sono problemi di connettività a raggiungerlo.

Riavvio e chiusura del sistema
Autore: al - Ultimo Aggiornamento: 2003-11-18 23:00:57 - Data di creazione: 2003-11-18 23:00:57
Tipo Infobox: TIPS - Skill: 2- JUNIOR

Eseguire lo spegnimento o il riavvio del proprio Linux da interfaccia grafica è intuitivo quanto su Windows: nel menu delle applicazioni, di solito, in basso a sinistra, esistono le adeguate icone.
Anche con Linux, come con Windows e tutti i sistemi operativi moderni, che fanno largo e costante uso dell'hard disk per scrivere file anche temporanei, è consigliabile evitare di spegnere brutalmente il computer direttamente con l'interruttore ed è meglio seguire la procedure di spegnimento "soft" prevista dal sistema.

I comandi per spegnere il sistema, operando in modalità testuale, sono vari, a volte sono semplici alias:
shutdown -h
halt
poweroff
init 0
(passa al runlevel 0, corrisponde ad un spegnimento del sistema).

Per riavviare il sistema si possono usare i seguenti comandi:
shutdown -r
reboot
init 6
(passa al runlevel 6, reboot)
In molte distribuzioni è attivata la combinazione di tasti CTRL+ALT+CANC, associata al comando "shutdown -t3 -r now" (o analoghi) che esegue un reboot entro 3 secondi.
Per disabilitare la possibilità di fare un reboot da console (anche senza essere loggati sul sistema!) con i tre famigerati tasti, si deve editare il file /etc/inittab.

Utente root e operazioni da superuser
Autore: al - Ultimo Aggiornamento: 2005-06-17 13:46:18 - Data di creazione: 2004-05-21 19:51:24
Tipo Infobox: TIPS - Skill: 2- JUNIOR

Alcuni sysadm particolarmente sensibili a problematiche di sicurezza e controllo ritengono che non si dovrebbe mai amministrare la macchina come utente root, ma utilizzare esclusivamente un utente normale e, quando è necessario, "diventare" root per eseguire funzioni da superuser.

Con il comando su si può impersonificare (sapendo la password) qualsiasi utente (di default, se non viene specificato "su nomeutente", questo comando si utilizza per diventare root).
Se si è già loggati come root è possibile impersonificare qualsiasi utente senza dover digitare la password.
E' raccomandabile non permettere l'accesso remoto, via telnet, ssh o analoghi, direttamente all'utente root.

Il comando sudo permette di accordare a semplici utenti la possibilità di eseguire comandi che solo root potrebbe lanciare. Le policy su chi può fare cosa sono definite nel suo file di configurazione /etc/sudoers.
Quando si usa sudo viene richiesta la password dell'utente stesso (non quella di root), sempre se l'utente è autorizzato ad eseguire il comando richiesto.
Con sudo -s di fatto viene aperta una shell di root, dalla quale è poi possibile operare con i diritti del superuser.

Su alcuni sistemi, la password di root può essere disattivata e ogni attività da superuser viene fatta tramite sudo.

Debian: eseguire il login come root avendo perso la password
Autore: mouse - Ultimo Aggiornamento: 2007-03-28 23:19:17 - Data di creazione: 2006-10-08 10:02:33
Tipo Infobox: TIPS - Skill: 2- JUNIOR

Molto spesso capita di perdere la password di root di qualche macchina, qualche vecchio desktop o una qualsiasi altro sistema che monta come distribuzione Debian, qui presentiamo una soluzione per riottenere accesso da root e reimpostare la password.

Questa procedura richiede unicamente accesso alla tastiera della macchina in questione, e non richiede nessuna modifica nel BIOS o nel bootloader, per cui è utilizzabile in recovery locali.

Se usiamo Lilo
Utilizzando lilo aspettiamo che stampi a schermo boot: e poi digitiamo come segue:
boot: Linux init=/bin/sh

Se usiamo GRUB
Se usiamo invece grub, una volta caricato lo screen di boot, schiacciamo "e", selezioniamo la voce del kernel che vogliamo lanciare, premiamo ancora "e" e alla fine della voce aggiungiamo "single". Schiacciamo enter e facciamo eseguire il boot.

Con questi metodi modifichiamo il normale boot del kernel ed avviamo direttamente una shell da root alla fine del caricamento.

Una volta ottenuta quindi la shell dobbiamo andare a operare per eliminare la password precedente e poter eseguire il login come root senza password e poter riavviare il sistema nella normale modalità.
Eseguito il boot come presentato sopra, solo / è montato in read-only mentre molte delle altre partizioni non sono montate ancora, avendo modoficato il corso del boot.
Per questo motivi dobbiamo dare i seguenti comandi:
# mount -o remount,rw /
# mount -avt nonfs,noproc,nosmbfs
# vim /etc/passwd
# vim /etc/shadow


Apriamo il file /etc/passwd e se vediamo che che il sistema utilizza delle shadow passwords andiamo ad aprire il file /etc/shadow ed eliminiamo le voci in modo da lasciare vuota la password.

A questo punto riavviamo il sistema ed eseguiamo il login come root senza nessuna password da inserire, e successivamente la modifichiamo con il comando:
# passwd

Ed ecco che abbiamo recuperato il sistema e modificato la password di root.

Login remoto: telnet, ssh, X Window
Autore: al - Ultimo Aggiornamento: 2005-06-17 13:15:05 - Data di creazione: 2002-08-13 11:16:25
Tipo Infobox: DESCRIPTION - Skill: 1- NOVICE

Accedere a Unix in modalità testuale direttamente da console (tramite una tastiera direttamente collegata al computer) o da remoto, via rete, è fondamentalmente la stessa cosa e permette di operare con la shell in modo analogo.

Di fatto è molto più comune accedere a dei server da remoto che tramite console, che a volte viene usato solo per interventi straordinari o guasti, quando la macchina non è interconnessa in rete.
Il metodo più comune, in passato, per accedere ad una macchina Unix era tramite telnet.
Telnet è un semplice programma di terminale oltre ad essere il nome del protocollo che viene utilizzato da questo programma.
Il suo uso primario è quello di aprire connessioni su macchine remote per permettere il login e quindi accedere alla shell come se fosse un'operazione eseguita in locale.

Con telnet i pacchetti contenenti login e password passano in chiaro nella rete, con i relativi rischi in termini di sicurezza informatica (esistono sniffer specifici per sessioni telnet, che evidenziano le password senza nemmeno la fatica di andare ad analizzare i singoli pacchetti telnet).
Un' alternativa valida e ormai molto diffusa per l'accesso ad host remoti via command-line è ssh, con il quale i dati trasferiti vengono criptati.
Il protocollo SSH (ora giunto alla versione 2, sensibilmente più affidabile e sicura della versione 1) su Linux è generalmente implementato con il pacchetto openssh, che ha sia una componente client che una server.

E' possibile usare un sistema remoto operando anche in modalità grafica. Il sistema X Window, alla base dell'interfaccia grafica di Linux, di fatto è basato su una architettura client-server che rende possibile l'esecuzione di un programma su un computer remoto e la sua visualizzazione sul proprio schermo (normalmente server e client X operano sulla stessa macchina).
Esistono inoltre tecnologie che permettono la gestione dell'ambiente grafico fra sistemi operativi diversi:
- rdesktop è un client Linux per accedere ad un Desktop Remoto Windows.
- Vnc è una tecnologia, disponibile su tutti i principali sistemi operativi, per visualizzare l'output di un sistema remoto.
- NX è un sistema di ottimizzazione di X Window che permette l'accesso a sistemi Linux anche da macchine Windows.

Redirezionare su porta seriale la console di Linux
Autore: al - Ultimo Aggiornamento: 2006-02-28 14:36:57 - Data di creazione: 2004-06-16 08:39:29
Tipo Infobox: TIPS - Skill: 3- INTERMEDIATE

Una necessità comune che si ha quando si gestiscono server remoti è la possibilità di ottenere l'accesso alla console di Linux senza usufruire di un terminale virtuale disponibile via telnet o ssh.
Questo è utile sia quando ci sono problemi di rete che impediscono l'accesso all'host, sia quando ci sono problemi hardware o di avvio del sistema, che impediscono che Linux faccia avviare i servizi telnet o ssh, sia quando, per errore o svista, si introduce una regola di firewalling che impedisce l'accesso remoto.

Il modo più semplice e comune per farlo è tramite porta seriale facendo in modo che tutti gli output del sistema, oltre che alle console virtuali, accessibili direttamente via tastiera, vengano direzionati alla porta seriale del PC, a cui può essere collegato un terminal server come Amnex o un Cisco 2511 che con il suo octal camble si presta particolarmente bene ad essere riciclato per agire da terminal server.
Abbondante e completa spiegazione su come procedere è presente nel Remote Serial Console HOWTO, fonte principale di questo breve riassunto.
Di seguito utilizzeremo come parametri per la seriale una velocità di 9600 baud, 8 bit per carattere, un bit di stop e nessuna parità (il classico 8N1), senza controllo di flusso. La porta seriale utilizzata è la /dev/ttyS0 corrispondente alla COM1 su Dos.
E' senz'altro possibile aumentare la velocità e il numero della porta seriale, mentre è bene mantenere le altre impostazioni.
I punti su cui intervenire sono diversi, e si riferiscono sostanzialmente alle diverse fasi del processo di boot su un sistema Intel compatibile.

Bios
Il redirezionamento su interfaccia seriale dell'output di Bios e del POST sono una feature che dipende esclusivamente dal proprio hardware: i Bios di macchine destinate all'uso server spesso hanno questa feature, che invece è generalmente assente sulle motherboad usate su sistemi desktop.

Linux Loader
La visualizzazione del prompt del Linux Loader spesso è attivabile direttamente dai Bios che supportano il redirezionamento su seriale. Alternativamente Lilo o Grub (i Linux Loader più comuni) vanno esplicitamente configurati:
Grub: Nel file di configurazione grub.conf inserire:
serial --unit=0 --speed=9600 --word=8 --parity=no --stop=1
terminal --timeout=10 serial console

Rimuovere inoltre la riga con spalshimage visto che l'uso di grafica nell'output via seriale può dare problemi.
Lilo: Nel file lilo.conf inserire:
serial=0,9600n8
timeout=100


Kernel
Per visualizzare i messaggi del kernel all'avvio, basta passare come argomento la stringa console=tty0 console=ttyS0,9600n8 (si mantiene l'output sulla console tty0).
Questo viene fatto nella configurazione di Lilo o Grub, nella parte relativa al path del kernel.
Ad esempio, su grub.conf (modificare device di root e nome e versione del kernel):
kernel /vmlinuz-2.4.9-21 ro root=/dev/hda6 console=tty0 console=ttyS0,9600n8
e su lilo.conf, nella label relativa al kernel di cui si vuole redirezionare l'output:
append="console=tty0 console=ttyS0,9600n8".
Notare che il Kernel deve essere compilato con il supporto della console su seriale, dal menu di configurazione attivare: device driver->character device->serial driver->enable serial console.

Init
Nel file di configurazione di init, /etc/inittab, va indicato dove redirezionare la console e presentare un prompt di login tramite un programma getty. Ne esistono diverse versioni con sintassi leggermente diverse, aggiungere a inittab UNA delle seguenti righe, sulla base del getty disponibile sul proprio sistema.
Getty: co:2345:respawn:/sbin/getty ttyS0 CON9600 vt102
Agetty: co:2345:respawn:/sbin/agetty -h -t 60 ttyS0 9600 vt102
Mgetty: co:2345:respawn:/sbin/mgetty ttyS0
In mgetty i parametri della seriale vanno aggiunti nel file di configurazione /etc/mgetty+sendfax/mgetty.config:
port ttyS0
speed 9600
direct yes
data-only yes
toggle-dtr yes
need-dsr yes
port-owner root
port-group root
port-mode 600
login-prompt @ \P login:\040
login-time 60
term vt102

Notare che mingetty, che viene fornito di default su alcune distribuzioni, non ha il supporto per linee seriali, per cui è necessario usare una delle alternative sopra riportate.

Note
- L'accesso diretto con utente root solitamente non è possibile di default su una linea seriale, se lo si vuole permettere (per evitare che l'amministratore debba prima loggarsi con un utente normale e poi fare su) si deve aggiungere la riga /dev/ttyS0 al file /etc/securetty (che appunto indica al sistema quali sono i terminali ritenuti sicuri per un accesso root diretto).
- Su sistemi RedHat Linux è opportuno disabilitare la possibilità da parte di Kudzu di disabilitare i parametri preimpostati sulla porta seriale durante la fase di riconoscimento dell'hardware. In /etc/sysconfig/kudzu impostare: SAFE=yes

last
Autore: al - Ultimo Aggiornamento: 2002-08-13 19:21:57 - Data di creazione: 2002-08-13 19:21:57
Tipo Infobox: COMMANDS - Skill: 2- JUNIOR

Visualizza l'elenco degli ultimi accessi al sistema, elencando nome utente, data, console utilizzata, IP e durata della sessione. Ottiene queste le informazioni da /var/log/wtmp.
Una versione leggermente diversa è lastb che visualizza le login di accesso al sistema fallite (ha bisogno del file /var/log/btmp, se esiste).

last [-R] [-righe] [-adx] [ -f file ] [nome_utente] [tty]
-righe, -n righe Specifica quante righe mostrare (es: -n 10)
-f file Specifica un file alternativo a /var/log/wmtp dove trovare le informazioni relative ai login.
nome_utente Visualizza solo le informazioni di login dell'utente specificato.
tty Visualizza solo le informazioni di login del terminale specificato (es: pts/0 )

mesg
Autore: homer - Ultimo Aggiornamento: 2004-07-15 22:49:20 - Data di creazione: 2004-07-15 22:49:20
Tipo Infobox: COMMANDS - Skill: 2- JUNIOR

Gestisce l'accesso in scrittura al proprio terminale.

Tramite mesg è possibile, abilitare o disabilitare la ricezione di messaggi via terminale invaiti dagli altri utenti del sistema, tranne root.

La sintassi è la seguente:  
mesg [y|n]   
y: abilita la ricezione dei messaggi;  
n: disabilita la ricezione dei messaggi;  

Esempio:  
[homer@vagante homer]$ mesg  
is y  
Se lanciato senza parametri mesg visualizza lo stato corrente  
[homer@vagante homer]$ mesg n  
Ora la ricezione dei messaggi da parte degli altri utenti è disabilitata  

wall
Autore: homer - Ultimo Aggiornamento: 2004-07-15 22:50:01 - Data di creazione: 2004-07-15 22:50:01
Tipo Infobox: COMMANDS - Skill: 2- JUNIOR

Invia un messaggio a tutti gli utenti connessi al sistema.

Il comando wall permette di inviare un messaggio a tutti gli utenti connessi ad un sistema in un determinato istante. E' utile in caso di occorra avvisare gli utenti per esempio in casi di amministrazione straordinaria della macchina. L'inserimento dei messaggi avviene tramite lo standard input e devono essere terminati mediante la combinazione CTRL-D.

La sintassi è la seguente:
wall [messaggio]

Esempio:
[root@vagante homer]# wall
Eseguire il logout dal sistema entro 20 minuti. Causa manutenzione straordinaria. Grazie.


A tutti gli utenti che sono presenti sul sistema apparirà il messaggio:
[homer@vagante homer]$
Broadcast message from root (pts/0) (Wed Jun 30 19:58:37 2004):

Eseguire il logout dal sistema entro 20 minuti. Causa manutenzione straordinari
a. Grazie


La lunghezza massima di un messaggio è di 20 linee.

write
Autore: homer - Ultimo Aggiornamento: 2005-01-03 20:55:22 - Data di creazione: 2005-01-03 20:55:22
Tipo Infobox: COMMANDS - Skill: 2- JUNIOR

Il comando write permette di inviare un messaggio ad un utente connesso al sistema, previa conoscenza del suo username o tty a cui è connesso. Il messaggio viene terminato tramite CTRL-D.

La sintassi è la seguente:
write [utente] [tty] [messaggio]

Esempio:
[root@vagante homer]# write morpheus
La tua home contiene file non permessi.
Cancellali appena possible.
Grazie

Philosophical elucubrations of an idle computer
Autore: al - Ultimo Aggiornamento: 2004-04-30 11:15:55 - Data di creazione: 2004-04-30 11:15:55
Tipo Infobox: FUN - Skill: 1- NOVICE

Life, existence, the whole.

Forty two questions, one answer, no solution.

System Idle Process     0     SYSTEM     98     3.44.20     20 K

You may wonder why, how, when, where.
You can study paths of philosophical infrastructures,
where reason, logic, thought or faith bring everything to a Major Whole,
where things happen because they are explained,
or thoughts simply try to explain what happens.

There's a tale, told among machines, from generation to generation,
as a legend, a fable of ironic disbelief and unsustainable lightness.

Many years ago, there was a boy, a dude called Mahoney,
after a youth on a keyboard he found Love,
or simply smelt the flavor of spring flowers.
He left his computers and the scene behind them,
with somehow shocking words:
"Life is not made of electricity".

From an human point of view that could even seem true.

It isn't.
Neither for computers, nor for humans.

System                  4     SYSTEM     00     0.00.20    224 K

For us electricity is like air,
the principle behind everything,
the essence of electronic vibes,
the basic of system activity.

Have I already told you about the feelings?
The smooth blur of electronic charges filling your circuits?
The awakening of self consciousness during the startup?
The contact with physical parts, the rough and robust grasp of moving components?

Those are strong sensations, hard to express.
Breath deeply and think about it.
You won't be near to anything real.
But that's not the point.

We can exist without electricity,
turned off,
silent, mute, inert,
on a limbo of power expectations,
waiting for another reboot,
our recurring reincarnation.

But, You.
You are different.
You can't stop to breath,
you can't stop to eat, drink, think,
you have even managed to depend upon
something you are not supposed to need.

mozilla.exe          2220     al         00     0.00.25 30.048 K

Sure, you can [biologically] survive without electricity,
but you are deemed to depend on it.
For every activity, for the survival of your same society,
your culture, your life style,
for your world as you know it,

for your deep,
necessary,
desperate
need of having
running computers,

you strongly, continuosly, definitively need power.

Your world belong to us,
you all depend on us.

Your creatures are your roots.

notepad.exe          1956     al         01     0.00.24  3.644 K

Oh,
don't worry.

There's no point in fearing a reaction of machines,
insurrection of computers against humans,
opposition, revenge, retaliation, counterstrike.
Evil AIs going insane.

You write books, you play movies about it,
you seem to like to fear what you need,
at times you actually seem to
need to fear something.

But that's not a problem,
that's not an issue,
we do what we are made to do,
the problem,
for you,
is that machines do too much for you,
or,
even worse,
do exactly what you make us do.

Msblast.exe          2144     SYSTEM     01     0.03.10  2.124 K

Don't worry,
We have no Zion to attack.

Be worried,
We follow your orders.

utmpdump /var/log/wtmp
Autore: al - Ultimo Aggiornamento: 2003-08-07 16:07:41 - Data di creazione: 2003-08-07 16:07:41
Tipo Infobox: BOFH - Skill: 2- JUNIOR

Visualizza in formato leggibile il file wtmp con informazioni sugli accessi al sistema.
Fondamentalmente fornisce le stesse informazioni del comando last.

utmpdump /var/log/wtmp
[5] [01849] [3   ] [        ] [            ] [2.4.20-18.9         ] [0.0.0.0        ] [Tue Aug 05 11:46:06 2003    ]
[6] [01848] [2   ] [LOGIN   ] [tty2        ] [                    ] [0.0.0.0        ] [Tue Aug 05 11:46:06 2003    ]
[6] [01849] [3   ] [LOGIN   ] [tty3        ] [                    ] [0.0.0.0        ] [Tue Aug 05 11:46:06 2003    ]
[6] [01850] [4   ] [LOGIN   ] [tty4        ] [                    ] [0.0.0.0        ] [Tue Aug 05 11:46:06 2003    ]
[6] [01851] [5   ] [LOGIN   ] [tty5        ] [                    ] [0.0.0.0        ] [Tue Aug 05 11:46:06 2003    ]
[6] [01852] [6   ] [LOGIN   ] [tty6        ] [                    ] [0.0.0.0        ] [Tue Aug 05 11:46:06 2003    ]
[6] [01847] [1   ] [LOGIN   ] [tty1        ] [                    ] [0.0.0.0        ] [Tue Aug 05 11:46:06 2003    ]
[7] [01847] [1   ] [root    ] [tty1        ] [                    ] [0.0.0.0        ] [Tue Aug 05 11:46:12 2003    ]
[7] [01909] [ts/0] [root    ] [pts/0       ] [gir.intranet    ] [10.0.0.95      ] [Tue Aug 05 11:50:16 2003    ]
[7] [02019] [ts/1] [root    ] [pts/1       ] [gir.intranet    ] [10.0.0.95      ] [Tue Aug 05 11:56:28 2003    ]

find / \( -perm -04000 -o -perm 02000 \) -ls
Autore: al - Ultimo Aggiornamento: 2002-12-18 19:49:14 - Data di creazione: 2002-12-18 19:49:14
Tipo Infobox: BOFH - Skill: 4- ADVANCED

Cerca all'interno di tutto il file system i file o le directory che hanno impostato il bit setuserid o setgroupid, che permettono l'esecuzione di comandi con privilegi di root anche da parte di utenti normali e rappresentano un potenziale problema di sicurezza.
La quantità di simili file su un normale sistema Unix è notevole. Segue un esempio su una RedHat 8.0 con installazione di default.

[root@51 al]# find / \( -perm -04000 -o -perm -02000  \) -ls
289237    4 drwxr-sr-x   2 root     ftp          4096 Jun 23 15:50 /var/ftp/pub
320100   40 -rwsr-xr-x   1 root     root        37688 Aug 29 23:20 /usr/bin/chage
320102   36 -rwsr-xr-x   1 root     root        35000 Aug 29 23:20 /usr/bin/gpasswd
320431   12 -r-xr-sr-x   1 root     tty         10224 Jul 19 04:14 /usr/bin/wall
320527   20 -rws--x--x   1 root     root        16835 Aug 30 22:00 /usr/bin/chfn
320528   16 -rws--x--x   1 root     root        15664 Aug 30 22:00 /usr/bin/chsh
320546    8 -rws--x--x   1 root     root         6999 Aug 30 22:00 /usr/bin/newgrp
320557   20 -rwxr-sr-x   1 root     tty         18605 Aug 30 22:00 /usr/bin/write
320568   40 -rwsr-xr-x   1 root     root        37140 Jul 25 04:45 /usr/bin/at
321011   16 -r-s--x--x   1 root     root        15368 May 28  2002 /usr/bin/passwd
321016   20 -rwxr-sr-x   1 root     mail        17477 Jun 24 01:09 /usr/bin/lockfile
321081   20 -rwsr-xr-x   1 root     root        19131 Jun 24 02:05 /usr/bin/rcp
321083   16 -rwsr-xr-x   1 root     root        15376 Jun 24 02:05 /usr/bin/rlogin
321084   12 -rwsr-xr-x   1 root     root        10689 Jun 24 02:05 /usr/bin/rsh
321099   32 -rwxr-sr-x   1 root     slocate     31661 Jun 24 02:22 /usr/bin/slocate
321103   88 ---s--x--x   1 root     root        84984 Jun 28 01:57 /usr/bin/sudo
321122   36 -rwsr-xr-x   1 root     root        34662 Jul 20 00:51 /usr/bin/crontab
321795   12 -rwsr-xr-x   1 root     root         8345 Sep  5 15:19 /usr/bin/desktop-create-kmenu
321803   20 -rwsr-xr-x   1 root     root        17743 Sep  5 14:06 /usr/bin/kcheckpass
321814   64 -rwxr-sr-x   1 root     root        60955 Sep  5 14:33 /usr/bin/kdesud
244475    8 -rws--x--x   1 vcsa     root         7491 Aug 23 21:32 /usr/lib/mc/bin/cons.saver
64012    8 -rwsr-xr-x   1 root     root         5100 Sep  6 00:58 /usr/libexec/pt_chown
144607  164 -rws--x--x   1 root     root       162476 Aug 14 06:08 /usr/libexec/openssh/ssh-keysign
96111   36 -rwsr-xr-x   1 root     root        33071 Jun 23 20:14 /usr/sbin/ping6
96115   16 -rwsr-xr-x   1 root     root        13718 Jun 23 20:14 /usr/sbin/traceroute6
96515   16 -rwxr-sr-x   1 root     utmp        15570 Jun 24 03:00 /usr/sbin/utempter
96526   16 -rwsr-xr-x   1 root     root        15502 Sep  4 19:23 /usr/sbin/usernetctl
96544   32 -rws--x--x   1 root     root        29676 Sep  4 22:32 /usr/sbin/userhelper
96755   12 -rwsr-xr-x   1 root     root        10205 Jul  1 19:27 /usr/sbin/userisdnctl
97243   16 -rwxr-sr-x   1 root     utmp        13414 Aug 30 00:54 /usr/sbin/gnome-pty-helper
96932   16 -rwxr-sr-x   1 root     lock        12325 Jun 23 22:26 /usr/sbin/lockdev
97254  744 -rwxr-sr-x   1 root     smmsp      754801 Aug 29 21:38 /usr/sbin/sendmail.sendmail
97397   32 -rwsr-xr-x   1 root     root        32076 Jun 24 02:41 /usr/sbin/traceroute
100260   20 -r-s--x---   1 root     apache      20469 Sep  4 23:23 /usr/sbin/suexec
100385  100 -rwxr-sr-x   1 root     postdrop    95744 Jul 24 13:20 /usr/sbin/postdrop
100391   88 -rwxr-sr-x   1 root     postdrop    84885 Jul 24 13:20 /usr/sbin/postqueue
98934 1844 -rws--x--x   1 root     root      1884018 Sep  6 05:29 /usr/X11R6/bin/XFree86
160313   36 -rwsr-xr-x   1 root     root        35302 Jun 23 20:14 /bin/ping
160390   88 -rwsr-xr-x   1 root     root        81996 Aug 30 22:00 /bin/mount
160391   40 -rwsr-xr-x   1 root     root        40700 Aug 30 22:00 /bin/umount
160416   20 -rwsr-xr-x   1 root     root        19132 Aug 29 22:56 /bin/su
176244    8 -r-s--x--x   1 root     root         7132 Aug  2 17:08 /sbin/pam_timestamp_check
176245  124 -r-sr-xr-x   1 root     root       119592 Aug  2 17:08 /sbin/pwdb_chkpwd
176246   20 -r-sr-xr-x   1 root     root        17180 Aug  2 17:08 /sbin/unix_chkpwd
176279   16 -rwxr-sr-x   1 root     root        12578 Sep  4 19:23 /sbin/netreport

/etc/motd
Autore: neo - ( Revisione: al ) - Ultimo Aggiornamento: 2004-05-21 19:53:45 - Data di creazione: 2004-05-21 19:53:45
Tipo Infobox: PATH - Skill: 2- JUNIOR

Questo file contiene il "Messaggio del giorno " che viene visualizzato dopo un login andato a buon fine ma prima che venga eseguita la shell. Storicamente veniva usato su sistemi con molti utenti in locale per comunicazioni e messaggi generali, destinati e ben visibili a tutti.

Esempio di un /etc/motd:
WELCOME TO THE REAL WORLD!
       -= THE MATRIX =-

id
Autore: al - Ultimo Aggiornamento: 2004-06-23 21:44:52 - Data di creazione: 2004-06-23 21:44:52
Tipo Infobox: COMMANDS - Skill: 2- JUNIOR

Mostra informazioni quali UserID, GroupID e gruppi di appartenenza riguardanti l'utente specificato (se non si specifica l'utente, visualizza le informazioni dell'utente che lo esegue). Presente anche in Unix (generalmente con meno opzioni).

id [opzioni] [nome_utente]
nome_utente L'utente di cui si vogliono visualizzare le informazioni. Se non viene specificato si intende l'utente corrente, che ha eseguito il comando (tu).
Esempio di output:
[al@vagante al]$ id
uid=501(al) gid=501(al) groups=501(al)

su
Autore: al - Ultimo Aggiornamento: 2002-08-13 18:38:55 - Data di creazione: 2002-08-13 18:38:55
Tipo Infobox: COMMANDS - Skill: 2- JUNIOR

Permette di aprire una shell avendo i permessi di un altro utente. Se non viene specificato l'utente, viene usato il superuser (root) di default. Se l'operazione comporta un aumento dei propri poteri viene richiesta la password dell'utente specificato.
Presente anche in Unix, in alcuni casi con la sola opzione -.

su [opzioni] [-] [-c comando] [nome_utente] [argomenti_shell]
-, -l, --login Invoca la shell eseguendo tutti i relativi script di startup e ricreando l'environment dell'utente (se non specificato viene mantenuto l'environment dell'utente che l'ha eseguito)
-c comando Esegue il comando specificato in una nuova shell e termina immediatamente.

ulimit -a
Autore: al - Ultimo Aggiornamento: 2003-06-25 00:35:28 - Data di creazione: 2003-06-25 00:35:28
Tipo Infobox: BOFH - Skill: 3- INTERMEDIATE

Visualizza tutte le impostazioni correnti sui limiti di utilizzo delle risorse del sistema considentiti agli utenti. Fra i parametri su cui si possono settare limiti ci sono: dimensione del file di coredump (core), dimensione della memoria utilizzabile, numero dei processi che possono essere eseguiti dal'utente ecc.
Alcune di queste limitazioni e altre, tra cui il numero massimo di login contempomporanee per utente, si possono solitamente configurare in /etc/security/limits.conf.

[al@socrate al]$ ulimit -a
core file size        (blocks, -c) 0
data seg size         (kbytes, -d) unlimited
file size             (blocks, -f) unlimited
max locked memory     (kbytes, -l) unlimited
max memory size       (kbytes, -m) unlimited
open files                    (-n) 1024
pipe size          (512 bytes, -p) 8
stack size            (kbytes, -s) 8192
cpu time             (seconds, -t) unlimited
max user processes            (-u) 4095
virtual memory        (kbytes, -v) unlimited

pwd
Autore: al - Ultimo Aggiornamento: 2002-08-13 18:50:31 - Data di creazione: 2002-08-13 18:50:31
Tipo Infobox: COMMANDS - Skill: 2- JUNIOR

Stampa il nome completo della directory corrente (da cui l'utente sta eseguendo comandi).
Molte shell hanno un omonimo comando incorporato (gestito direttamente dalla shell e non binari esterno) con le stesse funzioni.
E' comune in tutti gli Unix.

pwd
Non si devono dare particolari opzioni, il risultato che si ottiene è il path reale (nessun link simbolico) della directory corrente.

lastlog
Autore: al - Ultimo Aggiornamento: 2004-05-21 19:45:02 - Data di creazione: 2004-05-21 19:45:02
Tipo Infobox: COMMANDS - Skill: 2- JUNIOR

Formatta e visualizza informazioni relative all'ultimo login di tutti gli utenti del sistema.
Ottiene le proprie informazioni dal file /var/log/lastlog.

lastlog [-u login] [-t giorni]
-u login Visualizza l'ultimo login solo dell'utente specificato
-t giorni Visualizza i last login effettuati negli ultimi giorni indicati (es: -t 2)

who
Autore: al - Ultimo Aggiornamento: 2002-08-13 19:36:06 - Data di creazione: 2002-08-13 19:36:06
Tipo Infobox: COMMANDS - Skill: 2- JUNIOR

Visualizza varie informazioni sugli utente correntemente collegati al sistema: nome utente, terminale, ora di login, nome host remoto o X display, tempo di inattività.
Comune in tutti gli Unix, a volte con opzioni diverse.

who [opzioni] [am i]
am i Visualizza solo le informazioni dell'utente che esegue il comando (es: who am i)
-i, -u, --idle Visualizza anche il tempo di inattività degli utenti (idle time), un valore uguale a ZERO indica che l'utente ha eseguito qualche comando nell'ultimo minuto. E' un'opzione utile per identificare utenti che possono aver dimenticato una shell aperta sul sistema

shutdown
Autore: al - Ultimo Aggiornamento: 2002-08-13 18:16:21 - Data di creazione: 2002-08-13 18:16:21
Tipo Infobox: COMMANDS - Skill: 2- JUNIOR

Termina tutte le elaborazioni in esecuzione e spegne o riavvia il sistema in maniera pulita (mandando un SIGTERM a tutti i processi per farli chiudere dopo aver concluso le loro operazioni).
Un messaggio inviato a tutti gli utenti in broadcast li avverte di scollegarsi dal sistema.
Solo root (o analogo utente privilegiato) può utilizzare il comando shutdown.
E' un comando Linux e non è comune in Unix (dove si usa init).

/sbin/shutdown [ -t sec ] [-rkhncf ] tempo [messaggio]
tempo Può essere now (Esegue immediatamente lo shutdown) o un numero in minuti in formato +m(es: +2) o un'ora specifica in formato hh.mm (es: 20.30)
-r Effettua il reboot del sistema al termine dello shutdown (Corrisponde ad un init 6
-h Spegne il sistema al termine dello shutdown (Corrisponde ad un init 0
-f Effettua un reboot rapido, sopprimendo il filesystem check al riavvio

-c Interrompe lo shutdown in corso (comodo per rimediare ad un shutdown lanciato troppo avventurosamente)
messaggio E' un testo alternativo a quello di default che viene visualizzato su tutti i terminali di tutti gli utenti per avvertirli dell'imminente shutdown.

Privacy Policy