J'ai souvent eu à jouer autour d'un serveurs UNIX / Linux avec une gestion des VirtualHost Apache compromise par des années de non utilisation du serveur par les administrateurs du système ne sont pas classés. Le résultat est généralement un grand nombre d'utilisateurs avec répertoire structuré différemment l'un de l'autre.

En particulier, dans une affaire récente, j'ai trouvé une centaine de personnes, dont une partie a été DocumentRoot dans votre répertoire d'accueil, tandis que d'autres ont de nous dans / var / www / users /, que je recommande, car elle évite ont des problèmes avec suEXEC dans précompilée versions d'Apache.

Pour remédier à une situation chaotique, alors j'ai décidé de tout faire correctement sous / var / www / users / et j'ai été présenté à la nécessité de créer les répertoires manquants et les liens symboliques pour les différents répertoire home. Je l'ai fait avec un simple script bash, que si le public ici peut également être utile à quelqu'un d'autre. Il m'a fallu un peu de "sortie pour rendre le code clair, même à ceux qui sont d'abord les armes avec le bash.

Attention! A la ligne 18 est une copie d'un fast-cgi dans le répertoire / var / www / users / ivan /. Évidemment, vous devez remplacer ivan avec le nom d'un utilisateur sur votre serveur.

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
 21 
 22 
 23 
 24 
 25 
 26 
  #! / Bin / bash 

  echo "Initialisation de script ..." 

   $ ( ls / home / ) ; do for i in $ (ls / home /) et ne 
    echo "Je suis le traitement '$ i'" 
    -L / home / $i / public_html ] ; then if [-L / home / $ i / public_html], puis 
      echo "Le lien symbolique / home / $ i / public_html existe déjà '... sauter!" 
    autre 
      echo "Le lien symbolique / home / $ i / public_html n'existe pas: je cherche à créer ..." 
      -d / var / www / users / $i ] ; then if [-d / var / www / users / $ i], puis 
        echo "Le répertoire / var / www / users / $ i, je suis juste pas établir de lien ..." 
        ln -s / var / www / users / $i / home / $i / public_html / Bin / ln-s / var / www / users / $ i / home / $ i / public_html 
      autre 
        echo "Le répertoire / var / www / users / $ i n'existe pas, maintenant je créer ..." 
        mkdir / var / www / users / $i / Bin / mkdir / var / www / users / $ i 
        echo "le Copio FAST-CGI ..." 
        cp / var / www / users / ivan / fast-cgi / var / www / users / $i / / Bin / cp / var / www / users / ivan / fast-cgi / var / www / users / $ i / 
        echo "système de permissions pour le répertoire créé ..." 
        chown -R $i : $i / var / www / users / $i / Bin / chown-R $ i: $ i / var / www / users / $ i 
        chmod 700 / var / www / users / $i / Bin / chmod 700 / var / www / users / $ i 
        echo "Je crée le lien symbolique ..." 
        ln -s / var / www / users / $i / home / $i / public_html / Bin / ln-s / var / www / users / $ i / home / $ i / public_html 
      florence 
    florence 
  fait