As part of the Unified Community Platform project, your wiki will be migrated to the new platform in the next few weeks. Read more here.
This page contains incorrect information and needs an update. You might experience problems if you use the information you find here.
This tutorial is intended for Server Administrators, to explain the Bukkit permissions system: what permission nodes are, what they are used for, and how to find permission managing plugins.
What are permission nodes?
Permission nodes are a method of defining the access each player has on a server, in the form of a name and a true/false state. They can be used to define access to a command, or an ability, or anything else a plugin author chooses. A permission node is typically delimited by periods, such as bukkit.command.kick, but can be many different values.
You can see a list of permission nodes for default server commands on the CraftBukkit Commands page. Plugins typically list their own sets of permission nodes on their plugin pages.
What are permission nodes for?
Permission nodes are attached to players to allow them to perform a variety of different actions. For example, the bukkit.command.kick permission allows a player to use the /kick command in CraftBukkit. By default, all operators have this permission.
Plugins have their own uses for permission nodes, such as whether players are allowed to build in an area, which plugin commands they can use etc.
How do I grant a permission node to a player?
Although CraftBukkit has its own permissions system, it doesn't have any commands to manage them. Instead, it is up to plugins to implement management systems containing their own commands. You can find many such permissions plugins on BukkitDev: http://dev.bukkit.org/server-mods/?category=admin-tools&search=Perm
Grouping permission nodes together
Bukkit allows permissions to be arranged into parent nodes and child nodes. Whenever a player holds the parent node permission, they automatically get all the child node permissions too.
As an example:
myplugin.commands.all has children myplugin.commands.mycommand and myplugin.commands.othercommand, both nodes are used by the plugin as permission to use a command. You can give someone both of these commands at once using myplugin.commands.all.
You can group permissions together on your server using the Permissions.yml file in your server folder. The Permissions.yml article also explains grouping in much greater detail.
Permission node negation
The opposite of giving someone a permission, it is possible in some permissions management plugins to negate a permission node. Behavior can vary between permissions management plugins, but the general goal is to set a permission node to false for a player.