KevsRobots Learning Platform
40% Percent Complete
By Kevin McAleer, 6 Minutes
The moment more than two people use your room, you are running shared infrastructure. This lesson is about the controls MeshCore gives you, and the fact that some of the problem is social rather than technical.
MeshCoreโs permission model is refreshingly simple:
| Level | Value | Gets in with | Can |
|---|---|---|---|
| Guest | 0 | No password, when read-only access is enabled | Read only |
| Read-only | 1 | Granted via the ACL | Read only |
| Read-write | 2 | The guest password | Read and post |
| Admin | 3 | The admin password | Everything, including reconfiguring the node |
For day to day use you deal with three things: no password gets read-only access if you allowed it, the guest password gets posting rights, and the admin password gets the keys to the node.
Passwords are blunt - everyone who has one gets the same access. The ACL is the precise version: it grants a specific nodeโs public key a specific permission level.
setperm <public-key> <permission>
Where permission is 0 for guest, 1 for read-only, 2 for read-write, and 3 for admin.
Note the numbering: level 0 is named guest but it is the lowest tier - the passwordless one. The guest password grants level 2. It is a slightly confusing overlap of names and worth reading twice.
To see the current list:
get acl
get acl is serial-only on most builds, so you will need USB access to read it back.
When the ACL is worth the effort:
When it is not: a family of four. Just use the guest password.
To set a permission you need the nodeโs public key. The easiest routes:
get public.key on their own nodeโs console if it has oneWhy keys and not names: names are just labels and anyone can set any name. The public key is the actual cryptographic identity of the node. Permissions attach to the thing that cannot be faked.
The most common moderation action is not banning one person - it is refreshing access for the group.
set guest.password <new-password>
Everyone who knew the old one is now locked out until you tell them the new one. That is blunt, but for small groups it is usually the right tool: nobody has to be singled out, and access naturally decays for people who have drifted away.
Do this when:
Be clear-eyed about the limits, because it shapes how you run the room.
You cannot delete a specific post remotely in any straightforward way. The buffer is cyclic - offending content ages out as new posts arrive, and a reboot clears everything. Those are your two blunt instruments.
You cannot mute a user in the way a chat app can. You can set their key to read-only via the ACL, or rotate the guest password.
You cannot see who read what. The server tracks sync points so it knows what to send, but this is not a read-receipt system.
You cannot stop someone in radio range from hearing traffic. Access control governs the room, not the airwaves.
Most room servers are run by one person for a group of people who know each other. In that setting, the effective moderation tools are:
Technical controls are for the cases where that fails. On a village or club mesh, it usually does not.
For a typical group room:
password <a-long-admin-password-only-you-know>
set guest.password <a-speakable-group-password>
set allow.read.only off
set owner.info Kev - kevsrobots.com
For a public noticeboard:
password <a-long-admin-password-only-you-know>
set guest.password <a-speakable-group-password>
set allow.read.only on
set owner.info Kev - kevsrobots.com
The only difference is who can read without asking.
get acl on your room server. What is in it now?setperm. Confirm you can no longer post from it, then set it back.Problem: get acl returns nothing over the air.
Solution: Connect over USB serial.
Why: ACL reading is serial-only on most builds, deliberately - it is a list of who can do what, and that is not something to hand out over the radio.
Problem: I set someone to admin and now cannot demote them.
Solution: Connect over USB and use setperm with a lower level, or erase and reconfigure from scratch.
Why: An admin can change permissions, including yours. Grant level 3 sparingly and only to people you would hand the board to.
Problem: Someone is posting nonsense and I want it gone now.
Solution: Reboot the room server.
Why: Posts live in RAM. A reboot clears the buffer completely - which also clears everything else, so it is a genuinely blunt instrument. Warn the group first if you can.
You can use the arrows โ โ on your keyboard to navigate between lessons.
Comments