Question:
Verrouiller Raspbian pour n'autoriser que des fonctionnalités limitées
JVarhol
2014-02-03 00:49:13 UTC
view on stackexchange narkive permalink

Dans un environnement public, un ordinateur peut subir de nombreux abus, entraînant des pannes du système, des virus, une sécurité compromise, etc. Dans de nombreuses écoles, les ordinateurs sont configurés pour n'autoriser que les fonctionnalités de base à utiliser, provoquant une erreur si quelqu'un essaie de faire quelque chose comme ouvrir un jeu.

Je prévois de mettre un Raspberry Pi dans un environnement public pour permettre aux gens de pouvoir ressentir «l'expérience Raspberry Pi» sans posséder eux-mêmes un Raspberry Pi. Cela pose un problème de sécurité majeur , pouvoir utiliser le Raspberry Pi sans limites.

Y a-t-il un moyen de verrouiller les fonctionnalités avancées du Raspberry Pi afin qu'un utilisateur qui joue avec ne puisse pas le gâcher au-delà de la réparation?

Pouvez-vous clarifier ce que vous entendez par «verrouillage» et «fonctionnalités avancées»? Comme indiqué par Hello World, il y en a déjà beaucoup assez bien protégés dans un système Linux.
Je pense que c'est assez évident dans ce contexte: tout dans le Rpi qui doit être fait avec `sudo` n'est pas destiné aux invités. C'est une bonne définition d'une "fonctionnalité avancée".
Quatre réponses:
Hello World
2014-03-24 18:14:21 UTC
view on stackexchange narkive permalink

Linux est un environnement multi-utilisateurs par défaut. Chaque utilisateur a son propre dossier dans / home / TheUserName

Les utilisateurs sont très limités en dehors de ce dossier. Ils n'ont qu'un accès en lecture à la plupart des choses.

Par défaut, le Raspberry Pi est livré avec un seul utilisateur appelé pi . Cet utilisateur a un répertoire personnel appelé / home / pi / . Le hic: Par défaut, l'utilisateur pi a la possibilité d'accéder à tout via sudo , qui exécute les commandes en tant que root.

La solution

Créez un nouvel utilisateur. Par défaut, les nouveaux utilisateurs n'ont pas d'accès sudo .

  sudo adduser guest  

Maintenant, lors de la connexion (en supposant le mode terminal): entrez simplement guest comme nom d'utilisateur, entrez votre mot de passe, puis tapez startx pour accéder à l'interface graphique. Cet utilisateur ne pourra rien modifier en dehors de /home/guest.

Vous pouvez également changer le mot de passe par défaut "Pi", exécutez ceci comme pi :

sudo passwd pi

Désormais, votre utilisateur invité ne pourra détruire que son propre répertoire / home / guest sans endommager le reste de votre Raspberry Pi.

Extra

Vous pouvez également sauvegarder le nouveau / home / guest. Pour que dans le cas où un invité dérange l'utilisateur invité, vous pouvez simplement le récupérer à partir de la sauvegarde.

exécutez ceci comme pi:

  mkdir / home / pi / backupsudo cp / home / guest / home / pi / backup / guest  

Pour récupérer le compte invité:

  sudo rm - f -r / home / guest #Supprimer le dossier invité.sudo cp / home / pi / backup / guest / home / #Copier la sauvegarde à l'endroit où se trouvait le dossier invité. propriété "invité" du nouveau dossier invité.  

Si vous voulez que le compte invité se réinitialise toujours au démarrage, assurez-vous que le même script s'exécute toujours au démarrage en le plaçant dans / etc / rc.local .

Pouvez-vous aller plus loin? Comment empêchez-vous l'invité de lire, d'écrire ou d'exécuter les autres répertoires personnels, tout en permettant aux sudoers de lire, d'écrire et d'exécuter les répertoires et les fichiers des invités?
Terminé. Je l'ai compris. Voir ma réponse ici, en complément de votre réponse: http://raspberrypi.stackexchange.com/a/58778/49091
Gabriel Staples
2016-12-11 09:21:15 UTC
view on stackexchange narkive permalink

Hello World a une excellente réponse ici. Cependant, j'aimerais aller plus loin. J'ai demandé dans un commentaire sous sa réponse:

"Pouvez-vous aller plus loin? Comment empêchez-vous l'utilisateur" invité "de lire, écrire ou exécuter les autres répertoires personnels , tout en permettant aux sudoers de lire, d'écrire et d'exécuter les répertoires et fichiers des invités? "

Voici comment: exécutez ces commandes:

  sudo adduser guest sudo chmod g + w / home / guestudo chmod o-rwx / home / * sudo usermod -aG guest pi  

