Outils pour utilisateurs

Outils du site


papweb

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
papweb [2011/06/20 08:28]
saitMoh créée
papweb [2023/07/18 23:11] (Version actuelle)
Ligne 1: Ligne 1:
-==== Configuration d'un Point d'Accés Public au Web ==== +====== Configuration d'un Point d'Accés Public au Web ====== 
-=== Objectifs ===+===== Objectifs =====
 Mettre à la disposition du public des lieux publics (MPT, MJC, Associations, etc…) des bornes d'accès au web Mettre à la disposition du public des lieux publics (MPT, MJC, Associations, etc…) des bornes d'accès au web
 Recycler des ordinateurs anciens en installant une distribution légère de GNU/Linux qui proposera aux utilisateurs **un seul logiciel : le navigateur Web((le web n'est pas Internet)) ** Recycler des ordinateurs anciens en installant une distribution légère de GNU/Linux qui proposera aux utilisateurs **un seul logiciel : le navigateur Web((le web n'est pas Internet)) **
  
-=== Installation de l'OS === +===== Installation de l'OS ===== 
-Comme OS on part sur une base de Debian/Squeeze que l'on installera seuelement avec le système de base et openssh.+Comme OS on part sur une base de Debian/Squeeze que l'on installera seulement avec le système de base et openssh.
  
 On fera 4 partitions((en principe 3 devrait suffire si on externalise le proxy et les logs)): On fera 4 partitions((en principe 3 devrait suffire si on externalise le proxy et les logs)):
-* le swap +  * le swap 
-* la racine (/) +  * la racine (/) 
-* le home (/home) +  * le home (/home) 
-* les logs et autre données du système (/data)+  * les logs et autre données du système (/data)
  
 On peut créer ou pas l'utilisateur à ce moment mais faudra penser à restreindre ses droits dans le fichier /etc/group. On peut créer ou pas l'utilisateur à ce moment mais faudra penser à restreindre ses droits dans le fichier /etc/group.
  
-== Configuration de l'OS ==+==== Configuration de l'OS ====
 <code bash> <code bash>
 # mkdir /data/log # mkdir /data/log
Ligne 23: Ligne 23:
 </code> </code>
  
-Copiez vos clés id_rsa.pub dans le fichier /root/.ssh/authorized_keys puis éditez le fichier /etc/ssh/sshd_config pour les authentification par mot de passe et n'autoriser que l'ulisateur root à se connecter:+Copiez vos clés id_rsa.pub dans le fichier /root/.ssh/authorized_keys puis éditez le fichier /etc/ssh/sshd_config pour enlever les authentification par mot de passe et n'autoriser que l'ulisateur root à se connecter:
 <code> <code>
 PasswordAuthentication no PasswordAuthentication no
Ligne 47: Ligne 47:
 iface eth0 inet dhcp iface eth0 inet dhcp
 </code> </code>
-Attention au fichier /etc/resolv.conf. Il doit contenir la même liste de nameserver que l'endroit ou sera placer la machine ou utiliser un serveur DNS public comme 8.8.8.8.+//Attention au fichier /etc/resolv.conf. Il doit contenir la même liste de nameserver que l'endroit ou sera placer la machine ou utiliser un serveur DNS public comme 8.8.8.8.//
  
 On complète le fichier /etc/apt/sources.list On complète le fichier /etc/apt/sources.list
Ligne 61: Ligne 61:
 </code> </code>
  
-En fonction du matériel présesent dans la machine il peut être nécessaire d'avoir les firmwares:+En fonction du matériel présent dans la machineil peut être nécessaire d'avoir les firmwares:
 <code bash> <code bash>
 # apt-get install firmware-linux # apt-get install firmware-linux
 </code> </code>
-Si d'autre firmware doivent être installé, on a la list avec:+Si d'autre firmware doivent être installé, on a la liste avec:
 <code bash> <code bash>
 # apt-cache search --names-only firmware # apt-cache search --names-only firmware
Ligne 75: Ligne 75:
 </code> </code>
  
