9.1 - Astuces et conseils pour les utilisateurs d'autres systèmes
d'exploitation Unix-like
Bien qu'OpenBSD soit un système d'exploitation Unix-like très
traditionnel et très familier pour les personnes ayant utilisé d'autres
systèmes d'exploitation Unix-like, il existe d'importantes différences.
Les nouveaux utilisateurs d'OpenBSD doivent se baser sur leur propre
expérience :
si votre connaissance d'Unix se limite à une certaine expérience avec
une variante de Linux, vous pourrez trouver OpenBSD "étrange". Soyez
rassuré, Linux parait aussi "étrange" pour quelqu'un qui a commencé son
expérience d'Unix avec OpenBSD. Vous devez faire la distinction entre le
"standard" et votre expérience.
Si vous avez appris Unix à l'aide d'un des
bons ouvrages sur Unix en
général, et si vous avez saisi la "philosophie Unix" puis étendu votre
connaissance à un plate-forme particulière, vous trouverez qu'OpenBSD
est un Unix "vrai" et très familier. Si vous avez appris Unix en
utilisant un procédé de type "saisis ceci au clavier pour faire cela" ou
un livre tel que "Apprendre PinkBeenie v8.3 en 31.4 Heures", puis vous
vous êtes dit que vous "connaissez Unix", vous trouverez certainement
OpenBSD très différent.
Une différence importante entre OpenBSD et plusieurs autres systèmes
d'exploitation est la documentation. Les développeurs OpenBSD sont très
fiers des
pages de manuel du
système. Les pages de manuel sont les sources de référence de la
documentation OpenBSD -- ce qui n'est pas le cas de cette FAQ ou des
pages maintenues indépendamment du projet ou des "HOWTO"s etc. Lorsqu'un
développeur fait une modification au niveau système, on attend de sa
part qu'il mette à jour les pages du manuel en même temps que la
modification du code système, et pas "après" ou "lorsqu'il aura le temps
de le faire" ou lorsque "quelqu'un se plaint". Une page de manuel existe
pour virtuellement chaque programme, utilitaire, pilote, fichier de
configuration et ainsi de suite dans le système de base. On attend de la
part de l'utilisateur qu'il prenne le temps d'effectuer des recherches
dans les pages du manuel avant de demander de l'aide sur les
listes de diffusion.
Voici quelques unes des différences les plus communes entre OpenBSD et
d'autres variantes Unix.
OpenBSD est un Unix du style "BSD" assez pur, qui suit la conception
4.4BSD de manière rapprochée. Linux et SCO Unix sont des systèmes de
type "System V". Certains systèmes d'exploitation Unix-like (y
compris quelques distributions Linux) font un mélange de plusieurs
caractéristiques propres à SysV et à BSD. Cela prête à confusion
particulièrement dans les
scripts de démarrage, pour lesquels
OpenBSD utilise le système traditionnel
rc(8)
4.4BSD.
OpenBSD est un système complet, destiné à être maintenu de
manière homogène. Ce n'est pas un "noyau plus quelques utilitaires"
qui peuvent être mis à jour séparément. Si vous n'arrivez pas à
maintenir votre système (noyau, utilitaires et applications)
homogène, de mauvaises choses peuvent arriver.
Etant donné que plusieurs applications ne sont pas développées pour
être compilées directement et s'exécuter dans un environnement
OpenBSD, OpenBSD a une
arborescence de ports, un système
qui permet aux utilisateurs de facilement acquérir du code, le
modifier pour qu'il soit compilable sur OpenBSD, installer des
dépendances, le compiler, et l'installer et le supprimer de manière
standardisée et maintenable. Des
paquetages pré-compilés sont créés
et distribués par l'équipe de portage OpenBSD. Les utilisateurs sont
encouragés à utiliser des
paquetages au lieu de compiler les leurs.
OpenBSD utilise CVS pour suivre les modifications des sources.
OpenBSD a été un pionnier d'anonymous CVS, qui permet à
n'importe qui d'extraire l'arborescence complète des sources pour
n'importe quelle version d'OpenBSD (à partir de 2.0 jusqu'à la
version actuelle, y compris n'importe quelle révision de n'importe
quel fichier située entre ces deux versions) à n'importe quel
moment, et vous pouvez accéder aux modifications les plus récentes à
peine quelques heures après qu'elles aient été effectué. Il y a
aussi une
interface web pour CVS
très utile et facile d'utilisation.
OpenBSD produit une version officielle disponible sur
CD et par
FTP tous les six mois selon un
agenda prédéfini. Des
snapshots pour toutes les plates-formes supportées sont créés de
manière semi-régulière à partir du code de développement le plus
récent. Un des buts du projet OpenBSD est de garder l'arborescence
des sources compilable à tout moment et de faire en sorte que le
système issu de la compilation de cette arborescence soit
utilisable. L'arborescence peut connaître des problèmes de
compilation mais c'est à titre exceptionnel et ces problèmes sont
résolus rapidement.
OpenBSD contient
une cryptographie forte,
qui ne peut être incluse dans des systèmes d'exploitation provenant
de certains pays.
OpenBSD fait l'objet d'un audit sécurité lourd et continu pour
s'assurer de la qualité (et donc, de la sécurité) du code.
Le noyau d'OpenBSD est/bsd.
Les noms des disques durs sont du type /dev/wd (IDE) et
/dev/sd (SCSI ou équipements à émulation SCSI).
/sbin/route
sans arguments sous Linux fournit l'état de toutes les routes
actives, mais sous OpenBSD (et plusieurs autres systèmes
d'exploitation), vous aurez besoin du paramètre "show" ou
utilisez la commande
"netstat -r".
OpenBSD NE supporte pas les Systèmes de Fichiers à Journaux tels que
ReiserFS, JFS d'IBM ou XFS de SGI. Au lieu de cela, nous utilisons
la fonctionnalité
Soft Updates
du très robuste Unix Fast File System (FFS) pour atteindre les
objectifs de performance et de stabilité.
OpenBSD inclut Packet Filter (PF),
et non pas ipfw, ipchains, netfilter, iptables ou ipf. Ce qui veut
dire que la Traduction d'Adresses IP (connu sous le nom d'IP-
Masquerading sous Linux), la gestion de la bande passante et le
filtrage est effectué via
pfctl(8),
pf(4)
et
pf.conf(5).
Consultez le
Guide de l'Utilisateur PF
pour des informations détaillées sur la configuration.
Les adresses des interfaces sont stockées dans les fichiers
/etc/hostname.<interfacename>
(par exemple, /etc/hostname.dc0 pour une interface réseau
utilisant le pilote
dc(4)).
Ces fichiers peuvent contenir un nom d'hôte (résolu à partir de
/etc/hosts)
au lieu d'une adresse IP.
Le nom de la machine est dans le fichier
/etc/myname.
La passerelle par défaut est stockée dans le fichier
/etc/mygate.
Le shell par défaut d'OpenBSD est
/bin/ksh,
qui est pdksh, le
shell Korn du domaine public.
Les autres shells inclus sont
csh et
sh.
Les shells tels que bash et tcsh peuvent être ajoutés
à partir des paquetages ou
installés à partir des ports. Les
utilisateurs familiers avec bash sont encouragés à essayer ksh(1) avant d'installer
bash sur leur système -- il a la plupart des fonctionnalités
que les utilisateurs utilisent dans bash.
La gestion des mots de passe est différente de celle de la plupart
des autres systèmes d'exploitation Unix-like. Les mots de passe sont
stockés dans le fichier
master.passwd(5)
qui ne peut être lu que par root. Ce fichier ne doit être
modifié que par le programme
vipw.
Les périphériques sont appelés selon le pilote et pas selon le type.
Par exemple, il n'existe pas de périphériques eth*. Pour une carte
Ethernet NE2000, ça serait ne0 et xl0 pour des périphériques
Ethernet 3Com Etherlink XL ou Fast Etherlink XL etc. Tous ces
pilotes ont des pages de manuel dans la section 4. Ainsi, pour en
savoir plus sur les messages que votre pilote 3c905 affiche, vous
pouvez faire
"man 4 xl".
OpenBSD/i386, amd64, et d'autres plates-formes utilisent un système de
partitionnement de disque à "deux couches", où la première couche
est la partition fdisk, visible
depuis le BIOS, et avec laquelle la plupart des utilisateurs
d'ordinateurs compatibles IBM sont familiers. La seconde couche est
le disklabel, un système de
partitionnement BSD traditionnel. OpenBSD supporte un maximum de 15
partitions disklabel sur un disque, toutes dans la même partition
fdisk. Ceci permet à OpenBSD de coexister avec d'autres
systèmes d'exploitation, y compris d'autres systèmes d'exploitation
Unix-like. OpenBSD doit faire partie des 4 partitions "primaires".
Certains systèmes d'exploitation vous encouragent à adapter votre
noyau à votre machine. Les utilisateurs d'OpenBSD sont
encouragés à utiliser le noyau standard
GENERIC fourni et testé par les développeurs. Les utilisateurs
souhaitant "adapter" et "optimiser" causent souvent plus de
problèmes qu'ils n'en résolvent et aucune aide ne leur sera fourni par les
développeurs.
L'équipe de développement OpenBSD travaille dur pour maintenir la
politique de copyright et la
securité du projet.
Pour cette raison, certaines nouvelles versions de logiciels qui ne
remplissent pas les objectifs de licence ou de sécurité ne sont pas
intégrées à OpenBSD, et pourraient ne jamais l'être. La sécurité et
les licences libres ne seront jamais négligées au profit d'un numéro
de version plus grand.
9.3 - Convertir votre fichier de mots de passe de Linux (ou de tout
autre système de type "Sixth Edition") au format BSD
Tout d'abord, déterminez si votre fichier de mots de passe Linux est en
mode shadow ou pas. Si c'est le cas, installez
John the Ripper
à partir de paquetages ou ports
(security/john) et utilisez son utilitaire unshadow pour faire
fusionner les fichiers passwd et shadow en un seul
fichier type "Sixth Edition".
En utilisant votre fichier de mots de passe Linux, que nous allons
appeler linux_passwd, vous devez rajouter "::0:0" entre les
champs quatre et sept.
awk(1)
peut faire cela pour vous.
A partir de là, vous devriez éditer le fichier new_passwd et
enlever les entrées correspondantes à root et d'autres entités système
qui sont déjà présentes dans le fichier de mots de passe OpenBSD ou ne
sont pas applicables à OpenBSD (toutes). De même, assurez vous qu'il n'y
a pas des noms d'utilisateurs ou des ID utilisateurs dupliqués entre
new_passwd et le fichier /etc/passwd de la machine
OpenBSD. La manière la plus facile consiste à utiliser un nouveau
/etc/passwd.
La dernière étape, pwd_mkdb, est nécessaire pour reconstruire
les fichiers /etc/spwd.db et /etc/pwd.db. Cette commande crée aussi un
fichier de mots de passe au format "Sixth Edition" (sans les mots de
passe cryptés) dénommé /etc/passwd pour les programmes qui l'utilisent.
OpenBSD utilise un algorithme de cryptage plus fort, blowfish, qui est
rarement présent dans d'autres systèmes qui utilisent des fichiers de
mots de passe au format "Sixth Edition". Pour utiliser cet algorithme
plus solide, dites aux utilisateurs d'utiliser 'passwd' et de changer
leur mot de passe. Le nouveau mot de passe sera crypté avec l'algorithme
par défaut (blowfish si vous n'avez pas édité /etc/passwd.conf). Ou, en
utilisateur root, vous pouvez utiliser passwd
username.
9.4 - Exécution des binaires Linux sous OpenBSD
OpenBSD/i386 est capable d'exécuter des binaires Linux lorsque le noyau
est compilé avec l'option COMPAT_LINUX et le paramètre sysctl
kern.emul.linux positionné. Si vous utilisez le noyau GENERIC (ce qui
devrait être le cas normalement), l'option COMPAT_LINUX est incluse et
vous aurez juste besoin de positionner le paramètre sysctl précité comme
suit :
# sysctl kern.emul.linux=1
Pour que cette modification soit prise en compte à chaque redémarrage de
la machine, supprimez le caractère "#" (commentaire) au début de la
ligne
#kern.emul.linux=1 # enable running Linux binaries
dans le fichier /etc/sysctl.conf. Vous devez alors obtenir :
kern.emul.linux=1 # enable running Linux binaries
puis redémarrez votre système pour que cette modification puisse prendre
effet.
Pour utiliser des binaires Linux qui ne sont pas statiquement liés (la
plupart d'entre eux), vous devez suivre les instructions de la page du
manuel
compat_linux(8).
Un moyen simple d'obtenir la plupart des bibliothèques Linux les plus
communes est d'installer fedora/base à partir du site
miroir FTP le plus proche.
Pour plus d'informations concernant les paquetages et le système de ports,
veuillez consulter FAQ 15 - Le système de ports
et de paquetages d'OpenBSD.
Pour installer le paquetage mentionné ci-dessus, utilisez les commandes
suivantes :
A partir d'OpenBSD 3.7,
pkg_add(1)
exécutera automatiquement sysctl pour paramétrer correctement
kern.emul.linux à la bonne valeur après avoir ajouté le paquetage.
Cependant, il ne modifie pas /etc/sysctl.conf. Si vous voulez
activer l'émulation Linux par défaut, vous devez modifier la variable
kern.emul.linux dans ce fichier.
9.5 - Accéder à vos fichiers Linux depuis OpenBSD
OpenBSD supporte le système de fichiers EXT2FS.
Pour plus d'informations, veuillez consulter la FAQ 14.