tag:blogger.com,1999:blog-80914553225459380022024-03-08T01:37:33.480-05:00MAX - TiKUnknownnoreply@blogger.comBlogger5125tag:blogger.com,1999:blog-8091455322545938002.post-83945421803611193292016-08-24T15:04:00.002-04:002016-08-25T07:53:49.366-04:00Comment Chrooter un système Linux - Mot de Passe perdu<h1>
Comment Chrooter un système Linux
</h1>
<div class="content">
<div class="wiki-tools-container">
<br />
<br />
<menu class="cssmenu cssmenu-right cssmenu-actionslinks cssmenu-tools" id="cssmenu-wikitools">
</menu>
</div>
<br />
<h1 class="wiki_paragraph1" id="paragraph_introduction">
Introduction</h1>
<br />
<br />
Que veut dire chrooter ? <br />
Et bien chrooter est un verbe qui vient du mot chroot.<br />
<br />
<span class="formatter-blockquote">man chroot:</span><br />
<div class="blockquote">
chroot - exécuter une commande ou un shell interactif avec un répertoire racine spécial</div>
<br />
<br />
En d'autres termes, la commande chroot permet de changer le répertoire racine vers un nouvel emplacement.<br />
Pour information, chroot est un acronyme de <b>Change Root</b>, changer de racine.<br />
<br />
Chroot peut être utilisé dans deux cas :<br />
<ul class="formatter-ul">
<li class="formatter-li"> <b>En tant que bascule d'environnement </b>pour prendre le contrôle d'une installation Linux depuis un autre système.
</li>
<li class="formatter-li"> <b>En tant que prison </b>pour
empêcher un utilisateur de remonter dans l'arborescence pour
l'emprisonner dans un répertoire spécifique (ce qui peut être utilisé
avec un serveur FTP pour que les utilisateurs ne remontent pas dans
l'arborescence du système)<br />
</li>
</ul>
<br />
<br />
Je vais traiter dans cette page la première partie.<br />
<br />
<br />
<h1 class="wiki_paragraph1" id="paragraph_a-quoi-cela-peut-bien-servir">
A quoi cela peut bien servir</h1>
<br />
<br />
Et bien, avec grub2, il est souvent impossible de l'installer sur la partition racine depuis le média d'installation.<br />
Si vous avez un autre gestionnaire d'amorçage et que vous ne voulez pas l'écraser, le chroot peut être utile.<br />
Le chroot peut aider à écraser le mot de passe root si vous l'avez perdu.<br />
Récupérer un système endommagé.<br />
Et bien d'autres utilisations ....<br />
<br />
<br />
<h1 class="wiki_paragraph1" id="paragraph_recommandations">
Recommandations</h1>
<br />
<br />
Nous allons <b>chrooter</b> ici un système installé sur un disque dur depuis un CD Live de la même distribution.<br />
J'ai fait mes tests sur une Mageia 3 64bits.<br />
Il est recommandé d’utiliser donc un Live DVD de la même distribution
avec la même architecture et le même environnement de bureau.<br />
<br />
<br />
<h1 class="wiki_paragraph1" id="paragraph_c-est-parti-chrootons">
C'est parti, chrootons</h1>
<br />
<br />
Dans un premier temps, booter sur le Live CD ou Live DVD de la distribution adéquate.<br />
Si nous voulons chrooter notre distribution installée sur le disque dur et qu'il s'agit d'une<b> Mageia 3 KDE 64bits</b>, prendre le<b> Live DVD Mageia 3 64bits KDE</b>.<br />
S'il s'agit d'une Ubuntu 32bits, prenez une Ubuntu 32bits Live CD.<br />
<br />
Une fois sur le bureau, se connecter en root dans une console.<br />
<br />
Maintenant, les choses sérieuses commencent.<br />
<br />
Dans un premier temps, on prépare notre future arborescence :<br />
<br />
<span class="formatter-code">Code BASH :</span><br />
<div class="code">
<pre style="display: inline;"><pre class="bash" style="font-family: monospace;"><span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: black; font-weight: bold;">/</span>aa</pre>
</pre>
</div>
<br />
<br />
Ensuite, on va monter notre racine dans la future arborescence :<br />
<br />
<span class="notice">Dans cet exemple, je suppose que /dev/sda1 est la partition racine de mon système installé sur disque dur.<br />
Remplacer évidemment en fonction de votre cas.</span><br />
<br />
<span class="formatter-code">Code BASH :</span><br />
<div class="code">
<pre style="display: inline;"><pre class="bash" style="font-family: monospace;"><span style="color: #c20cb9; font-weight: bold;">mount</span> <span style="color: black; font-weight: bold;">/</span>dev<span style="color: black; font-weight: bold;">/</span>sda1 <span style="color: black; font-weight: bold;">/</span>aa</pre>
</pre>
</div>
<br />
<br />
Ensuite, montez si vous en avez l'utilité d'autres partitions (/home ou
/var si vous avez un /var séparé, /usr si vous avez un /usr séparé etc
... )<br />
Exemple avec <b>/home</b> en <b>/dev/sda2</b><br />
<br />
<span class="formatter-code">Code BASH :</span><br />
<div class="code">
<pre style="display: inline;"><pre class="bash" style="font-family: monospace;"><span style="color: #c20cb9; font-weight: bold;">mount</span> <span style="color: black; font-weight: bold;">/</span>dev<span style="color: black; font-weight: bold;">/</span>sda2 <span style="color: black; font-weight: bold;">/</span>aa<span style="color: black; font-weight: bold;">/</span>home</pre>
</pre>
</div>
<br />
<br />
Ensuite, il ne faut pas oublier de monter les dossiers spéciaux nécessaires au fonctionnement du système :<br />
<br />
<span class="formatter-code">Code BASH :</span><br />
<div class="code">
<pre style="display: inline;"><pre class="bash" style="font-family: monospace;"><span style="color: #c20cb9; font-weight: bold;">mount</span> <span style="color: #660033;">--bind</span> <span style="color: black; font-weight: bold;">/</span>dev <span style="color: black; font-weight: bold;">/</span>aa<span style="color: black; font-weight: bold;">/</span>dev
<span style="color: #c20cb9; font-weight: bold;">mount</span> <span style="color: #660033;">-t</span> proc <span style="color: black; font-weight: bold;">/</span>proc <span style="color: black; font-weight: bold;">/</span>aa<span style="color: black; font-weight: bold;">/</span>proc
<span style="color: #c20cb9; font-weight: bold;">mount</span> <span style="color: #660033;">-t</span> sysfs <span style="color: black; font-weight: bold;">/</span>sys <span style="color: black; font-weight: bold;">/</span>aa<span style="color: black; font-weight: bold;">/</span>sys</pre>
</pre>
</div>
<br />
<br />
Enfin, basculer vers le nouveau système avec la commande <b>chroot</b> :<br />
<br />
<span class="formatter-code">Code BASH :</span><br />
<div class="code">
<pre style="display: inline;"><pre class="bash" style="font-family: monospace;"><span style="color: #c20cb9; font-weight: bold;">chroot</span> <span style="color: black; font-weight: bold;">/</span>aa <span style="color: black; font-weight: bold;">/</span>bin<span style="color: black; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">bash</span> </pre>
</pre>
</div>
<br />
<br />
Le prompt change alors et vous êtes prêts à utiliser votre distribution qui est installée sur le disque dur <br />
<br />
<br />
<h1 class="wiki_paragraph1" id="paragraph_et-quand-j-ai-fini-je-dechroot">
Et quand j'ai fini, je déchroot ?</h1>
<br />
<br />
Et bien Oui, il est préférable, une fois les opérations terminées de démonter notre chroot.<br />
<br />
Quitter le système chrooté avec la commande<br />
<br />
<span class="formatter-code">Code BASH :</span><br />
<div class="code">
<pre style="display: inline;"><pre class="bash" style="font-family: monospace;"><span style="color: #7a0874; font-weight: bold;">exit</span></pre>
</pre>
</div>
<br />
<br />
Puis une fois revenu sur le système live, démonter tous les systèmes de fichiers précédemment montés :<br />
<br />
Commencer par les dossiers spéciaux :<br />
<br />
<span class="formatter-code">Code BASH :</span><br />
<div class="code">
<pre style="display: inline;"><pre class="bash" style="font-family: monospace;"><span style="color: #c20cb9; font-weight: bold;">umount</span> <span style="color: black; font-weight: bold;">/</span>aa<span style="color: black; font-weight: bold;">/</span>dev
<span style="color: #c20cb9; font-weight: bold;">umount</span> <span style="color: black; font-weight: bold;">/</span>aa<span style="color: black; font-weight: bold;">/</span>proc
<span style="color: #c20cb9; font-weight: bold;">umount</span> <span style="color: black; font-weight: bold;">/</span>aa<span style="color: black; font-weight: bold;">/</span>sys</pre>
</pre>
</div>
<br />
<br />
Puis par les partitions additionnelles :<br />
<br />
<span class="formatter-code">Code BASH :</span><br />
<div class="code">
<pre style="display: inline;"><pre class="bash" style="font-family: monospace;"><span style="color: #c20cb9; font-weight: bold;">umount</span> <span style="color: black; font-weight: bold;">/</span>aa<span style="color: black; font-weight: bold;">/</span>home</pre>
</pre>
</div>
<br />
<br />
Et enfin la racine :<br />
<br />
<span class="formatter-code">Code BASH :</span><br />
<div class="code">
<pre style="display: inline;"><pre class="bash" style="font-family: monospace;"><span style="color: #c20cb9; font-weight: bold;">umount</span> <span style="color: black; font-weight: bold;">/</span>aa</pre>
</pre>
</div>
<br />
<br />
<br />
<h1 class="wiki_paragraph1" id="paragraph_exemple-de-taches-faites-sous-systeme-chroote">
Exemple de tâches faites sous système chrooté</h1>
<br />
<br />
<br />
<h2 class="wiki_paragraph2" id="paragraph_installation-de-grub2-sur-la-partition-racine">
Installation de GRUB2 sur la partition racine</h2>
<br />
<br />
J'ai sur ma machine plusieurs systèmes (deux Linux).<br />
Une Mageia dont la partition racine est /dev/sda1, et une Calculate Linux dont la partition racine s'appelle /dev/sda6<br />
<br />
Je souhaite conserver GRUB de Mageia sur mon MBR, et d'installer le GRUB2 de Calculate sur sa partition racine.<br />
Je ferai un chainage sur le GRUB de Mageia vers la partition /dev/sda6<br />
<br />
J'ai donc installé ma Calculate Linux avec / sur /dev/sda6, sans installer GRUB2.<br />
<br />
J'ai chrooté avec le live DVD le système Calculate Linux comme indiqué précédemment.<br />
<br />
Il m'a juste fallu installer GRUB2 sur le / de Calculate.<br />
<br />
Dans mon système chrooté :<br />
<br />
<span class="formatter-code">Code BASH :</span><br />
<div class="code">
<pre style="display: inline;"><pre class="bash" style="font-family: monospace;">grub-install <span style="color: #660033;">-f</span> <span style="color: black; font-weight: bold;">/</span>dev<span style="color: black; font-weight: bold;">/</span>sda6</pre>
</pre>
</div>
<br />
<br />
Et l'affaire est réglée. <br />
<br />
<h2 class="wiki_paragraph2" id="paragraph_reinstaller-grub2-sur-le-mbr">
Réinstaller GRUB2 sur le MBR</h2>
<br />
<br />
Si une mise à jour de Windows 8 vers 8.1 vous a cassé le GRUB qui était sur le MBR, voici comment procéder.<br />
<br />
Il faut chrooter comme indiqué précédemment.<br />
<br />
Puis pour réinstaller GRUB2 sur le MBR :<br />
<br />
<span class="formatter-code">Code BASH :</span><br />
<div class="code">
<pre style="display: inline;"><pre class="bash" style="font-family: monospace;">grub-install <span style="color: #660033;">-f</span> <span style="color: black; font-weight: bold;">/</span>dev<span style="color: black; font-weight: bold;">/</span>sda</pre>
</pre>
</div>
<br />
<br />
Et l'affaire est réglée. <br />
<br />
<br />
<h2 class="wiki_paragraph2" id="paragraph_mot-de-passe-root-perdu">
Mot de passe root perdu</h2>
<br />
<br />
Si vous avez perdu le mot de passe root, et que vous avez accès à votre machine physiquement, cette astuce est pour vous !<br />
<br />
Chrootez le système comme vu précédemment.<br />
<br />
Une fois dans le système chrooté, saisissez :<br />
<br />
<span class="formatter-code">Code BASH :</span><br />
<div class="code">
<pre style="display: inline;"><pre class="bash" style="font-family: monospace;"><span style="color: #c20cb9; font-weight: bold;">passwd</span></pre>
</pre>
</div>
<br />
<br />
Et saisissez deux fois le nouveau mot de passe root !<br />
<br />
Et voila, c'était facile hein </div>
<div class="content">
</div>
<div class="content">
</div>
<div class="content">
</div>
<div class="content">
</div>
<div class="content">
</div>
<div class="content">
</div>
<div class="content">
</div>
<div class="content">
</div>
<div class="content">
</div>
<div class="content">
</div>
<div class="content">
<br />
--- </div>
<div class="content">
<br />
Personnellement j'ai fait un chroot sur Kubuntu 15.04 avec Mandriva 2010 Live.<br />
Ma manipulation était de réinitialiser le mot de passe du système que j'avais oublié.<br />
<br /></div>
<div class="content">
source de la page :</div>
<div class="content">
<a href="http://www.linuxtricks.fr/wiki/chrooter-un-systeme-linux">http://www.linuxtricks.fr/wiki/chrooter-un-systeme-linux</a></div>
<div class="content">
</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8091455322545938002.post-2894239949478973662012-02-27T16:32:00.001-05:002012-02-27T16:34:03.229-05:00Comment Renommer le nom des fichiers en minuscule sous une structure Linux<br />
<h3 id="co">
Comment Renommer le nom des fichiers en minuscule sous une structure Linux</h3>
<br />
<br />
<div style="background-color: #d9d2e9;">
<blockquote>
</blockquote>
<br />
rename 'y/A-Z/a-z/' *.txt<br />
<br />
<br />
(En Récursif) avec la commande find pour les fichiers <br />
<b>find ./ -type f -exec rename 'y/A-Z/a-z/' {} \;</b><br />
<br />
<br />
<br />
(En Récursif) avec la commande find pour les répertoires
<br />
<br />
<b>find ./ -type d -exec rename 'y/A-Z/a-z/' {} \;</b><br />
<br />
<br />
<br />
Pour ceux qui aime les boucle FOR <br />
<br />
Pour les fichiers des sous répertoire<br />
<b>for i in `find -type f`; do mv "$i" "$(echo $i | tr A-Z a-z)"; done</b><br />
<br />
<br />
pour les répertoires:<br />
<b>
for i in `find -type d`; do mv "$i" "$(echo $i | tr A-Z a-z)"; done</b><br />
<br /></div>
<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8091455322545938002.post-88769208862254766032011-11-08T14:17:00.000-05:002011-11-08T14:19:23.562-05:00Comment effacer tous les répertoires vides dans une structure LinuxComment effacer tous les répertoires vides dans une structure Linux<br />
<br />
<div style="background-color: #d9d2e9;">
<code>find . -type d -empty -print -delete</code></div>
<br />
<br />
<br />
<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8091455322545938002.post-26517977670381301752011-11-08T13:43:00.000-05:002011-11-08T14:17:43.228-05:00Comment effacer tous les liens dans une structure de répertoire sous Linux<br />
Comment effacer tous les liens dans une structure de répertoire sous Linux<br />
<br />
<br />
<br />
<div style="background-color: #d9d2e9;">
</div>
<div style="background-color: #d9d2e9;">
find . -type l -print -exec rm {} \;</div>
<br />
<br />
Comment Afficher tous les liens dans une structure de répertoire sous Linux<br />
<span style="background-color: #d9d2e9;"></span><br />
<div style="background-color: #d9d2e9;">
find . -type l -print </div>
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8091455322545938002.post-42884413946512502182011-11-06T14:33:00.001-05:002011-11-08T14:18:13.154-05:00Comment faire une Sauvegarde de plusieurs Base de données MySQL<h3>
Comment faire une Sauvegarde de plusieurs Base de données MySQL</h3>
<h3>
ou </h3>
<h3>
Comment faire un Dump de toutes les bases d'un serveur MySQL dans des fichiers multiples</h3>
<h3>
</h3>
Si vous avez sous la main un serveur abritant plusieurs
(dizaines, voir centaines de) bases de données, le jour où une des bases
de données plante et qu'on vous demande de la restaurer, je vous
souhaite bien du courage si vous n'avez qu'un résultat de mysqldump
--all-databases sous la main. <br />
<br />
Afin de pallier ce problème, j'ai écris ce script bash qui vous facilitera bien la vie !<br />
Au programme : <br />
<ul>
<li>sauvegarde des dump de chaque base dans des fichiers séparés
compressés en gzip, eux même situés dans un dossier nommé en fonction de
la date</li>
<li>suppression automatique du dump effectué il y a 7 jours.</li>
</ul>
Le script est destiné à être exécuté par un cron, par exemple toutes les nuits.<br />
<br />
CODE :<br />
<br />
<div style="background-color: #b4a7d6;">
</div>
<div style="background-color: #b4a7d6;">
#!/bin/bash</div>
<div style="background-color: #b4a7d6;">
<br /></div>
<div style="background-color: #b4a7d6;">
#paramètres de configuration du script</div>
<div style="background-color: #b4a7d6;">
#completer ici par le nom d'un utilisateur autorisé à dumper toutes vos bases :</div>
<div style="background-color: #b4a7d6;">
strMysqlUser="" </div>
<div style="background-color: #b4a7d6;">
#completer ici par le mot de passe de cet utilisateur :</div>
<div style="background-color: #b4a7d6;">
strPassword="" </div>
<div style="background-color: #b4a7d6;">
# completer ici par le chemin vers le repertoire de travail où va se trouver le dump</div>
<div style="background-color: #b4a7d6;">
# il est possible de préfixer le répertoire :</div>
<div style="background-color: #b4a7d6;">
# "/rep/de/travail/prefix_" donnera alors /rep/de/travail/prefix_20070505</div>
<div style="background-color: #b4a7d6;">
repTravail="" </div>
<div style="background-color: #b4a7d6;">
<br /></div>
<div style="background-color: #b4a7d6;">
<br /></div>
<div style="background-color: #b4a7d6;">
#mémorisation de la date du jour et de la date d'il y a 7 jours</div>
<div style="background-color: #b4a7d6;">
dateActuelle=$(date +%Y%m%d)</div>
<div style="background-color: #b4a7d6;">
datePassee=$(date --date '7 days ago' +%Y%m%d)</div>
<div style="background-color: #b4a7d6;">
<br /></div>
<div style="background-color: #b4a7d6;">
#Suppression de la sauvegarde d'il y a 7 jours</div>
<div style="background-color: #b4a7d6;">
echo "["$(date +%F\ %X)"] Suppression des dump du "$datePassee</div>
<div style="background-color: #b4a7d6;">
repTravailPasse=$repTravail$datePassee</div>
<div style="background-color: #b4a7d6;">
rm -R $repTravailPasse</div>
<div style="background-color: #b4a7d6;">
<br /></div>
<div style="background-color: #b4a7d6;">
# début du dump</div>
<div style="background-color: #b4a7d6;">
echo "["$(date +%F\ %X)"] Dump du : "$dateActuelle</div>
<div style="background-color: #b4a7d6;">
repTravailActuel=$repTravail$dateActuelle</div>
<div style="background-color: #b4a7d6;">
mkdir $repTravailActuel</div>
<div style="background-color: #b4a7d6;">
# récupération de la liste des bdd, "tail -n +2" est présent pour ne pas récupérer le titre "Databases" renvoyé par mysql</div>
<div style="background-color: #b4a7d6;">
listDatabase=$(mysql --user=$strMysqlUser --password=$strPassword --exec="SHOW DATABASES;" | tail -n +2)</div>
<div style="background-color: #b4a7d6;">
<br /></div>
<div style="background-color: #b4a7d6;">
#dump de chaque base dans un fichier</div>
<div style="background-color: #b4a7d6;">
for lineDatabase in $listDatabase</div>
<div style="background-color: #b4a7d6;">
do</div>
<div style="background-color: #b4a7d6;">
echo "["$(date +%F\ %X)"] Debut du dump de la base "$lineDatabase" vers "$repTravailActuel</div>
<div style="background-color: #b4a7d6;">
mysqldump --user="$strMysqlUser" --password="$strPassword" "$lineDatabase" | gzip > "$repTravailActuel"/"$lineDatabase".sql.gz</div>
<div style="background-color: #b4a7d6;">
echo "["$(date +%F\ %X)"] Dump compressé dans "$repTravailActuel"/"$lineDatabase".sql.gz"</div>
<div style="background-color: #b4a7d6;">
done</div>
<div style="background-color: #b4a7d6;">
echo "["$(date +%F\ %X)"] Fin de la sauvegarde"</div>
<div style="background-color: #b4a7d6;">
exit 0 </div>
<br />
<br />
<br />
<br />
Source : <a href="http://snippets.prendreuncafe.com/snippet/67">http://snippets.prendreuncafe.com/snippet/67</a><br />
<br />Unknownnoreply@blogger.com0