Google est votre ami :)
Quoi qu'il en soit, la distinction entre rôle et groupe provient des concepts de sécurité informatique (par opposition à la simple gestion des ressources). Le professeur Ravi Sandhu fournit une couverture séminale de la différence sémantique entre les rôles et les groupes.
http://profsandhu.com/workshop/role-group.pdf
Un groupe est une collection d'utilisateurs avec un ensemble donné de permissions attribuées au groupe (et de manière transitive, aux utilisateurs). Un rôle est un ensemble de permissions, et un utilisateur hérite effectivement de ces permissions lorsqu'il agit sous ce rôle.
En règle générale, votre appartenance à un groupe reste valable pendant toute la durée de votre connexion. Un rôle, par contre, peut être activé selon des conditions spécifiques. Si votre rôle actuel est "personnel médical", vous pourrez peut-être consulter certains des dossiers médicaux d'un patient donné. Si, toutefois, votre rôle est également "médecin", vous pourrez consulter des informations médicales supplémentaires, au-delà de ce que peut voir une personne ayant uniquement le rôle de "personnel médical".
Les rôles peuvent être activés selon l'heure de la journée, le lieu d'accès. Les rôles peuvent également être améliorés/associés à des attributs. Vous pouvez opérer en tant que "médecin", mais si vous n'avez pas d'attribut "médecin principal" ou de relation avec moi (un utilisateur ayant le rôle de "patient"), vous ne pouvez pas voir l'intégralité de mon dossier médical.
Vous pourriez faire tout cela avec des groupes, mais là encore, les groupes ont tendance à se concentrer sur l'identité, et non sur le rôle ou l'activité. Et le type d'aspects de sécurité que nous venons de décrire tend à s'aligner davantage sur ces derniers que sur les premiers.
Dans de nombreux cas, pour l'usage de classer les choses ensemble (et rien de plus), les groupes et les rôles fonctionnent de la même manière. Les groupes, cependant, sont basés sur l'identité, alors que les rôles sont destinés à délimiter l'activité. Malheureusement, les systèmes d'exploitation ont tendance à brouiller la distinction, en traitant les rôles comme des groupes.
La distinction est beaucoup plus nette avec les rôles au niveau de l'application ou du système, qui comportent une sémantique propre à l'application ou au système (comme dans le cas de la fonction Rôles d'Oracle ) - par opposition aux "rôles" mis en œuvre au niveau du système d'exploitation (qui sont généralement synonymes de groupes).
Il peut y avoir des limites aux rôles et aux modèles de contrôle d'accès basés sur les rôles (comme pour tout, bien sûr) :
http://www.lhotka.net/weblog/CommentView,guid,9efcafc7-68a2-4f8f-bc64-66174453adfd.aspx
Il y a une dizaine d'années, j'ai vu des recherches sur le contrôle d'accès basé sur les attributs et les relations, qui offrent une bien meilleure granularité que le contrôle d'accès basé sur les rôles. Malheureusement, je n'ai pas vu beaucoup d'activité dans ce domaine depuis des années.
La différence la plus importante entre les rôles et les groupes est que les rôles mettent généralement en œuvre un mécanisme de contrôle d'accès obligatoire (MAC). Vous ne pouvez pas vous affecter (ou affecter d'autres personnes) à des rôles. Un administrateur de rôle ou un ingénieur de rôle s'en charge.
Cela ressemble superficiellement aux groupes UNIX où un utilisateur peut/peut être en mesure de s'assigner à un groupe (via sudo bien sûr.) Lorsque les groupes sont assignés selon un processus d'ingénierie de sécurité, la distinction s'estompe un peu, cependant.
Une autre caractéristique importante est que les véritables modèles RBAC peuvent fournir le concept de rôles mutuellement exclusifs. En revanche, les groupes basés sur l'identité sont additifs - l'identité d'un principal est la somme (ou la conjonction) des groupes.
Une autre caractéristique d'un modèle de sécurité basé sur un vrai RBAC est que les éléments créés pour un rôle particulier ne peuvent généralement pas être accédés de manière transitive par quelqu'un qui n'agit pas sous ce rôle.
D'autre part, dans le cadre d'un modèle de contrôle d'accès discrétionnaire (DAC) (le modèle par défaut dans Unix), vous ne pouvez pas obtenir ce type de garantie avec les groupes seuls. BTW, il ne s'agit pas d'une limitation des groupes ou d'Unix, mais d'une limitation des modèles de DAC basés sur l'identité (et de manière transitive, avec les groupes basés sur l'identité).
J'espère que cela vous aidera.
\=======================
J'en rajoute après avoir vu la réponse bien construite de Simon. Les rôles vous aident à gérer les permissions. Les groupes vous aident à gérer les objets et les sujets. En outre, on peut considérer les rôles comme des "contextes". Un rôle "X" peut décrire un contexte de sécurité qui régit la façon dont le sujet Y accède (ou n'accède pas) à l'objet Z.
Une autre distinction importante (ou idéal) est qu'il existe un ingénieur de rôle, une personne qui conçoit les rôles, les contextes, qui sont nécessaires et/ou évidents dans une application, un système ou un OS. Un ingénieur de rôle est généralement (mais pas nécessairement) également un administrateur de rôle (ou sysadmin). De plus, le véritable rôle (sans jeu de mots) d'un ingénieur de rôle se situe dans le domaine de l'ingénierie de la sécurité, et non de l'administration.
Il s'agit d'un nouveau groupe formalisé par RBAC (même s'il est rarement utilisé), qui n'est généralement pas présent dans les systèmes à capacité de groupe.