-Editez le fichier /etc/modprobe.d/alsa-base-blacklist.conf pour backlister les modules snd-pcsp et pcspkr pour arretez les BEEPs.+Editez le fichier /etc/modprobe.d/alsa-base-blacklist.conf pour backlister les modules snd-pcsp et pcspkr pour arreter les BEEPs.
  
-== installation du proxy ==+==== installation du proxy ====
 Le proxy ainsi que l'écriture des logs ne devrait pas être sur ce type machine mais placé sur un serveur différent. Le choix du proxy et de ses modules complémentaires dépend de ce qui doit être filtré. Là on va juste installer squid et adzapper pour filtrer la pub: Le proxy ainsi que l'écriture des logs ne devrait pas être sur ce type machine mais placé sur un serveur différent. Le choix du proxy et de ses modules complémentaires dépend de ce qui doit être filtré. Là on va juste installer squid et adzapper pour filtrer la pub:
 <code bash> <code bash>
Ligne 88: Ligne 88:
 au fichier /etc/squid/squid.conf au fichier /etc/squid/squid.conf
  
-=== Configuration de l'espace utilisateur ===+===== Configuration de l'espace utilisateur =====
 Créez l'utilisateur si il n'a pas été créé lors de l'installation. On va l'appeler linuxquimper. Il doit appartenir aux groupes video et audio (voir /etc/group). Puis il faut faire une sauvegarde du compte et on le verouille: Créez l'utilisateur si il n'a pas été créé lors de l'installation. On va l'appeler linuxquimper. Il doit appartenir aux groupes video et audio (voir /etc/group). Puis il faut faire une sauvegarde du compte et on le verouille:
 <code bash> <code bash>
Ligne 100: Ligne 100:
 </code> </code>
  
-== Choix du navigateur == +==== Choix du navigateur ==== 
-C'est ce qui pose le plus problème car on ne peut pas installer n'mporte quel navigateur. Celui-ci doit avoir les fonctionnalitées suivantes: +C'est ce qui pose le plus problème car on ne peut pas installer n'mporte quel navigateur. Celui-ci doit avoir les fonctionnalités suivantes: 
-* pas d'accés aux systèmes de fichiers +  * pas d'accés aux systèmes de fichiers 
-* pas d'ouverture de nouvelles fenêtres car on n'install pas de window manager +  * pas d'ouverture de nouvelles fenêtres car on n'installe pas de window manager 
-* support des onglets +  * support des onglets 
-* support de l'html5 avec les balises video, audio et mathml +  * support de l'html5 avec les balises video, audio et mathml 
-* support optionnel des plugins pour avoir flash, la lecture de fichier pdf ou autres document bureautique directement dans le navigateur.+  * support optionnel des plugins pour avoir flash, la lecture de fichier pdf ou autres documents bureautiques directement dans le navigateur.
  
-Actuellement, il n'existe pas pas de navigateur installable qui porpose directement tout ça et il faut le dévellopper. Le développement peut être basé sur xulrunner-2.0 ou sur webkit en gtk ou qt.+Actuellement, il n'existe pas de navigateur installable qui porpose directement tout çail faut le développer. Le développement peut être basé sur xulrunner-2.0 ou sur webkit en gtk ou qt.
  
-Pour faire une démo de l'installation je suis allez au plus simple même si il ne répond pas à tous les besoin en me basant sur le programme de démo GTkLauncher de webkit. Pour le faire fonctionner on aura besoin de libwebkit-1.0-2. Donc+Pour faire une démo de l'installation je suis allez au plus simple même si il ne répond pas à tous les besoins en me basant sur le programme de démo GTkLauncher de webkit. Pour le faire fonctionner on aura besoin de libwebkit-1.0-2. Donc
 <code shell> <code shell>
 # apt-get install libwebkit-1.0-2 # apt-get install libwebkit-1.0-2
 </code> </code>
- 
  
 En principe la compilation du programme doit ce faire sur une autre machine et on a besoin des paquets suivants En principe la compilation du programme doit ce faire sur une autre machine et on a besoin des paquets suivants
Ligne 121: Ligne 120:
 </code> </code>
  