Brève description

  • sudo adduser guest = Ajouter un nouvel utilisateur appelé "guest"
  • sudo chmod g + w / home / guest = Ajouter un accès en écriture au groupe à / home / guest afin que tous les membres du groupe aient désormais tous les privilèges sur ce dossier. Pour être sûr qu'ils obtiennent vraiment tous les privilèges, vous pouvez également utiliser sudo chmod g + rwx / home / guest à la place.
  • sudo chmod o-rwx / home / * = Soustraire 'o'ther utilisateur' r'ead, 'w'rite et e'x' pour accéder à tous les répertoires dans le dossier / home / afin qu'aucun utilisateur de base, tel que "invité", ne puisse accéder aux fichiers d'un autre utilisateur.
  • sudo usermod -aG guest pi = 'a'dd user "pi" au "guest"' G'roup afin qu'il obtienne maintenant les privilèges de groupe ci-dessus (rwx) dans le dossier / home / guest.

Terminé! L'utilisateur "invité" ne peut plus voir du tout les dossiers des autres utilisateurs, tandis que l'utilisateur "pi" peut toujours avoir un accès complet à tous les fichiers et dossiers personnels de "guest" dans "/ home / guest".

Description longue:

  1. Ajouter un nouvel utilisateur appelé "guest": sudo adduser guest . Notez que cela crée également un dossier de départ pour l'invité appelé "/ home / guest"
  2. Passons maintenant au dossier "/ home" pour regarder quelques trucs. cd / home . Affichez les permissions des dossiers: ls -l Exemple de sortie:

    drwxr-xr-x 22 invité 4096 6 décembre 23:16 invité
    drwxr-xr-x 43 pi pi 4096 10 décembre 10:39 pi

    • Cette sortie nous donne beaucoup d'informations. Lisez ici pour plus d'informations ( https://www.linode.com/docs/tools-reference/linux-users-and-groups).
    • La première ligne ("drwxr-xr-x") nous indique que c'est un 'd'irectory, avec les permissions' r'ead / 'w'rite / e'x'ecute (rwx) pour l'utilisateur, les autorisations 'r'ead et e'x'ecute (rx) pour le groupe et les autorisations' r'ead et e'x'ecute (rx) pour les autres utilisateurs.
    • "guest guest" nous indique que l'utilisateur auquel appartient ce dossier est "guest" et que le groupe auquel appartient ce dossier est également "guest". (L'utilisateur est répertorié en premier, le groupe est répertorié en second).
    • Le dernier "invité" à la fin de la première ligne est le nom du dossier dans le répertoire "/ home /" auquel ces autorisations s'appliquent.
  3. Notez que les autres utilisateurs ont des autorisations rx à la fois sur le dossier de base "guest" et sur le dossier de départ "pi". Nous ne voulons pas de cela, car cela signifie que "guest" peut lire et exécuter des fichiers à l'intérieur du dossier personnel "pi", "pi" peut lire et exécuter des fichiers à l'intérieur du dossier personnel "guest", et tout autre utilisateur peut faire à l'avenir peut lire et exécuter des fichiers à l'intérieur des deux dossiers personnels! Cependant, nous souhaitons que les membres du groupe "invité" disposent de tous les privilèges sur / home / guest, nous leur accordons donc des privilèges d'écriture. Par conséquent, sudo chmod g + w / home / guest ajoute la permission write (w) aux permissions 'g'roup pour ce répertoire, et sudo chmod o-rwx / home / * soustrait les permissions rwx des 'autres utilisateurs pour tous les répertoires dans le dossier "/ home", y compris à la fois "/ home / pi" et "home / guest". ls -l affiche maintenant:

    drwxrwx --- 22 invité 4096 6 décembre 23:16 invité
    drwxr-x --- 43 pi pi 4096 10 décembre 10: 39 pi

  4. Désormais, l'utilisateur "invité" ne peut plus afficher les fichiers / home / pi car il fait partie des utilisateurs "Autres" de / home / pi et les utilisateurs "Autres" n'ont plus d'autorisations dessus! Cependant, l'utilisateur "pi" ne peut plus afficher les fichiers / home / guest car il fait partie des utilisateurs "Other" de / home / guest, et les utilisateurs "Other" n'ont plus d'autorisations sur ce répertoire non plus. Nous allons résoudre ce problème ensuite:
  5. Enfin, maintenant que les membres du groupe "guest" ont tous les privilèges (rwx) sur le répertoire / home / guest, nous devons ajouter l'utilisateur "pi" au groupe "guest", afin que "pi" puisse accéder et utiliser pleinement le répertoire / home / guest. C'est ce que fait sudo usermod -aG guest pi . Pour vérifier que cela a fonctionné, exécutez groups pi et vous verrez une impression de tous les groupes auxquels appartient l'utilisateur "pi". Je vois ceci:

    pi: pi adm dialout cdrom sudo audio vidéo plugdev jeux utilisateurs entrent netdev spi i2c gpio guest

    • Notez l'invité "liste de groupe à la toute fin. Cela signifie que l'utilisateur "pi" est désormais membre du groupe "guest".
    • Notez également que si vous exécutez groups guest , vous verrez que l'utilisateur "guest" n'est qu'un membre du groupe "invité". C'est bien, car cela signifie qu'il est un utilisateur de base. S'il était membre du groupe "pi", il aurait désormais des privilèges rx sur / home / pi, ce que nous ne voulons PAS, et s'il était membre du groupe "sudo", il serait un super utilisateur (administrateur , comme l'utilisateur "pi"), capable de changer toutes ces permissions et de faire ce qu'il veut! Ce serait également mauvais.
  6. Notes finales:

    • pour vous prouver que l'utilisateur "invité" ne peut pas accéder à / home / pi, vous pouvez basculer vers l'utilisateur invité via la commande 's'witch' u'ser: su guest . Il vous demandera le mot de passe invité. Une fois entré, faites cd / home / pi et vous verrez ce qui suit:

      pi @ raspberrypi3: / home $ su guest
      Mot de passe:
      guest @ raspberrypi3 : / home $ cd / home / pi
      bash: cd: / home / pi: Autorisation refusée
      guest @ raspberrypi3: / home $

    • Si vous essayez d'exécuter une commande sudo en tant qu'utilisateur "invité", vous obtenir cette erreur:

      l'invité n'est pas dans le fichier sudoers. Cet incident sera signalé.

    • Pour voir le rapport de ces types d'incidents de sécurité, passez à l'utilisateur "pi" ( su pi ), puis exécutez sudo cat / var / spool / mail / mail ( source).

