Répertoire public_html avec un script bash
Nessun commento » Apache , Open Source , des Shell , des système , les Trucs et astuces Pas de commentaires »
Je me suis souvent avoir à bidouiller dans serveurs UNIX / Linux avec la direction VirtualHost Apache compromise par des années de l'utilisation incontrôlée des serveurs par les administrateurs système ne sont pas vraiment triés.
Le résultat est généralement un grand nombre d'utilisateurs le répertoire home de structurer différemment les uns des autres.
En particulier, dans une affaire récente, je me suis trouvé une centaine de membres qui avaient tous une certaine partie de la DocumentRoot dans votre répertoire home, tandis que d'autres n'avaient pas sous / var / www / users /, que je recommande car il évite avez des problèmes avec les versions précompilées suEXEC d'Apache.
Pour placer une situation chaotique, alors j'ai décidé de tout mettre en plein / var / www / users / et j'ai été présenté à la nécessité de créer automatiquement le répertoire manquant et ses liens symboliques dans le répertoire home diverses. Je l'ai fait avec un simple script bash, que le public ici au cas où il pourrait être utile à quelqu'un d'autre. Il m'a fallu un peu de "sortie de rendre le code clair pour ceux qui sont les premières armes en bash.
Attention! Ligne 18 est une copie d'un fast-cgi dans le répertoire / var / www / users / ivan /. Évidemment, vous devez remplacer Ivan comme un utilisateur présent 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 des scripts ..." $ ( ls / home / ) ; do for i in $ (ls / home /) faire '" echo "Je suis le traitement '$ i'" -L / home / $i / public_html ] ; then if [-L / home / $ i / public_html], puis /public_html esiste gia' ... salto!" echo "lien symbolique / home / $ i / public_html existe déjà» ... saut! " d'autre /public_html non esiste: provo a crearlo ... " echo "lien symbolique / home / $ i / public_html n'existe pas: je tente de le créer ..." -d / var / www / users / $i ] ; then if [-d / var / www / users / $ i], puis esiste, non mi resta che linkarla ... " echo "Le répertoire / var / www / users / $ i existe, je n'ai qu'à le relier ..." ln -s / var / www / users / $i / home / $i / public_html / Bin / ln-s / var / www / users / $ i / home / $ i / public_html d'autre NON esiste, ora la creo ... " echo "Le répertoire / var / www / users / $ NON là, maintenant je crée ..." mkdir / var / www / users / $i / Bin / mkdir / var / www / users / $ i echo "Copie du 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 "Il a établi les autorisations 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 fi fi fait |