-et du code source de GtkLauncher+et du code source de GtkLauncher et du [[gtklauncher#makefile|Makefile]].
-<code c> +
-/* +
- * Copyright (C) 2006, 2007 Apple Inc. +
- * Copyright (C) 2007 Alp Toker <alp@atoker.com> +
- * +
- * Redistribution and use in source and binary forms, with or without +
- * modification, are permitted provided that the following conditions +
- * are met: +
- * 1. Redistributions of source code must retain the above copyright +
-    notice, this list of conditions and the following disclaimer. +
- * 2. Redistributions in binary form must reproduce the above copyright +
-    notice, this list of conditions and the following disclaimer in the +
-    documentation and/or other materials provided with the distribution. +
- * +
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY +
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR +
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +
- * +
- * Modification pour la démo: +
-  - ajout d'un bouton fermeture +
-  - ajout du proxy +
-  - force la taille de la fenêtre à 1024x768 non redimentionable.  +
-    Cette partie ne devrait pas être en dur mais passer en argument pour  +
-    s'adapter aux dimensions de l'écran. +
- */+
  
-#include <gtk/gtk.h> 
-#include <webkit/webkit.h> 
- 
-static gint windowCount = 0; 
- 
-static GtkWidget* createWindow(WebKitWebView** outWebView); 
- 
-static void activateUriEntryCb(GtkWidget* entry, gpointer data) 
-{ 
-    WebKitWebView *webView = g_object_get_data(G_OBJECT(entry), "web-view"); 
-    const gchar* uri = gtk_entry_get_text(GTK_ENTRY(entry)); 
-    g_assert(uri); 
-    webkit_web_view_load_uri(webView, uri); 
-} 
- 
-static void updateTitle(GtkWindow* window, WebKitWebView* webView) 
-{ 
-    GString *string = g_string_new(webkit_web_view_get_title(webView)); 
-    gdouble loadProgress = webkit_web_view_get_progress(webView) * 100; 
-    g_string_append(string, " - WebKit Launcher"); 
-    if (loadProgress < 100) 
-        g_string_append_printf(string, " (%f%%)", loadProgress); 
-    gchar *title = g_string_free(string, FALSE); 
-    gtk_window_set_title(window, title); 
-    g_free(title); 
-} 
- 
-static void linkHoverCb(WebKitWebView* page, const gchar* title, const gchar* link, GtkStatusbar* statusbar) 
-{ 
-    guint statusContextId = 
-      GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(statusbar), "link-hover-context")); 
-    /* underflow is allowed */ 
-    gtk_statusbar_pop(statusbar, statusContextId); 
-    if (link) 
-        gtk_statusbar_push(statusbar, statusContextId, link); 
-} 
- 
-static void notifyTitleCb(WebKitWebView* webView, GParamSpec* pspec, GtkWidget* window) 
-{ 
-    updateTitle(GTK_WINDOW(window), webView); 
-} 
- 
-static void notifyLoadStatusCb(WebKitWebView* webView, GParamSpec* pspec, GtkWidget* uriEntry) 
-{ 
-    if (webkit_web_view_get_load_status(webView) == WEBKIT_LOAD_COMMITTED) { 
-        WebKitWebFrame *frame = webkit_web_view_get_main_frame(webView); 
-        const gchar *uri = webkit_web_frame_get_uri(frame); 
-        if (uri) 
-            gtk_entry_set_text(GTK_ENTRY(uriEntry), uri); 
-    } 
-} 
- 
-static void notifyProgressCb(WebKitWebView* webView, GParamSpec* pspec, GtkWidget* window) 
-{ 
-    updateTitle(GTK_WINDOW(window), webView); 
-} 
- 
-static void destroyCb(GtkWidget* widget, GtkWidget* window) 
-{ 
-    if (g_atomic_int_dec_and_test(&windowCount)) 
-      gtk_main_quit(); 
-} 
- 
-static void closeCb(GtkWidget* widget,  WebKitWebView* webView) 
-{ 
-    gtk_main_quit(); 
-} 
- 
-static void goBackCb(GtkWidget* widget,  WebKitWebView* webView) 
-{ 
-    webkit_web_view_go_back(webView); 
-} 
- 
-static void goForwardCb(GtkWidget* widget, WebKitWebView* webView) 
-{ 
-    webkit_web_view_go_forward(webView); 
-} 
- 
-static WebKitWebView* 
-createWebViewCb(WebKitWebView* webView, WebKitWebFrame* web_frame, GtkWidget* window) 
-{ 
-    WebKitWebView *newWebView; 
-    createWindow(&newWebView); 
-    return newWebView; 
-} 
- 
-static gboolean webViewReadyCb(WebKitWebView* webView, GtkWidget* window) 
-{ 
-    gtk_widget_grab_focus(GTK_WIDGET(webView)); 
-    gtk_widget_show_all(window); 
-    return FALSE; 
-} 
- 
-static gboolean closeWebViewCb(WebKitWebView* webView, GtkWidget* window) 
-{ 
-    gtk_widget_destroy(window); 
-    return TRUE; 
-} 
- 
-static useProxy(void) 
-{   
-    SoupSession* session = webkit_get_default_session(); 
-    if(session) { 
-       SoupURI *uri = soup_uri_new("http://127.0.0.1:3128"); 
-       if(uri) { 
-          g_object_set(session, "proxy-uri", uri, NULL); 
-          soup_uri_free(uri); 
-       } 
-    } 
-} 
- 
-static GtkWidget* createBrowser(GtkWidget* window, GtkWidget* uriEntry, GtkWidget* statusbar, WebKitWebView* webView) 
-{ 
-    GtkWidget *scrolledWindow = gtk_scrolled_window_new(NULL, NULL); 
-    gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledWindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); 
- 
-    gtk_container_add(GTK_CONTAINER(scrolledWindow), GTK_WIDGET(webView)); 
- 
-    g_signal_connect(webView, "notify::title", G_CALLBACK(notifyTitleCb), window); 
-    g_signal_connect(webView, "notify::load-status", G_CALLBACK(notifyLoadStatusCb), uriEntry); 
-    g_signal_connect(webView, "notify::progress", G_CALLBACK(notifyProgressCb), window); 
-    g_signal_connect(webView, "hovering-over-link", G_CALLBACK(linkHoverCb), statusbar); 
-    g_signal_connect(webView, "create-web-view", G_CALLBACK(createWebViewCb), window); 
-    g_signal_connect(webView, "web-view-ready", G_CALLBACK(webViewReadyCb), window); 
-    g_signal_connect(webView, "close-web-view", G_CALLBACK(closeWebViewCb), window); 
- 
-    useProxy(); 
- 
-    return scrolledWindow; 
-} 
- 
-static GtkWidget* createStatusbar() 
-{ 
-    GtkStatusbar *statusbar = GTK_STATUSBAR(gtk_statusbar_new()); 
-    guint statusContextId = gtk_statusbar_get_context_id(statusbar, "Link Hover"); 
-    g_object_set_data(G_OBJECT(statusbar), "link-hover-context", 
-        GUINT_TO_POINTER(statusContextId)); 
- 
-    return GTK_WIDGET(statusbar); 
-} 
- 
-static GtkWidget* createToolbar(GtkWidget* uriEntry, WebKitWebView* webView) 
-{ 
-    GtkWidget *toolbar = gtk_toolbar_new(); 
- 
-#if GTK_CHECK_VERSION(2, 15, 0) 
-    gtk_orientable_set_orientation(GTK_ORIENTABLE(toolbar), GTK_ORIENTATION_HORIZONTAL); 
-#else 
-    gtk_toolbar_set_orientation(GTK_TOOLBAR(toolbar), GTK_ORIENTATION_HORIZONTAL); 
-#endif 
-    gtk_toolbar_set_style(GTK_TOOLBAR(toolbar), GTK_TOOLBAR_BOTH_HORIZ); 
- 
-    GtkToolItem *item; 
- 
-    /* the back button */ 
-    item = gtk_tool_button_new_from_stock(GTK_STOCK_GO_BACK); 
-    g_signal_connect(G_OBJECT(item), "clicked", G_CALLBACK(goBackCb), webView); 
-    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, -1); 
- 
-    /* The forward button */ 
-    item = gtk_tool_button_new_from_stock(GTK_STOCK_GO_FORWARD); 
-    g_signal_connect(G_OBJECT(item), "clicked", G_CALLBACK(goForwardCb), webView); 
-    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, -1); 
- 
-    /* The URL entry */ 
-    item = gtk_tool_item_new(); 
-    gtk_tool_item_set_expand(item, TRUE); 
-    gtk_container_add(GTK_CONTAINER(item), uriEntry); 
-    g_signal_connect(G_OBJECT(uriEntry), "activate", G_CALLBACK(activateUriEntryCb), NULL); 
-    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, -1); 
- 
-    /* The go button */ 
-    g_object_set_data(G_OBJECT(uriEntry), "web-view", webView); 
-    item = gtk_tool_button_new_from_stock(GTK_STOCK_OK); 
-    g_signal_connect_swapped(G_OBJECT(item), "clicked", G_CALLBACK(activateUriEntryCb), (gpointer)uriEntry); 
-    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, -1); 
- 
-    item = gtk_tool_button_new_from_stock(GTK_STOCK_CLOSE); 
-    g_signal_connect_swapped(G_OBJECT(item), "clicked", G_CALLBACK(closeCb), (gpointer)uriEntry); 
-    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, -1); 
- 
-    return toolbar; 
-} 
- 
-static GtkWidget* createWindow(WebKitWebView** outWebView) 
-{ 
-    WebKitWebView *webView; 
-    GtkWidget *vbox; 
-    GtkWidget *window; 
-    GtkWidget *uriEntry; 
-    GtkWidget *statusbar; 
- 
-    g_atomic_int_inc(&windowCount); 
- 
-    window = gtk_window_new(GTK_WINDOW_TOPLEVEL); 
-    gtk_window_set_default_size(GTK_WINDOW(window), 1024, 768); 
-    gtk_widget_set_size_request(window, 1024, 768); 
-    gtk_widget_set_name(window, "GtkLauncher"); 
- 
-    webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); 
-    uriEntry = gtk_entry_new(); 
- 
-    vbox = gtk_vbox_new(FALSE, 0); 
-    statusbar = createStatusbar(webView); 
-    gtk_box_pack_start(GTK_BOX(vbox), createToolbar(uriEntry, webView), FALSE, FALSE, 0); 
-    gtk_box_pack_start(GTK_BOX(vbox), createBrowser(window, uriEntry, statusbar, webView), TRUE, TRUE, 0); 
-    gtk_box_pack_start(GTK_BOX(vbox), statusbar, FALSE, FALSE, 0); 
- 
-    gtk_container_add(GTK_CONTAINER(window), vbox); 
- 
-    g_signal_connect(window, "destroy", G_CALLBACK(destroyCb), NULL); 
- 
-    gtk_window_set_resizable(GTK_WINDOW(window), FALSE); 
- 
-    if (outWebView) 
-        *outWebView = webView; 
- 
-    return window; 
-} 
- 
-static gchar* filenameToURL(const char* filename) 
-{ 
-    if (!g_file_test(filename, G_FILE_TEST_EXISTS)) 
-        return 0; 
- 
-    GFile *gfile = g_file_new_for_path(filename); 
-    gchar *fileURL = g_file_get_uri(gfile); 
-    g_object_unref(gfile); 
- 
-    return fileURL; 
-} 
- 
-#ifndef GTK_API_VERSION_2 
-static void disablePlugin(const char* pluginName) 
-{ 
-    WebKitWebPluginDatabase *database = webkit_get_web_plugin_database(); 
-    GSList *plugins = webkit_web_plugin_database_get_plugins(database); 
-    GSList *p; 
- 
-    for (p = plugins; p; p = g_slist_next(p)) { 
-        WebKitWebPlugin *plugin = WEBKIT_WEB_PLUGIN(p->data); 
- 
-        if (!g_strcmp0(webkit_web_plugin_get_name(plugin), pluginName)) 
-            webkit_web_plugin_set_enabled(plugin, FALSE); 
-    } 
- 
-    webkit_web_plugin_database_plugins_list_free(plugins); 
-} 
-#endif 
-int main(int argc, char* argv[]) 
-{ 
-    WebKitWebView *webView; 
-    GtkWidget *main_window; 
- 
-    gtk_init(&argc, &argv); 
-    if (!g_thread_supported()) 
-        g_thread_init(NULL); 
- 
-#ifndef GTK_API_VERSION_2 
-    disablePlugin("Shockwave Flash"); 
-#endif 
- 
-    main_window = createWindow(&webView); 
- 
-    gchar *uri =(gchar*)(argc > 1 ? argv[1] : "http://www.google.com/"); 
-    gchar *fileURL = filenameToURL(uri); 
- 
-    webkit_web_view_load_uri(webView, fileURL ? fileURL : uri); 
-    g_free(fileURL); 
- 
-    gtk_widget_grab_focus(GTK_WIDGET(webView)); 
-    gtk_widget_show_all(main_window); 
-    gtk_main(); 
- 
-    return 0; 
-} 
- 
-</code> 
- 
-et du Makefile 
-<code make> 
-all: GtkLauncher 
- 
-GtkLauncher: main.c 
- gcc -DGTK_API_VERSION_2 -o GtkLauncher main.c `pkg-config --cflags --libs webkit-1.0`  
- 
- 
-install: GtkLauncher 
- install GtkLauncher /opt/ 
- 
-clean: 
- rm -f GtkLauncher 
-</code> 
-  
 que l'on installe avec la commande que l'on installe avec la commande
 <code bash> <code bash>
