23
GESTION DE TERMINALES Airam Godoy Hernández José María Rodríguez Rodríguez 5º Ingeniería en

GESTION DE TERMINALES Airam Godoy Hernández José María Rodríguez Rodríguez 5º Ingeniería en Informática

Embed Size (px)

Citation preview

Page 1: GESTION DE TERMINALES Airam Godoy Hernández José María Rodríguez Rodríguez 5º Ingeniería en Informática

GESTION DE TERMINALES

Airam Godoy Hernández

José María Rodríguez Rodríguez

5º Ingeniería en Informática

Page 2: GESTION DE TERMINALES Airam Godoy Hernández José María Rodríguez Rodríguez 5º Ingeniería en Informática

QuQuéé es un terminal es un terminal• En Linux y otros SO similares se considera la En Linux y otros SO similares se considera la

posibilidad de que un ordenador tenga varios posibilidad de que un ordenador tenga varios usuarios trabajando simultáneamente. usuarios trabajando simultáneamente.

• Cada dispositivo que permite a un usuario Cada dispositivo que permite a un usuario interactuar con una máquina se le llama terminal. interactuar con una máquina se le llama terminal. Hay terminales de entrada como por ejemplo un Hay terminales de entrada como por ejemplo un lector de código de barras, los ya obsoletos lectores lector de código de barras, los ya obsoletos lectores de tarjetas perforadas, terminales salida como por de tarjetas perforadas, terminales salida como por ejemplo una impresora, y terminales de entrada ejemplo una impresora, y terminales de entrada salida como los clásicos terminales de pantalla. salida como los clásicos terminales de pantalla.

• La palabra tty usada para designar los dispositivos La palabra tty usada para designar los dispositivos que controlan los terminales viene de TeleTYpe que controlan los terminales viene de TeleTYpe (teletipo). Los primeros terminales no tenían (teletipo). Los primeros terminales no tenían monitor. Eran simples y primitivos teletipos. monitor. Eran simples y primitivos teletipos.

Page 3: GESTION DE TERMINALES Airam Godoy Hernández José María Rodríguez Rodríguez 5º Ingeniería en Informática

Terminales virtualesTerminales virtuales• En Linux existe una emulación de varios terminales En Linux existe una emulación de varios terminales

sobre un único monitor. Se denominan sobre un único monitor. Se denominan frecuentemente terminales virtuales. Para cambiar de frecuentemente terminales virtuales. Para cambiar de un terminal virtual a otro pulsaremos <Alt><F1>, un terminal virtual a otro pulsaremos <Alt><F1>, <Alt><F2>, <Alt><F3>, etc. Con ello tendremos <Alt><F2>, <Alt><F3>, etc. Con ello tendremos acceso a los terminales /dev/tty1, /dev/tty2, /dev/tty3, acceso a los terminales /dev/tty1, /dev/tty2, /dev/tty3, etc respectivamente. En cada uno de estos terminales etc respectivamente. En cada uno de estos terminales puede mantenerse una sesión de trabajo distinta. puede mantenerse una sesión de trabajo distinta.

• Es como si tuviéramos varios terminales físicos Es como si tuviéramos varios terminales físicos distintos formados por monitor, teclado, altavoz, distintos formados por monitor, teclado, altavoz, memoria, y cable de conexión al ordenador, pero solo memoria, y cable de conexión al ordenador, pero solo pudiéramos usar uno de ellos en un momento dado. pudiéramos usar uno de ellos en un momento dado. La información de cada terminal virtual se encuentra La información de cada terminal virtual se encuentra almacenada en dispositivos /dev/vcs pero no es almacenada en dispositivos /dev/vcs pero no es accesible para usuarios normalitos. accesible para usuarios normalitos.

Page 4: GESTION DE TERMINALES Airam Godoy Hernández José María Rodríguez Rodríguez 5º Ingeniería en Informática

Dispositivos Dispositivos controladores de controladores de

terminalesterminales• Cada terminal virtual está gestionado por un Cada terminal virtual está gestionado por un controlador de dispositivo. Si ejecuta el controlador de dispositivo. Si ejecuta el comando 'tty' obtendrá el nombre del comando 'tty' obtendrá el nombre del controlador que está usando. controlador que está usando.

