• Aucun résultat trouvé

Pseudo terminaux

Dans le document Administration système UNIX version 8.0 (Page 80-86)

§ 40.1 Devices associés aux pseudo terminaux

Pseudos terminaux (virtuels ou physiques) pour : terminal type vt100, xterm, etc.

Les fichiers associés aux pseudo terminaux se trouvent dans

/dev

. Par exemple

/dev/tty01

pour le terminal série

/dev/console

pour l’écran principal de la machine

– pour les connexions réseau, on utilise deux fichiers par connexion : un fichier maître et un fichier esclave.

Le master pseudo terminal a pour nom

/dev/pty[p-s]NN

sur BSD,

/dev/ptc/NN

sur System-V.

Le slave pseudo terminal a pour nom

/dev/tty[p-s]NN

sur BSD,

/dev/pts/NN

sur System-V.

Formation permanente Paris 6 – ARS 8.0 – cThierry Besançon 147

Pseudo terminaux Commande

tty

, device

/dev/tty

§ 40.2 Commande tty , device /dev/tty

Pour connaître le nom du terminal courant, utiliser la commande tty :

% tty /dev/pts/1

Un fichier spécial, /dev/tty :

% tty /dev/pts/1

% echo oui > /dev/tty oui

Les entrées / sorties de

/dev/tty

sont associées à votre terminal.

Pseudo terminaux Nombre de terminaux

§ 40.3 Nombre de terminaux

Attention : Il doit y avoir un nombre suffisant de terminaux pour accueillir les utilisateurs. Dans le cas contraire :

% rlogin serveur.prism.uvsq.fr rlogind: All network ports in use.

Connection closed.

Comment corriger le problème ?

La correction du problème se fait à deux niveaux :

1. vérifier le nombre de terminaux configurés dans le noyau :

pseudo-device pty 256 #Pseudo ttys - can go as high as 256 2. augmenter le nombre de fichiers terminaux dans

/dev

:

# cd /dev

Formation permanente Paris 6 – ARS 8.0 – cThierry Besançon 149

Pseudo terminaux Phase de connexion,

init

,

getty

§ 40.4 Phase de connexion, init , getty

init

gére l’ensemble des lignes physiques sur lesquelles les utilisateurs se connectent.

Au démarrage d’

init

, après consultation de

/etc/inittab

ou de

/etc/ttys

, il y a lancement d’un processus

getty

par ligne physique attachée à l’unité centrale.

% ps -edf

USER PID PPID %CPU STARTED TT TIME COMMAND [...]

root 362 1 0.0 Aug 03 04 0:00.04 /usr/sbin/getty /dev/tty04 c root 363 1 0.0 Aug 03 05 0:00.04 /usr/sbin/getty /dev/tty05 c [...]

La commande

getty

configure les paramètres de la ligne (vitesse, parité, etc.) puis attend qu’un utilisateur se manifeste.

Pseudo terminaux Phase de connexion,

init

,

getty

Lorsqu’un utilisateur tape son nom de login, le

getty

en question donne la main au programme

login

:

% ps -edf

USER PID PPID %CPU STARTED TT TIME COMMAND [...]

root 362 1 0.0 Aug 03 04 0:00.04 /usr/sbin/getty /dev/tty04 c root 363 1 0.0 Aug 03 05 0:00.09 login besancon

[...]

Le programme

login

valide ou pas l’utilisateur. Dans le cas favorable, une session shell est lancée (notez le caractère «

-

» en début du nom du shell) :

% ps -edf

USER PID PPID %CPU STARTED TT TIME COMMAND [...]

root 362 1 0.0 Aug 03 04 0:00.04 /usr/sbin/getty /dev/tty04 c besancon 363 1 0.0 Aug 03 05 0:00.78 -bash (bash)

[...]

Lorsque le shell se termine,

init

détecte la terminaison d’un de ses fils. Il regénére alors un nouveau processus

getty

.

