Transformez votre Raspberry Pi en point d'accès WiFi avec RaspAP


#1

Article publié sur : https://www.geekzone.fr/2018/11/05/transformez-votre-raspberry-pi-en-point-dacces-wifi-avec-raspap/
Si vous habitez dans une grande maison, où la diffusion du signal Wi-Fi de votre box est loin d’être idéale, et que vous disposez d’un petit Raspberry Pi qui prend la poussière, RaspAP est une solution facile en mettre en œuvre pour le transformer en point d’accès. Bien qu’il existe de nombreux tutos un peu partout sur le Net, il…


#2

Hop, je poste ici parce que c’est lié…

J’utilise RaspAP depuis un moment déjà, pour profiter d’une connexion WiFi à l’étage de la maison. Le seul souci, c’est qu’a priori le Pi perd régulièrement la connexion WiFi (a priori, c’est assez classique). Du coup, j’avais dégoté un petit script pour tester ça et rebooter la machine si besoin. Mais ça n’a pas l’air de fonctionner…

Voici le script :

ping -c4 10.3.141.1 > /dev/null

if [ $? != 0 ]
then
  sudo /sbin/shutdown -r now
fi

Et je l’ai calé dans un cron sur l’utilisateur pi, qui le lance toutes les cinq minutes. Une idée ?


#3

hello,

au lieu de rebooter le bousin, tu peux pas juste relancer le réseau ( systemctl restart networking.service ) ?


#4

Si tu as bien mis #/bin/bash sur la ligne 1 de ton script (et pas cette merde sh), il faut modifier cette ligne:

if [ $? != 0 ]

en

if [ $? -ne 0 ]

It should work :wink:


#5

Le “sudo” demande probablement de saisir un mot de passe. je pense que l’utilisateur pi doit avoir les droits admin pour pouvoir rebooter, teste en retirant le “sudo”


#6

J’écrirais ça comme ceci:

#/bin/bash 
ping -c4 10.3.141.1 > /dev/null 2> /dev/null

if [ $? -ge 1 ]
then
  sudo /sbin/shutdown -r now
fi

Sinon j’ai trouvé un script sur les forums de raspberry qui semble faire ce que tu veux. Il est intéressant car il essaye de redémarrer juste l’interface avant de faire un reboot au cas où ça ne marche toujours pas:

https://www.raspberrypi.org/forums/viewtopic.php?p=226367#p226367


#7

Merci pour vos réponses ! Je vais tester tout ça. :heart_eyes:

Question subsidiaire : il vaut mieux que je mette le cron en root ou en pi ?


#8

Root. Et vire cette merde de sudo™ Jean Pierre caf’ :joy:
Edit:

Plus simple :
ping -c4 10.3.141.1 &>/dev/null
Attention, le & est collé au > sinon ça fait de la merde :innocent:


#9

Bah non, il n’y a aucune raison valable de s’en passer.


#10

Alors dans ce cas, ça sert a rien si tu utilises root pour le cron, et si tu utilises pi, le cron plantera a la demande du mot de passe.

Plus généralement, sudo est une mauvaise idée car dans beaucoup de cas, il déresponsabilise. Ça marche pas en user? C’est pas grave, on utilise sudo. Jusqu’au jour ou on fait une grosse boulette. Il existe même des scripts sur le net ou il suffit de taper fuck pour relancer la dernière commande de l’historique, mais en mode sudo. Genius.
Alors que passer en mode root, c’est pas la même chose. Tu es root, donc la moindre boulette se paye, et t’as pas l’excuse “je savais pas” puisque tu es passé en mode root.
Et le problème est d’autant plus vrai en mode graphique puisque le mode sudo reste actif pendant plusieurs minutes, et l’utilisateur n’a plus conscience de faire des actions d’administrateur.


#11

C’est ton point de vue sur sudo, c’est très loin d’être le point de vue universel des gens qui bossent dans la sécu. Rien que parce que ton raisonnement ne tient pas debout. En quoi ça déresponsabilise de bosser en root ?

Ça n’a aucun sens. Au contraire, ça aurait même tendance à faire rapidement oublier qu’on est en root et que, du coup, on a tous les pouvoirs pour faire des boulettes. Alors qu’avec un sudo, c’est déjà beaucoup plus compliqué vu qu’il faut consciemment rajouter sudo en début de commande.


#12

Il y a plein de choses sur lesquels je suis pas d’accord avec le point de vue universel des gens qui bossent dans la secu. Donc ça en plus ou en moins :wink:

Via sudo. Parce que beaucoup de gens (peut être pas toi spécifiquement, mais je l’ai constaté très souvent) se considèrent en utilisateurs et que l’utilisation de sudo n’a pas de conséquence grave, comme s’il y avait une sorte de garde fou en passant par sudo, ce qui n’est pas le cas.

Chacun sa méthode, mais je préconise une connexion en root a chaque fois que c’est nécessaire pour effectuer une tache précise et une fois la tache terminé, on se déconnecte. Tu fais les trucs root en root et tout le reste en utilisateur.


#13

Agree to disagree. Et si plein de gens dont c’est le taf ne sont pas d’accord avec toi, il y a sans doute une bonne raison. C’est de la psychologie de base. C’est comme si tu disais : pour activer cette machine dangereuse, tu as deux possibilités. Soit tu tournes une clé à chaque fois que tu veux faire une manipulation, ce qui de facto t’amène à une réflexion, soit tu tournes une fois la clé et après tu peux faire ce que tu veux, avec le risque d’oublier de réfléchir avant chaque manipulation. Sans compter que par défaut, sudo empêche malgré tout l’accès à certains répertoires, ce qui n’est plus le cas en root. Donc, permets-moi de douter du bien-fondé de ton raisonnement d’un point de vue sécurité. Après, sur l’aspect pratique, il est clair que c’est plus simple de se mettre en root une bonne fois pour toutes. Mais je n’en concluerais certainement pas que c’est plus safe. Bien au contraire.


#14

Ça se fait bien avec sudo -s :wink:


#15

Tiens, du coup, question (et après on arrête la digression) : ça fonctionne si ton user est pas dans le groupe root, ça ? D’habitude, pour un accès root, je faisais un classique “su -” mais si “sudo -s” fait pareil sans demander le mot de passe root, c’est encore plus simple.


#16

sudo -s te demande le mot de passe de ton user, s’il fait partie du groupe “sudo”. Y a un compte “root” sur les raspbian par défaut ou il t’a fallu le créer ? Dans mon souvenir des débuts de “sudo”, les distribs qui l’utiliaient (Ubuntu au moins, évidemment) avaient carrément dégagé le compte “root”.


#17

Non. Il a jamais été viré, juste désactivé (et en fait c’est facile, quand un compte Unix n’a pas de mot de passe, il est impossible de se connecter dessus. Attention, pas de mot de passe, c’est pas “mot de passe vide” :wink: ) et le fait d’attribuer un mot de passe a root l’activait.

sudo permet beaucoup plus de chose que juste de passer une commande en root, et notamment une grande granularité sur la possibilité de lancer tel ou tel logiciel, en tant que telle ou telle personne:
https://www.linuxtricks.fr/wiki/sudo-utiliser-et-parametrer-sudoers
Le réglage de base est celui ci:

adrien ALL=(ALL) ALL
Adrien a la possibilité d’utiliser sur toutes les machines [ALL], quelque soit l’utilisateur [(ALL)], toutes les commandes [ALL] du système

Mais on peut être plus précis (via la commande visudo) :

adrien firewall=(root) /bin/ip, /bin/iptables
Adrien a la possibilité d’utiliser, sur la machine [firewall], en tant que [(root)],les commandes suivantes: [/bin/ip, /bin/iptables]

Dans ce cas d’ailleurs, sudo -s ne fonctionnera pas car en réalité, la commande ne fait que lancer le shell qui est configuré pour l’utilisateur root (généralement /bin/bash, soit explicitement sudo -u root bash). Or, comme Adrien n’a pas explicitement le droit d’utiliser /bin/bash, ca ne marchera pas (je sais plus si ca fait permission denied ou autre chose)

Du coup, pour un accès root, il est possible de faire su - (aucun réglage n’est nécessaire, il faut juste le mot de passe root, pas besoin d’être dans un quelconque groupe), ou alors sudo -s SI on est dans le bon groupe - ca dépend des distribs, ça peut être le groupe root (peu probable, ca pose d’autres soucis), le groupe sudousers et dans ce dernier cas, la ligne de config de /etc/sudoers est la suivante:

@sudousers ALL=(ALL) ALL
les utilisateurs du groupe [sudousers] ont la possibilité d’utiliser, sur toutes les machines [ALL], quelque soit l’utilisateur [(ALL)], toutes les commandes [ALL] du système

Ça simplifie énormément la configuration a l’installation puisqu’il suffit juste de créer l’utilisateur en lui attribuant ce groupe, plutôt que de rajouter une ligne dans /etc/sudoers.