Ligne 455: Ligne 127:
 </code> </code>
  
-== configuration de la session ==+==== configuration de la session ====
  
 On configure nodm pour se connecter directement sur le compte linuxquimper en éditant le fichier /etc/default/nodm On configure nodm pour se connecter directement sur le compte linuxquimper en éditant le fichier /etc/default/nodm
Ligne 512: Ligne 184:
 Puis on peut lancer la session utilisateur avec /etc/init.d/nodm start. Puis on peut lancer la session utilisateur avec /etc/init.d/nodm start.
  
-=== fin de la configuration === +===== fin de la configuration ===== 
-Il faut sécuriser l'accés au shell  grub en lui métant un mot de passe. On option un mot de passe chiffré pour grub avec la commande grub-mkpasswd-pbkdf2. on recupére le résultat de cette commande que l'on met dans un fichier /etc/grub/01_password que l'on rend éxécutable:+Il faut sécuriser l'accés au shell grub en lui métant un mot de passe. On obtient un mot de passe chiffré pour grub avec la commande grub-mkpasswd-pbkdf2. On recupére le résultat de cette commande que l'on met dans un fichier /etc/grub/01_password que l'on rend éxécutable:
 <code bash> <code bash>
 #!/bin/sh #!/bin/sh
Ligne 526: Ligne 198:
 </code> </code>
  