$$ tty tty /dev/tty3/dev/tty3 • Los terminales virtuales están numerados del 0 Los terminales virtuales están numerados del 0

al 63. Para ver cual es el número del terminal al 63. Para ver cual es el número del terminal actual también se puede usar 'fgconsole' actual también se puede usar 'fgconsole'

• Hay otros tipos de terminales. Son dispositivos Hay otros tipos de terminales. Son dispositivos de tipo carácter y hay un montón de ellos de tipo carácter y hay un montón de ellos

disponiblesdisponibles..

Page 5: GESTION DE TERMINALES Airam Godoy Hernández José María Rodríguez Rodríguez 5º Ingeniería en Informática

Acceso a consolaAcceso a consola• Se conceden dos tipos de permisos especiales Se conceden dos tipos de permisos especiales

cuando un usuario normal (no root) se registra en cuando un usuario normal (no root) se registra en un equipo localmente :un equipo localmente :

1.1. Pueden ejecutar ciertos programas que de Pueden ejecutar ciertos programas que de otra forma no podrían ejecutar. otra forma no podrían ejecutar.

2.2. Pueden tener acceso a ciertos archivos Pueden tener acceso a ciertos archivos (archivos de dispositivos especiales para (archivos de dispositivos especiales para acceder a disquetes, CD-ROMs ...) a los que acceder a disquetes, CD-ROMs ...) a los que no tendrían acceso de otro modo. no tendrían acceso de otro modo.

• El primer usuario que se registra en la consola El primer usuario que se registra en la consola será el propietario de los archivos (varias consolas será el propietario de los archivos (varias consolas y varios usuarios se pueden registrar localmente). y varios usuarios se pueden registrar localmente).

Page 6: GESTION DE TERMINALES Airam Godoy Hernández José María Rodríguez Rodríguez 5º Ingeniería en Informática

Acceso a consolaAcceso a consola• Cuando el primer usuario sale de la sesión, el Cuando el primer usuario sale de la sesión, el

siguiente usuario que se registra pasa a ser el siguiente usuario que se registra pasa a ser el propietario de los archivos.propietario de los archivos.

• En contraste, cada usuario que se registra en la En contraste, cada usuario que se registra en la consola podrá ejecutar programas que realizan consola podrá ejecutar programas que realizan tareas normalmente restringidas para ser tareas normalmente restringidas para ser ejecutadas por usuario root (por ejemplo los ejecutadas por usuario root (por ejemplo los comandos halt, poweroff, y reboot).comandos halt, poweroff, y reboot).

Page 7: GESTION DE TERMINALES Airam Godoy Hernández José María Rodríguez Rodríguez 5º Ingeniería en Informática

Desactivación del apagado Desactivación del apagado con la combinación de teclas con la combinación de teclas

Ctrl-lt-DelCtrl-lt-Del• Por defecto, /etc/inittab especifica que su Por defecto, /etc/inittab especifica que su sistema se ha establecido para apagarse y sistema se ha establecido para apagarse y rearrancar el sistema si se utiliza la rearrancar el sistema si se utiliza la combinación de teclas [Ctrl]-[Alt]-[Del] en la combinación de teclas [Ctrl]-[Alt]-[Del] en la consola. consola.

