• [^] # Re: NOTRE héros Lennart Poettering (parmi d'autres)

    Posté par (site web personnel) . En réponse au journal Lennart casse les logs!. Évalué à 3.

    Et puis quand on compare, par exemple, le script pour openssh sous Slackware (rc.sshd) et pour systemd (sshd.service) force est de reconnaître que le second est malgré tout plus court et plus explicite.

    Je préfère comparer le script pour openssh sous FreeBSD et sous systemd:

    #!/bin/sh
    #
    # $FreeBSD: src/etc/rc.d/sshd,v 1.14.2.1 2009年08月03日 08:13:06 kensmith Exp $
    #
    # PROVIDE: sshd
    # REQUIRE: LOGIN cleanvar
    # KEYWORD: shutdown
    . /etc/rc.subr
    name="sshd"
    rcvar=`set_rcvar`
    command="/usr/sbin/${name}"
    keygen_cmd="sshd_keygen"
    start_precmd="sshd_precmd"
    pidfile="/var/run/${name}.pid"
    extra_commands="keygen reload"
    timeout=300
    user_reseed()
    {
     (
     seeded=`sysctl -n kern.random.sys.seeded 2>/dev/null`
     if [ "x${seeded}" != "x" ] && [ ${seeded} -eq 0 ] ; then
    warn "Setting entropy source to blocking mode."
     echo "===================================================="
     echo "Type a full screenful of random junk to unblock"
     echo "it and remember to finish with <enter>. This will"
     echo "timeout in ${timeout} seconds, but waiting for"
     echo "the timeout without typing junk may make the"
     echo "entropy source deliver predictable output."
     echo ""
     echo "Just hit <enter> for fast+insecure startup."
     echo "===================================================="
     sysctl kern.random.sys.seeded=0 2>/dev/null
     read -t ${timeout} junk
     echo "${junk}" `sysctl -a` `date` > /dev/random
     fi
     )
    }
    sshd_keygen()
    {
     (
     umask 022
     # Can't do anything if ssh is not installed
     [ -x /usr/bin/ssh-keygen ] || {
     warn "/usr/bin/ssh-keygen does not exist."
     return 1
     }
     if [ -f /etc/ssh/ssh_host_key ]; then
    echo "You already have an RSA host key" \
     "in /etc/ssh/ssh_host_key"
     echo "Skipping protocol version 1 RSA Key Generation"
     else
     /usr/bin/ssh-keygen -t rsa1 -b 1024 \
     -f /etc/ssh/ssh_host_key -N ''
     fi
     if [ -f /etc/ssh/ssh_host_dsa_key ]; then
    echo "You already have a DSA host key" \
     "in /etc/ssh/ssh_host_dsa_key"
     echo "Skipping protocol version 2 DSA Key Generation"
     else
     /usr/bin/ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N ''
     fi
     if [ -f /etc/ssh/ssh_host_rsa_key ]; then
    echo "You already have a RSA host key" \
     "in /etc/ssh/ssh_host_rsa_key"
     echo "Skipping protocol version 2 RSA Key Generation"
     else
     /usr/bin/ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ''
     fi
     )
    }
    sshd_precmd()
    {
     if [ ! -f /etc/ssh/ssh_host_key -o \
     ! -f /etc/ssh/ssh_host_dsa_key -o \
     ! -f /etc/ssh/ssh_host_rsa_key ]; then
    user_reseed
     run_rc_command keygen
     fi
    }
    load_rc_config $name
    run_rc_command "1ドル"
    
    

    Le script sous FreeBSD est beacuoup plus long, mais il fait beraucoup plus de choses! Il s'occupe de générer la clef du serveur, lorsque ceci est nécessaire. Ce processus mis à part le script est
    #!/bin/sh
    #
    # $FreeBSD: src/etc/rc.d/sshd,v 1.14.2.1 2009年08月03日 08:13:06 kensmith Exp $
    #
    # PROVIDE: sshd
    # REQUIRE: LOGIN cleanvar
    # KEYWORD: shutdown
    . /etc/rc.subr
    name="sshd"
    rcvar=`set_rcvar`
    command="/usr/sbin/${name}"
    pidfile="/var/run/${name}.pid"
    extra_commands="reload"
    load_rc_config $name
    run_rc_command "1ドル"
    
    

    Le progrès introduit par systemd en termes de clarté et de briéveté n'est pas si clair...

    En fait le système à la BSD permet de regrouper les ordres de haut niveau pour commander un serveur dans un endroit bien défini, et a pour second avantage de fournir un cadre commun pour la configuration des serveurs. Voir les pages de man de rc.conf et rc.subr.