Terminé!

Salutations,
Gabriel Staples
www.ElectricRCAircraftGuy.com

Références générales:

Kamil
2014-04-26 18:50:34 UTC
view on stackexchange narkive permalink

Cette réponse concerne la solution de contournement des problèmes et elle est recommandée uniquement pour les administrateurs paresseux ou très occupés

Pour une approche plus professionnelle / meilleure, voir une ou plusieurs autres réponses

J'ai eu un problème similaire avec les ordinateurs PC disponibles pour les invités de mon oncle motel.

Sous Windows, il y a un utilisateur "Invité" et un groupe "Invités". Ceci est assez bien conçu pour limiter les droits des utilisateurs au minimum, mais nous avons encore eu quelques problèmes avec le désordre sur le bureau, les historiques du navigateur, les barres de navigateur et les modules complémentaires, les gens enregistrant accidentellement leurs mots de passe dans le navigateur, les enfants faisant des blagues stupides avec une capture d'écran du bureau définie comme fond d'écran et des icônes désactivées, etc.

Après quelques «réparations informatiques» liées à ces problèmes, j'ai décidé de tout autoriser et de restaurer tout le disque dur à «l'état propre» après chaque redémarrage.

Après avoir fait cela - je n'ai jamais eu à y aller et à réparer quoi que ce soit.

Les invités sont également très heureux, car ils peuvent tout faire - installer les pilotes de leur appareil photo, des logiciels depuis une clé USB, etc. S'ils échouent, le redémarrage qui prend 5 minutes corrige tout.

Je pense que cette méthode peut aussi fonctionner pour vous.

Dan Froberg
2014-12-08 23:39:03 UTC
view on stackexchange narkive permalink

Cela ne protège pas l'ordinateur public contre le crash, mais vous êtes prêt à le remettre rapidement en marche si vous avez des copies du boot-SD. De cette façon, personne ne peut s'introduire dans votre système d'exploitation.

Voici comment cloner votre système d'exploitation actuel:

Vous avez besoin d'un lecteur de carte SD et rien d'autre mis dans l'USB. SD dans le lecteur de carte (ou adaptateur de carte SD).

IMPORTANT : il doit être de la même taille que le boot-SD et de la même marque achetée en même temps . Parce que tous les superblocs sont écrasés, toutes les métadonnées sur son matériel sont écrasées! Si les matériels diffèrent, la SD est perdue.

  sudo fdisk -lumount / dev / sda1mount  

Assurez-vous que toutes les partitions s'afficheront sous la forme sda1, sda2, ... Répétez 'umount' pour chaque / dev / sd * #

Voir la sortie de 'fdisk' et assurez-vous que if = FROM et of = TO

  sudo dd if = / dev / mmcblk0 of = / dev / sda iflag = nofollow oflag = noatimesync; sync #pour être sûr qu'il a vidé toutes les données sur le disque  

C'est tout!

Pour voir la progression, vous envoyez un signal via un autre terminal:

  pid = $ (pgrep -x dd) sudo kill -USR1 $ pid  

Et si ça colle comme il l'a fait pour moi la première fois (mauvaise SD):

  sudo kill -9 $ pid  
J'ai acheté une carte SD de 0,5 To, mais je l'ai perdue à cause de trop d'expérimentations. J'aimerais utiliser cette méthode pour mettre le maître sur un disque dur.


Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...