-Pour avoir un boot graphique on peut installer plymouth et ajouter splash à la ligne de commande linux+Pour avoir un boot graphique on peut installer plymouth et ajouter «splash» à la ligne de commande linux
 <code bash> <code bash>
 # apt-get install plymouth plymouth-themes-solar # apt-get install plymouth plymouth-themes-solar
Ligne 570: Ligne 242:
 </code> </code>
  
-on termine on mettant toutes les partions sauf / en noexec et / en read-only dans le fichier /etc/fstab+on termine on mettant toutes les partitions sauf / en noexec et / en read-only dans le fichier /etc/fstab
 <code> <code>
 # /etc/fstab: static file system information. # /etc/fstab: static file system information.
Ligne 592: Ligne 264:
 tmpfs           /var/run        tmpfs   defaults,noexec        0       0 tmpfs           /var/run        tmpfs   defaults,noexec        0       0
  
-## Pas de device externe+## Pas de device externes
 #/dev/fd0        /media/floppy0  auto    rw,user,noauto,noexec,utf8 0       0 #/dev/fd0        /media/floppy0  auto    rw,user,noauto,noexec,utf8 0       0
 </code> </code>
  
-Aprés on peut rebooter la machine pour voir si tout fonctionne.+Maintenant on peut rebooter((C'est le premier reboot après l'installation de la base)) pour voir si tout fonctionne correctement.
  
  
papweb.1308558482.txt.gz · Dernière modification: 2023/07/18 23:11 (modification externe)