• Para desactivar completamente esta opción, Para desactivar completamente esta opción, deberá crear un comentario en la línea deberá crear un comentario en la línea /etc/inittab colocando un símbolo de numeral o /etc/inittab colocando un símbolo de numeral o almohadilla (#) en frente a ella: almohadilla (#) en frente a ella:

ca::ctrlaltdel:/sbin/shutdown -t3 -r ca::ctrlaltdel:/sbin/shutdown -t3 -r nownow

Page 8: GESTION DE TERMINALES Airam Godoy Hernández José María Rodríguez Rodríguez 5º Ingeniería en Informática

Desactivación del apagado Desactivación del apagado con la combinación de teclas con la combinación de teclas

Ctrl-lt-DelCtrl-lt-Del• Para limitar que determinados usuarios tengan derechos Para limitar que determinados usuarios tengan derechos para apagar el sistema desde la consola con [Ctrl]-[Alt]-para apagar el sistema desde la consola con [Ctrl]-[Alt]-[Del], hay que seguir los pasos siguientes: [Del], hay que seguir los pasos siguientes:

1.1. Agregar la opción -a a la línea /etc/inittab mostrada Agregar la opción -a a la línea /etc/inittab mostrada arriba, de modo que se lea lo siguiente: arriba, de modo que se lea lo siguiente:

ca::ctrlaltdel:/sbin/shutdown -a -t3 -r ca::ctrlaltdel:/sbin/shutdown -a -t3 -r

La opción -a indica al comando shutdown que debeLa opción -a indica al comando shutdown que debebuscar el archivo /etc/shutdown.allow, que creará en buscar el archivo /etc/shutdown.allow, que creará en

el el paso siguiente. paso siguiente.

2. Crear un archivo denominado shutdown.allow en /etc 2. Crear un archivo denominado shutdown.allow en /etc que debe mostrar los nombres de los usuarios que que debe mostrar los nombres de los usuarios que pueden apagar el sistema con [Ctrl]-[Alt]-[Del]. El pueden apagar el sistema con [Ctrl]-[Alt]-[Del]. El formato del archivo es una lista deformato del archivo es una lista de nombres de usuario nombres de usuario

en cada línea.en cada línea.

Page 9: GESTION DE TERMINALES Airam Godoy Hernández José María Rodríguez Rodríguez 5º Ingeniería en Informática

Desactivación del apagado Desactivación del apagado con la combinación de teclas con la combinación de teclas

Ctrl-lt-DelCtrl-lt-Del• Cuando se utiliza esta combinación de teclas, el Cuando se utiliza esta combinación de teclas, el archivo shutdown -a en /etc/inittab comprueba archivo shutdown -a en /etc/inittab comprueba si alguno de los usuarios en si alguno de los usuarios en /etc/shutdown.allow (o root) están registrados /etc/shutdown.allow (o root) están registrados en una consola virtual. en una consola virtual.

• Si alguno de ellos lo está, continuará el Si alguno de ellos lo está, continuará el apagado del sistema; en caso contrario, se apagado del sistema; en caso contrario, se registrará un mensaje de error en la consola registrará un mensaje de error en la consola del sistema. del sistema.

Page 10: GESTION DE TERMINALES Airam Godoy Hernández José María Rodríguez Rodríguez 5º Ingeniería en Informática

Derivación del acceso de Derivación del acceso de programas a la consolaprogramas a la consola

• Para desactivar el acceso de los usuarios a los Para desactivar el acceso de los usuarios a los programas de la consola, debe ejecutar este programas de la consola, debe ejecutar este comando como root: comando como root:

rm -f /etc/security/console.apps/*rm -f /etc/security/console.apps/*

• En entornos en los que la consola tiene otro En entornos en los que la consola tiene otro sistema de seguridad (contraseñas en la BIOS y sistema de seguridad (contraseñas en la BIOS y en el gestor de arranque, se ha desactivado en el gestor de arranque, se ha desactivado [Ctrl]-[Alt]-[Delete] ...), probablemente no [Ctrl]-[Alt]-[Delete] ...), probablemente no desee que ningún usuario que trabaje en una desee que ningún usuario que trabaje en una consola ejecute los comandos poweroff, halt, y consola ejecute los comandos poweroff, halt, y reboot, a los que de manera predeterminada se reboot, a los que de manera predeterminada se puede tener acceso desde la consola. puede tener acceso desde la consola.

Page 11: GESTION DE TERMINALES Airam Godoy Hernández José María Rodríguez Rodríguez 5º Ingeniería en Informática

Derivación del acceso de Derivación del acceso de programas a la consolaprogramas a la consola

• Para quitar estas opciones, ejecute los Para quitar estas opciones, ejecute los comandos siguientes como root: comandos siguientes como root:

rm -f rm -f /etc/security/console.apps/poweroff/etc/security/console.apps/poweroff

rm -f /etc/security/console.apps/haltrm -f /etc/security/console.apps/haltrm -f rm -f

/etc/security/console.apps/reboot /etc/security/console.apps/reboot

Page 12: GESTION DE TERMINALES Airam Godoy Hernández José María Rodríguez Rodríguez 5º Ingeniería en Informática

Desactivación de todos los Desactivación de todos los accesos a la consolaaccesos a la consola

• El módulo pam_console.so de PAM, gestiona los permisos y El módulo pam_console.so de PAM, gestiona los permisos y la autentificación de los archivos de la consola. la autentificación de los archivos de la consola.

• Si desea desactivar todos los accesos a la consola, Si desea desactivar todos los accesos a la consola, incluyendo el acceso a programas y a archivos, coloque en incluyendo el acceso a programas y a archivos, coloque en comentarios todas las líneas que se refieren a comentarios todas las líneas que se refieren a pam_console.so en el directorio /etc/pam.d. pam_console.so en el directorio /etc/pam.d.

• Como usuario root, el siguiente script puede ayudarle: Como usuario root, el siguiente script puede ayudarle:

cd /etc/pam.dcd /etc/pam.d

for i in * ; dofor i in * ; do

sed '/[^#].*pam_console.so/s/^/#/' < $i > foo && mv sed '/[^#].*pam_console.so/s/^/#/' < $i > foo && mv

foo foo

$i$i

done done

Page 13: GESTION DE TERMINALES Airam Godoy Hernández José María Rodríguez Rodríguez 5º Ingeniería en Informática

Definición de consolaDefinición de consola

• El módulo El módulo pam_console.sopam_console.so usa el archivo usa el archivo /etc/security/console.perms/etc/security/console.perms para determinar los para determinar los permisos que tienen los usuarios en la consola del permisos que tienen los usuarios en la consola del sistema. sistema.

• El archivo por defecto tiene una línea similar a la El archivo por defecto tiene una línea similar a la siguiente: siguiente:

<console>=tty[0-9][0-9]* :[0-9]\.[0-9] :[0-9]<console>=tty[0-9][0-9]* :[0-9]\.[0-9] :[0-9]

Page 14: GESTION DE TERMINALES Airam Godoy Hernández José María Rodríguez Rodríguez 5º Ingeniería en Informática

Definición de consolaDefinición de consola

• Cuando los usuarios se registran, se conectan a algún Cuando los usuarios se registran, se conectan a algún terminal, bien sea un servidor X con un nombre como terminal, bien sea un servidor X con un nombre como

:0 o mymachine.example.com:1.0:0 o mymachine.example.com:1.0 o un dispositivo o un dispositivo como /dev/ttyS0 o /dev/pts/2. como /dev/ttyS0 o /dev/pts/2.

• La opción por defecto es definir esas consolas virtuales La opción por defecto es definir esas consolas virtuales locales y que los servidores X locales se consideren locales y que los servidores X locales se consideren locales, pero si desea considerar también el terminal locales, pero si desea considerar también el terminal serial próximo en el puerto /dev/ttyS1 puede cambiar la serial próximo en el puerto /dev/ttyS1 puede cambiar la línea para que muestre:línea para que muestre:

<console>=tty[0-9][0-9]* :[0-9]\.[0-9] :[0-9] <console>=tty[0-9][0-9]* :[0-9]\.[0-9] :[0-9] /dev/ttyS1/dev/ttyS1

Page 15: GESTION DE TERMINALES Airam Godoy Hernández José María Rodríguez Rodríguez 5º Ingeniería en Informática

Colocar los archivos Colocar los archivos accesibles desde la consolaaccesibles desde la consola

• En /etc/security/console.perms, hay una sección En /etc/security/console.perms, hay una sección con líneas similares:con líneas similares:

• Se pueden agregar líneas propias a esta Se pueden agregar líneas propias a esta sección, asegurándonos de que todas las sección, asegurándonos de que todas las introducidas hacen referencia al dispositivo introducidas hacen referencia al dispositivo pertinente. Por ejemplo :pertinente. Por ejemplo :

<floppy>=/dev/fd[0-1]* \ <floppy>=/dev/fd[0-1]* \

/dev/floppy/* /mnt/floppy*/dev/floppy/* /mnt/floppy*

<sound>=/dev/dsp* /dev/audio* /dev/midi* \ <sound>=/dev/dsp* /dev/audio* /dev/midi* \

/dev/mixer* /dev/sequencer \ /dev/mixer* /dev/sequencer \

/dev/sound/* /dev/beep/dev/sound/* /dev/beep

<cdrom>=/dev/cdrom* /dev/cdroms/* /dev/cdwriter* /mnt/cdrom*<cdrom>=/dev/cdrom* /dev/cdroms/* /dev/cdwriter* /mnt/cdrom*

<scanner>=/dev/scanner /dev/usb/scanner*

Page 16: GESTION DE TERMINALES Airam Godoy Hernández José María Rodríguez Rodríguez 5º Ingeniería en Informática

• El siguiente paso consiste en definir lo que se El siguiente paso consiste en definir lo que se realiza con estos archivos. Observe la última realiza con estos archivos. Observe la última sección de /etc/security/console.perms para sección de /etc/security/console.perms para buscar líneas similares buscar líneas similares

Colocar los archivos Colocar los archivos accesibles desde la consolaaccesibles desde la consola

<console> 0660 <floppy> 0660 root.floppy<console> 0600 <sound> 0640 root<console> 0600 <cdrom> 0600 root.disk

#Añadiendo la siguiente línea

<console> 0600 <scanner> 0600 root

Page 17: GESTION DE TERMINALES Airam Godoy Hernández José María Rodríguez Rodríguez 5º Ingeniería en Informática

• Luego, cuando se registra en la consola, se Luego, cuando se registra en la consola, se tendrá derechos de propiedad sobre el tendrá derechos de propiedad sobre el dispositivo /dev/scanner y los permisos serán dispositivo /dev/scanner y los permisos serán 0600 (exclusivo de lectura y escritura). 0600 (exclusivo de lectura y escritura).

• Cuando cierre la sesión, el dispositivo será Cuando cierre la sesión, el dispositivo será propiedad del root y seguirá teniendo permisos propiedad del root y seguirá teniendo permisos 0600 (ahora: permiso exclusivo de lectura y 0600 (ahora: permiso exclusivo de lectura y escritura para el usuario root.escritura para el usuario root.

Colocar los archivos Colocar los archivos accesibles desde la consolaaccesibles desde la consola

Page 18: GESTION DE TERMINALES Airam Godoy Hernández José María Rodríguez Rodríguez 5º Ingeniería en Informática

Activación del acceso a la Activación del acceso a la consola para otras consola para otras

aplicacionesaplicaciones• Para que los usuarios de la consola puedan Para que los usuarios de la consola puedan acceder a otras aplicaciones:acceder a otras aplicaciones:

• En primer lugar, el acceso a la consola sóloEn primer lugar, el acceso a la consola sólo funciona para las aplicaciones que residen en funciona para las aplicaciones que residen en /sbin o /usr/sbin, de modo que la aplicación que /sbin o /usr/sbin, de modo que la aplicación que se desee ejecutar deberá estar ubicada en este se desee ejecutar deberá estar ubicada en este lugar. Después hay que seguir los pasos lugar. Después hay que seguir los pasos siguientes: siguientes:

Page 19: GESTION DE TERMINALES Airam Godoy Hernández José María Rodríguez Rodríguez 5º Ingeniería en Informática

Activación del acceso a la Activación del acceso a la consola para otras consola para otras

aplicacionesaplicaciones1.1. Crear un vínculo del nombre de la Crear un vínculo del nombre de la

aplicación, como el programa ejemplo aplicación, como el programa ejemplo foofoo, , en la aplicación /usr/bin/consolehelper:en la aplicación /usr/bin/consolehelper:

2. Crear el archivo 2. Crear el archivo /etc/security/console.apps//etc/security/console.apps/foofoo::

3. Crear un archivo de configuración de PAM 3. Crear un archivo de configuración de PAM para el servicio para el servicio foo foo en /etc/pam.d/. Realizando en /etc/pam.d/. Realizando esto con una copia del archivo de esto con una copia del archivo de configuración del servicio detenido y luego configuración del servicio detenido y luego modificar el archivo si desea cambiar su modificar el archivo si desea cambiar su comportamiento:comportamiento:

touch /etc/security/console.apps/foo

cp /etc/pam.d/halt /etc/pam.d/foo

cd /usr/binln -s consolehelper foo

Page 20: GESTION DE TERMINALES Airam Godoy Hernández José María Rodríguez Rodríguez 5º Ingeniería en Informática

Activación del acceso a la Activación del acceso a la consola para otras consola para otras

aplicacionesaplicaciones• Ahora, cuando se ejecute /usr/bin/Ahora, cuando se ejecute /usr/bin/foofoo, se llamará al , se llamará al comando consolehelper, el cual validará al usuario comando consolehelper, el cual validará al usuario con la ayuda de /usr/sbin/userhelper. con la ayuda de /usr/sbin/userhelper.

• Para validar al usuario, consolehelper Para validar al usuario, consolehelper solicitará una contraseña del usuario si solicitará una contraseña del usuario si /etc/pam.d//etc/pam.d/foo foo es una copia de /etc/pam.d/halt es una copia de /etc/pam.d/halt (en caso contrario, hará precisamente lo que (en caso contrario, hará precisamente lo que se haya especificado en /etc/pam.d/se haya especificado en /etc/pam.d/foofoo) )

• AA continuación ejecutará /usr/sbin/ continuación ejecutará /usr/sbin/foo foo con con permisos de root. permisos de root.

• En el archivo de configuración PAM, una aplicación En el archivo de configuración PAM, una aplicación puede ser configurada para usar el módulo puede ser configurada para usar el módulo pam_timestamp pam_timestamp para recordar (caché) un intento para recordar (caché) un intento de conexión exitoso. de conexión exitoso.

• Cuando una aplicación inicia y se proporciona Cuando una aplicación inicia y se proporciona una autentificación adecuada (la contraseña una autentificación adecuada (la contraseña de root), se crea un archivo timestamp.de root), se crea un archivo timestamp.

Page 21: GESTION DE TERMINALES Airam Godoy Hernández José María Rodríguez Rodríguez 5º Ingeniería en Informática

Activación del acceso a la Activación del acceso a la consola para otras consola para otras

aplicacionesaplicaciones• Por defecto, una validación con éxito está Por defecto, una validación con éxito está cacheada durante cinco minutos. Durante este cacheada durante cinco minutos. Durante este tiempo, cualquier otra aplicación que sea tiempo, cualquier otra aplicación que sea configurada para usar pam_timestamp y configurada para usar pam_timestamp y ejecutar desde la misma sesión, está ejecutar desde la misma sesión, está automáticamente autenticada para el usuario automáticamente autenticada para el usuario (no se introduce la contraseña de root otra vez).(no se introduce la contraseña de root otra vez).

• Para activar esta característica, el archivo de Para activar esta característica, el archivo de configuración PAM en etc/pam.d/ debe incluir las configuración PAM en etc/pam.d/ debe incluir las líneas siguientes: líneas siguientes:

• La primera línea que inicie con auth debería estar La primera línea que inicie con auth debería estar tras cualquier otra línea auth sufficient y la línea que tras cualquier otra línea auth sufficient y la línea que empieza con session debería estar tras cualquier otra empieza con session debería estar tras cualquier otra línea session optional. línea session optional.

auth sufficient /lib/security/pam_timestamp.sosession optional /lib/security/pam_timestamp.so

Page 22: GESTION DE TERMINALES Airam Godoy Hernández José María Rodríguez Rodríguez 5º Ingeniería en Informática

El grupo floppyEl grupo floppy

• Si el acceso a la consola no es adecuado y Si el acceso a la consola no es adecuado y necesita conceder acceso a los usuarios no root necesita conceder acceso a los usuarios no root a la unidad de disquete del sistema, puede a la unidad de disquete del sistema, puede hacerlo con el grupo floppy. Para ello se agrega hacerlo con el grupo floppy. Para ello se agrega el usuario(s) al grupo floppy. A continuación se el usuario(s) al grupo floppy. A continuación se incluye un ejemplo mostrando cómo utilizar incluye un ejemplo mostrando cómo utilizar gpasswd para añadir un usuario airam al grupo gpasswd para añadir un usuario airam al grupo floppy: floppy: gpasswd -a airam floppy

Page 23: GESTION DE TERMINALES Airam Godoy Hernández José María Rodríguez Rodríguez 5º Ingeniería en Informática

FIN