Formation permanente Paris 6 – ARS 8.0 – cThierry Besançon 151

Pseudo terminaux Liste BSD des terminaux physiques :

/etc/ttys

§ 40.5 Liste BSD des terminaux physiques : /etc/ttys

Les lignes à surveiller par

init

sont précisées via le fichier

/etc/ttys

:

console none unknown off secure

ttyv0 "/usr/libexec/getty Pc" cons25 on secure

# Virtual terminals

ttyv1 "/usr/libexec/getty Pc" cons25 on secure ttyv2 "/usr/libexec/getty Pc" cons25 on secure ttyv3 "/usr/libexec/getty Pc" cons25 on secure

# Serial terminals

ttyd0 "/usr/libexec/getty std.9600" unknown off secure ttyd1 "/usr/libexec/getty std.9600" unknown off secure

# Pseudo terminals

ttyp0 none network

ttyp1 none network

Pseudo terminaux Liste System-V des terminaux physiques :

/etc/inittab

§ 40.6 Liste System-V des terminaux physiques : /etc/inittab

Les lignes à surveiller par

init

sont précisées via le fichier /etc/inittab : lat01:3:respawn:/usr/sbin/getty /dev/tty01 console vt100 lat02:3:respawn:/usr/sbin/getty /dev/tty02 console vt100 ...

lat0e:3:respawn:/usr/sbin/getty /dev/tty0e console vt100 lat0f:3:respawn:/usr/sbin/getty /dev/tty0f console vt100

Formation permanente Paris 6 – ARS 8.0 – cThierry Besançon 153

Pseudo terminaux Terminaux sécurisés

§ 40.7 Terminaux sécurisés

Root est-il autorisé à se connecter sur tout terminal ?

% rlogin ars01.formation.jussieu.fr -l root Password:

Not on system console Connection closed.

Pourquoi ?

Parce qu’un login au nom de root est anonyme et interdit en conséquence.

Comment contrôler l’accès ?

Pseudo terminaux Terminaux sécurisés

Contrôle d’accès sur BSD

Au niveau de /etc/ttys ou /etc/ttytab : ...

The super-user root may only log in on those terminals marked as "secure" in the /etc/ttytab file. Otherwise, the super-user must log in as an ordinary user and become super-user using su(1v). For example, if the file con-tained:

console "/etc/getty Console-9600" sun on secure tty00 "/etc/getty Console-9600" sun on

...

the super-user could only log in directly on the console.

See ttytab(5) for a discussion of secure and other getty(8) options used in /etc/ttytab.

...

Formation permanente Paris 6 – ARS 8.0 – cThierry Besançon 155

Pseudo terminaux Terminaux sécurisés

Contrôle d’accès sur DIGITAL Unix Au niveau de /etc/securettys :

#

# Note: Each entry in this file represents a device (secure device)

# from which root login is permitted. For, pseudo ttys (ptys) a

# single keyword entry "ptys" means all ptys are to be treated as being

# secure. Note that the entry is "ptys" and not prefixed by /dev

# as is customary for the other physical devices. The absence of

# this key word implies that root login will not be permitted from

# all ptys. X displays are indicated with the display name.

#

Pseudo terminaux Terminaux sécurisés

Contrôle d’accès sur Linux Au niveau de /etc/securetty :

## /etc/securetty is used by login(1); the file contains tty

## lines (without leading /dev/) on which root is allowed to

## login.

tty1 tty2 tty3 tty4 tty5 tty6 tty7 tty8 ttyp0 ttyp1

Formation permanente Paris 6 – ARS 8.0 – cThierry Besançon 157

Pseudo terminaux Terminaux sécurisés

Contrôle d’accès sur Solaris Au niveau de /etc/default/login : ...

# If CONSOLE is set, root can only login on that device.

# Comment this line out to allow remote login by root.

#

CONSOLE=/dev/console ...

Terminaux X, XDM

Dans le document Administration système UNIX version 8.0 (Page 80-86)