Existe-t-il une application de type Deep Freeze pour Ubuntu?

10

J'aimerais savoir s'il existe une alternative à Deep Freeze pour Linux qui est toujours en cours de développement, car j'ai lu certaines choses sur Internet et on dirait que la même société qui a développé Deep Freeze en avait une version Linux, mais le le projet a été interrompu.

Zignd
la source
Pourquoi voudrai-tu ceci? N'autorisez simplement pas les utilisateurs non root à modifier les fichiers système.
David Foerster
@DavidFoerster Je viens de modifier la question pour répondre à votre commentaire.
Zignd
Salut, vous pouvez essayer cette alternative sourceforge.net/projects/dafturnofris-id
2
Les utilisateurs "invités" normaux (prêts à l'emploi) dans Ubuntu (récent?) Sont créés à la volée, ont leur domicile /tmpet sont nettoyés après la déconnexion ... n'est-ce pas suffisant?
Rmano

Réponses:

8

OFRIS est une application open source qui peut geler votre Linux, c'est comme Deep Freeze dans le système d'exploitation Microsoft Windows.

Pour les versions Ubuntu 9.10, 10.04 et 10.10. Pour installer OFRIS, appuyez simplement sur Ctrl+ Alt+ Tsur votre clavier pour ouvrir Terminal. Lorsqu'il s'ouvre, exécutez la ou les commandes ci-dessous:

sudo add-apt-repository ppa:tldm217/tahutek.net -y
sudo apt-get update && sudo apt-get install ofris-en -y

Pour les versions Ubuntu 11.04, 11.10, 12.04 et 13.04. Pour installer OFRIS, appuyez simplement sur Ctrl+ Alt+ Tsur votre clavier pour ouvrir Terminal. Lorsqu'il s'ouvre, exécutez la ou les commandes ci-dessous:

[Format de fichier COPY]

if [ $(uname -m) == "x86_64" ]; then deb="http://goo.gl/DleLl"; else deb="http://goo.gl/V94Qs"; fi && wget -q $deb -O ofris.deb && sudo dpkg -i ofris.deb && rm ofris.deb

L'image ci-dessous montre OFRIS fonctionnant le 13.04

entrez la description de l'image ici

Source: XGeek

Mitch
la source
J'ai installé cela en 15.10 puis j'ai appliqué Freeze en appuyant sur 3, il m'a confirmé que le système était en mode gelé. Ensuite, j'ai redémarré, j'ai créé un fichier / var / tmp / myname avec valeur, puis à nouveau j'ai redémarré mais le fichier est toujours là. Comment est ce gel?
Que voulez-vous dire exactement? Je dois également vérifier si cela fonctionne le 15.10. Le gel du système réinitialise tout ce qu'il était avant d'être gelé. S'il vous plaît, faites-moi savoir.
Mitch
2

Avertissement: j'ai implémenté cette solution et cela fonctionne, mais les temps de fusion pour revenir à l'instantané peuvent entraîner un processus de démarrage long si des modifications importantes ont été apportées au système lors de son dernier démarrage. Pendant cette période d'attente, il peut sembler aux utilisateurs que le système se bloque!

Sachez également que toute personne disposant de connaissances suffisantes pour monter l'instantané peut modifier l'état "figé". J'ai profité de cette possibilité pour mettre à jour des systèmes "gelés", mais encore une fois, cela peut également augmenter le temps nécessaire pour fusionner (revenir à) l'instantané!


Instantanés LVM + cron + script = état "figé"

J'ai récemment commencé à creuser dans LVM et il m'est apparu que l'on pouvait créer un état "figé" sur une machine utilisant LVM et ses capacités de capture instantanée. Bien sûr, cette méthode nécessite un système configuré à l'aide de LVM (ou au moins LVM sur les partitions à figer).

Sommaire:

  • Installer le système sur les partitions LVM en réservant suffisamment d'espace sur un PV pour un instantané
  • Obtenez le système configuré comme vous le souhaitez.
  • Créez un travail cron qui s'exécute en tant que root au démarrage pour fusionner l'instantané et créer un nouvel instantané pour remplacer celui fusionné
  • Tous les redémarrages successifs reviennent à l'instantané. Tous les instantanés créés sont pris du système dans l'état dans lequel vous l'avez créé.
  • En prime, l'instantané peut être monté et modifié (à condition que vous ayez les privilèges root) et l'état "figé" peut être mis à jour si nécessaire.

Preuve de concept: geler tout sauf une partition d'une installation propre

L'installation:

  • Démarrez à partir d'un disque / USB Ubuntu en direct et choisissez l'option "Essayer Ubuntu sans installer". Ceci est important pour configurer manuellement des partitions avec LVM
  • Lorsque Ubuntu charge partitionnez votre disque en utilisant l'outil de votre choix afin qu'il ait une partition qui occupe tout l'espace du disque. Voici avec quoi je travaille:
    • /dev/sda (taille 1T)
      • /dev/sda1 (taille 1T)
  • Ensuite, dans un terminal, configurez LVM /dev/sda1. Je vais mettre la plupart du système sur une seule partition, mais vous n'auriez pas à le faire.
    • sudo pvcreate /dev/sda1
    • sudo vgcreate ubuntu-vg /dev/sda1
    • sudo lvcreate -n swap -L 1G ubuntu-vg
    • sudo lvcreate -n unfrozen -L 10G ubuntu-vg
    • sudo lvcreate -n root -l +50%free ubuntu-vg
  • Maintenant, si vous exécutez sudo vgssuivi de, sudo lvsvous devriez pouvoir voir que la quantité d'espace libre restant dans le groupe de volumes "ubuntu-vg" (VFree sous sortie vgs) est égale à la quantité d'espace occupée par le volume logique "root" "(LSize sous sortie lvs). Dans mon cas, j'ai 506,44 g de libre dans ubuntu-vg et ma partition racine est grande de 506,44 g. Si l'espace libre laissé dans le groupe de volumes est égal à la taille de la partition que je veux geler, je devrais pouvoir effacer la partition entière et toujours pouvoir récupérer avec un redémarrage. Laissez le reste de l'espace libre dans ubuntu-vg inutilisé pour l'instant. Nous l'utiliserons plus tard.
  • Installez maintenant Ubuntu en utilisant le partitionnement manuel image.png
  • Une fois l'installation terminée, redémarrez le système nouvellement installé.
  • Une fois démarré dans votre nouveau système, configurez-le afin qu'il soit exactement comme vous le souhaitez lorsque l'ordinateur démarre à chaque fois.
    • Si vous ne modifiez pas accidentellement l'instantané et que vous ne souhaitez pas que la partition d'instantané apparaisse dans la barre de menus ...
      • mkdir /steady
      • Modifiez /etc/fstaben ajoutant (il s'agit d'une seule ligne) /dev/ubuntu-vg/steadystate /steady ext4 defaults,ro,nofail 0 1comme dernière ligne du fichier
    • Étant donné que des choses comme les mises à jour seront supprimées à chaque redémarrage, vous souhaiterez peut-être les désactiver.
    • Si vous avez une partition non gelée comme la mienne à / unfrozen, n'oubliez pas de la rendre accessible aux utilisateurs qui en ont besoin
  • Une fois que le système est configuré exactement comme vous le souhaitez, créez le script suivant (vous aurez besoin des privilèges root) et enregistrez-le /root/steadystate.shavec votre éditeur préféré. Notez que si vous avez modifié le nom du groupe de volumes lors de la configuration de LVM, vous devrez également le mettre à jour dans le script ci-dessous.
    #!/bin/bash
    LOG=/dev/kmsg

    # wait for merge in progress
    echo -n "Reverting to snapshot if present... " | tee -a $LOG
    merging=1
    while [ "$merging" == "1" ];
    do
        /usr/sbin/service lightdm stop #prevent the auto-login/login screen from loading
        [ "$(sudo lvs -a | grep steadystate)" == "" ] && merging=0
        sleep 1
    done

    # create snapshot
    echo -n "Creating new snapshot... " | tee -a $LOG
    /sbin/lvcreate -s -n steadystate -l +100%free /dev/ubuntu-vg/root

    # make sure root comes online before trying to merge
    while [ ! -e /dev/mapper/ubuntu--vg-root];
    do
        sleep .5;
    done
    echo -n "Scheduling reset to snapshot... " | tee -a $LOG
    /sbin/lvconvert --merge /dev/ubuntu-vg/steadystate

    echo -n "Starting lightdm... " | tee -a $LOG
    /usr/sbin/service lightdm start
  • Enfin, exécutez sudo crontab -e, sélectionnez un éditeur et placez-le @reboot /bin/bash /root/steadystate.shà la fin du fichier. Enregistrer et fermer ( Ctrl+ X; répondre Ypour enregistrer)
  • Redémarrez, et vous devriez avoir un système qui est gelé à l'exception de la partition montée à / non gelée

Cela fonctionne car l'instantané est créé au démarrage et même si nous transmettons la commande pour fusionner l'instantané juste après cela, l'instantané ne peut pas être fusionné tant que le volume logique pour la racine est actif. Il reporte donc l'action de fusion jusqu'à ce que la prochaine fois / dev / ubuntu-vg / root soit activé, c'est-à-dire au prochain redémarrage. Cette action serait également déclenchée si le système était démarré à partir d'une clé USB en direct.

Juste pour les coups de pied, je suis entré après un redémarrage et sudo apt remove --purge firefox* libreoffice-* unity*j'ai couru ce que je ne conseillerais pas normalement de faire car il supprime certains programmes utiles et met le système dans ce qui pourrait être un état moins que souhaitable! broken.png Le système ne s'arrêterait même pas correctement à partir de l'interface graphique. Alors, comment peut-on résoudre ce problème? Redémarrez! rebooted.png Au redémarrage, tout était en ordre. Firefox, LibreOffice et Unity étaient tous revenus à leur place.

J'ai également essayé de supprimer Linux *. Cela a laissé la machine incapable de démarrer, cependant, le simple démarrage à partir d'un disque Ubuntu en direct a semblé faire la fusion. Le redémarrage a de nouveau laissé le système dans son état "figé"

Si vous souhaitez pouvoir apporter des modifications, vous pouvez (re) monter l'instantané avec les privilèges rw, puis y chrooter et apporter les modifications que vous souhaitez conserver permanentes. Ce n'est pas parfait, mais c'est une preuve de concept.

b_laoshi
la source
1

Par défaut, Ubuntu et la plupart des autres Unices refusent aux utilisateurs réguliers (étudiants, invités) l'accès en écriture aux fichiers système. Seul un administrateur disposant de l'autorisation appropriée (nom d'utilisateur et clé) peut installer un logiciel, modifier les paramètres système ou supprimer des partitions.

Les utilisateurs réguliers peuvent, par défaut, uniquement écrire dans leur répertoire personnel et le répertoire temporaire du système. Une façon courante de gérer les sessions invitées ponctuelles consiste à placer leur répertoire personnel dans le répertoire temporaire et le répertoire temporaire dans la mémoire principale.

Si vous voulez être plus sûr, montez la partition système en lecture seule et déposez une partition aufs dessus qui stocke les modifications dans la mémoire principale.

David Foerster
la source
1

fsprotect est un ensemble de scripts qui protègent les systèmes de fichiers existants. fsprotect est excellent pour les ordinateurs publics comme ceux des bibliothèques, des cybercafés, etc.

En utilisant aufs, ils emballent un système de fichiers tmpfs forçant les modifications à être écrites dans le système de fichiers tmpfs.

Le système de fichiers racine est protégé par un script initramfs. D'autres systèmes de fichiers sont protégés par un script init. Tous les systèmes de fichiers protégés deviennent en lecture seule, garantissant leur immuabilité même à la mise hors tension.

Pour installer fsprotect dans toutes les versions actuellement prises en charge d'Ubuntu, ouvrez le terminal et tapez:

sudo apt-get install fsprotect

Les avantages de l'utilisation de fsprotect sont:

  • Les systèmes de fichiers sont protégés et aucune modification n'est jamais écrite sur le disque.
  • Les systèmes de fichiers protégés sont montés en lecture seule. Cela signifie qu'ils ne sont pas endommagés lorsque l'ordinateur est éteint de manière incorrecte.
  • C'est très simple à utiliser.
  • Dans certains cas, cela accélère l'accès au système de fichiers.

Les inconvénients de l'utilisation de fsprotect sont:

  • Les modifications du système de fichiers ne peuvent pas dépasser une limite prédéfinie en octets (définie par vous).
  • Étant donné que tmpfs est fortement utilisé, vous devez disposer d'un espace de swap adéquat.
Karel
la source
L'installation échoue sur Ubuntu 16.04.2. Le problème est une mauvaise référence touchdans un script initram. Il indique /usr/bin/touchplutôt que /bin/touch. Cela peut être forcé de fonctionner, mais même une fois installé, le réseau cesse de fonctionner.
b_laoshi
Le réseau ne fonctionne plus peut-être parce que vous utilisez un mauvais noyau ou un noyau sans fichiers d'en-tête. Lorsque l'ordinateur redémarre, attendez que l'écran de démarrage du fabricant disparaisse, puis appuyez sur la touche Maj pour afficher les options de démarrage GRUB. Dans l'écran GRUB violet, sélectionnez Options avancées pour Ubuntu et appuyez sur Entrée. Un nouvel écran violet apparaîtra montrant une liste de noyaux. Sélectionnez un autre noyau et appuyez sur Entrée.
karel
Il s'agit pratiquement d'une nouvelle installation avec toutes les mises à jour. J'ai essayé l'ancien noyau, et au début il a démarré avec la mise en réseau, mais j'ai ensuite réalisé que fsprotect n'était pas intégré dans l'ancien noyau. J'ai mis à jour tous les noyaux et je n'ai plus de réseau lorsque je démarre à partir de l'un ou l'autre noyau.
b_laoshi
1
La suppression de l'option fsprotect de grub et la mise à jour d'initramfs ont désactivé fsprotect bien sûr, et le réseau fonctionne à nouveau. De toute évidence, c'est quelque chose dans fsprotect qui brise le réseau.
b_laoshi