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).
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
(o qualsiasi altro comando HTTP)
GET /
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.
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
(passa al runlevel 0, corrisponde ad un spegnimento del sistema).
halt
poweroff
init 0
Per riavviare il sistema si possono usare i seguenti comandi:
shutdown -r
(passa al runlevel 6, reboot)
reboot
init 6
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
.
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.
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.
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.
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
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 )
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
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.
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
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.
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 ]
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
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 =-
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)
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.
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
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.
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)
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
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.