NOTA: Login és un paquet que forma parts de les shadow-utils. Vegeu també LPI_107.1. Gestió d'usuaris i comptes de grup i els fitxers de sistema relacionats
A sistemes de la família Debian com Ubuntu el paquet login forma part de les shadow-utils. L'altre paquet de les eines shadow és passwd.
El camí complet és:
/bin/login
I la proporciona el paquet login:
$ dpkg -L login | grep bin /usr/sbin /usr/sbin/nologin /usr/bin /usr/bin/faillog /usr/bin/lastlog /usr/bin/newgrp /bin /bin/login /bin/su /usr/bin/sg
Serveix per refusar el login a certs usuaris:
$ nologin This account is currently not available.
Us podeu trobar alguns exemples en usuaris de sistema:
$ cat /etc/passwd | grep nologin sshd:x:113:65534::/var/run/sshd:/usr/sbin/nologin
Encara que la majoria utilitzant /bin/false.
Mostra el log de logins incorrectes (si està activat al fitxer /etc/login.defs, paràmetres FAILLOG_ENAB i LOG UNKFAIL ENAB). El fitxer de log és:
/var/log/faillog
I es pot consultar amb l'ordre:
$ faillog
També serveix per gestionar els errors de login. Consulteu:
$ man faillog
Per consultar el faillog d'un usuari:
$ sudo faillog -a | grep sergi sergi 0 0 01/01/70 01:00:00 +0100
Consulteu també ulimit.
Per defecte aquest log no s'activa per qüestions de seguretat (sovint els usuaris s'equivoquen i escriuen la paraula de pas en comptes de l'usuari).
Mostra els últims logins dels usuaris:
$ lastlog Usuari Port Des de Últim root **No ha entrat mai** daemon **No ha entrat mai** bin **No ha entrat mai** sys **No ha entrat mai** sync **No ha entrat mai** games **No ha entrat mai** man **No ha entrat mai** lp **No ha entrat mai** mail **No ha entrat mai** news **No ha entrat mai** uucp **No ha entrat mai** proxy **No ha entrat mai** www-data **No ha entrat mai** backup **No ha entrat mai** list **No ha entrat mai** irc **No ha entrat mai**
Per consultar el lastlog d'un usuari:
$ lastlog -u sergi Usuari Port Des de Últim sergi tty1 dc mar 31 05:18:00 +0200 2010
Mostra els últims logins:
$ last sergi pts/7 :0.0 Mon Apr 5 21:09 still logged in sergi pts/6 :0.0 Mon Apr 5 20:06 still logged in sergi pts/5 :0.0 Mon Apr 5 19:55 still logged in sergi pts/1 :0.0 Mon Apr 5 06:58 still logged in sergi pts/1 :0.0 Mon Apr 5 06:08 - 06:08 (00:00) sergi pts/1 :0.0 Mon Apr 5 05:42 - 06:06 (00:23) sergi pts/5 :0.0 Mon Apr 5 05:23 - 05:39 (00:15) sergi pts/4 :0.0 Fri Apr 2 10:50 still logged in sergi pts/4 :0.0 Fri Apr 2 06:42 - 10:50 (04:07) sergi pts/3 :0.0 Fri Apr 2 06:42 still logged in sergi pts/2 :0.0 Fri Apr 2 06:40 still logged in sergi pts/1 :0.0 Fri Apr 2 05:47 - 05:39 (2+23:52) sergi pts/0 :0.0 Fri Apr 2 05:13 still logged in sergi tty7 :0 Fri Apr 2 05:12 still logged in reboot system boot 2.6.31-20-generi Fri Apr 2 05:12 - 22:07 (3+16:55) sergi pts/4 :0.0 Thu Apr 1 21:10 - 23:40 (02:29) sergi pts/10 :0.0 Thu Apr 1 19:31 - 23:40 (04:08) sergi pts/9 :0.0 Thu Apr 1 18:07 - 23:40 (05:32) sergi pts/8 :0.0 Thu Apr 1 18:07 - 20:41 (02:34) sergi pts/7 :0.0 Thu Apr 1 07:59 - 20:41 (12:42) wtmp begins Thu Apr 1 07:22:31 2010
NOTA: Per entrar temporalment com un altre usuari vegeu l'ordre su i sg. També podeu consultar sudo
Aquesta ordre permet iniciar un interpret d'ordres nou al qual el grup per defecte de l'usuari és un de diferent al per defecte. Aquest ordre és útil per crear carpetes o fitxers que siguin propietat d'un grup privat de l'usuari (User Private Group (UPG)]]). Per tornar al grup per defecte només cal sortir del nou interpret d'ordres.
NOTA: Només funciona si l'usuari pertany a més d'un grup
També s'utilitza per canviar el grup associat a un fitxer:
$ newgrp group-name file-name
Per poder-ho fer cal ser un membre del grup o ser superusuari. Si el grup té una paraula de pas aleshores es demanarà la paraula de pas.
L'ordre funciona canviant l'identificador de grup efectiu (effective GID). Si no indiquem cap opció és torna al GID per defecte.
Finalment es pot simular un login com a membre d'un grup amb:
$ newgrp - cada
Si el grup té paraula de pas i l'usuari no és membre del grup li demanarà una paraula de pas:
$ newgrp casa Contrasenya:
Vegem un exemple complet:
Aneu a la vostra HOME i consulteu quins són els vostres grups amb l'ordre groups:
$ cd $ groups sergi adm dialout cdrom plugdev lpadmin admin sambashare bsf profes
Ara creeu una carpeta de prova i comproveu que és propietat del vostre grup per defecte (a l'exemple el grup per defecte és sergi):
$ mkdir prova $ ls -la | grep prova drwxr-xr-x 2 sergi sergi 4096 2010-04-10 16:42 prova
Abans de continuar apunteu-vos el PID de l'interpret d'ordres que esteu utilitzant:
$ echo $$ 9542
Anem a canviar-nos temporalment el grup per defecte:
$ newgrp profes
Comproveu que el que s'ha fet és iniciar una nova shell (diferent PID)
$ echo $$ 6296
Ara creeu una carpeta nova de prova:
$ mkdir prova1 $ ls -la | grep prova drwxr-xr-x 2 sergi sergi 4096 2010-04-10 16:42 prova drwxr-xr-x 2 sergi profes 4096 2010-04-10 16:43 prova1
Observeu com canvia el grup de la carpeta creada.
Sortiu de l'interpret d'ordres temporal:
$ exit
Netegeu les proves:
$ sudo rm -rf prova $ sudo rm -rf prov1
Executa un ordre amb un GID diferent.
$ sg ordre
Comanda germana de su. Vegeu també newgrp.
Permet canviar d'usuari (canviar el UID) o canviar a superusuari. Sense opcions:
$ su
Canvia a superusuari.
NOTA: El entorn però no és el del nou usuari i/o root. Heu d'executar:
$ su -
Per obtenir el entorn del superusuari (variables d'entorn...)
Per canviar a un altre usuari:
$ su - usuari
En sistemes com Ubuntu on el superusuari root està bloquejat es pot utilitzar;
$ sudo su -
Al fitxer /etc/login.defs us podeu trobar els valors
SYSLOG_SU_ENAB yes SYSLOG_SG_ENAB yes
Que activant els missatges d'activitat de su al syslog.
També es pot utilitzar per executar una ordre com un altre usuari:
$ su usuari -c "ls -la"
Vegeu també:
sudo
I la ordre germana per a grups:
sg
Al fitxer de configuració /etc/pam.d/su:
$ cat /etc/pam.d/su | more
Podeu trobar opcions interessants de configuració de su. Consulteu també PAM.
Consulteu /etc/login.defs
És un paràmetre que es troba al fitxer /etc/default/rcS i que permet indicar si es vol fer un delay del login.
Es pot modificar el missatge previ modificant el fitxer
/etc/issue
Per exemple, amb una màquina virtual amb Virtual Box, executant un IPCOP, volem mostrar als usuaris quin usuari i paraula de pas necessiten per entrar:
$ sudo nano /etc/issue
El fitxer issue és un dels fitxers bàsics del sistema:
$ dpkg -S /etc/issue base-files: /etc/issue
Cal modificar el fitxer:
/etc/motd
MOTD: Message Of The Day
$ sudo apt-get install linuxlogo
Executeu:
# linuxlogo -L list # linuxlogo -L 24
Per passar un missatge al fitxer motd
# linuxlogo -L 24 > /etc/motd
El missatge es genera dinàmicament i els canvis que fem als fitxers motd i motd.tail són sobreescrits.
Consulteu el fitxer:
$ ls -la /etc/rc3.d/S70bootlogs.sh lrwxrwxrwx 1 root root 21 2009-05-20 21:09 /etc/rc3.d/S70bootlogs.sh -> ../init.d/bootlogs.sh
És a dir el fitxer
/etc/init.d/bootlogs.sh
$ sudo joe /etc/init.d/bootlogs.sh ... # Update motd uname -snrvm > /var/run/motd [ -f /etc/motd.tail ] && cat /etc/motd.tail >> /var/run/motd
Consulteu:
Recursos:
Mostra una cita cada cop que s'inicia una sessió:
$ sudo apt-get install fortune-mod
Editeu el fitxer .bashrc
$ joe ~/.bashrc
I afegiu les següents línies:
if [ -x /usr/games/fortune ]; then /usr/games/fortune -s fi
Podeu modificar el fitxer ~/.bashrc