Google é seu amigo :)
De qualquer forma, a divisão entre função e grupo vem de conceitos de segurança de computadores (em vez de simplesmente gerenciamento de recursos). Ravi Sandhu fornece uma cobertura seminal da diferença semântica entre papéis e grupos.
http://profsandhu.com/workshop/role-group.pdf
Um grupo é uma coleção de usuários com um determinado conjunto de permissões atribuídas ao grupo (e transitivamente, aos usuários). Uma função é uma coleção de permissões, e um usuário herda efetivamente essas permissões quando ele atua sob essa função.
Normalmente, a sua participação no grupo permanece durante a duração do seu login. Um papel, por outro lado, pode ser ativado de acordo com condições específicas. Se a sua função atual for 'equipe médica', você poderá ver alguns dos registros médicos de um determinado paciente. Se, no entanto, sua função também for 'médica', você poderá ver informações médicas adicionais além do que uma pessoa com apenas uma função de 'equipe médica' pode ver.
As funções podem ser ativadas por hora do dia, local de acesso. As funções também podem ser aprimoradas / associadas a atributos. Você pode estar operando como 'médico', mas se você não tiver um atributo ou relação de 'médico primário' comigo (um usuário com função de 'paciente'), não poderá ver toda a minha história médica.
Você pode fazer tudo isso com grupos, mas, novamente, os grupos tendem a se concentrar na identidade, não na função ou atividade. E o tipo de aspectos de segurança que acabamos de descrever tendem a se alinhar melhor com os posteriores do que com os primeiros.
Em muitos casos, para o uso de classificar as coisas juntas (e nada mais), grupos e funções funcionam da mesma maneira. Grupos, no entanto, são baseados na identidade, enquanto os papéis são destinados a demarcar atividades. Infelizmente, os sistemas operacionais tendem a embaçar a distinção, tratando os papéis como grupos.
Você vê uma distinção muito mais clara com as funções em nível de aplicativo ou sistema - carregando semântica específica de sistema ou aplicativo (como nas funções Oracle ) - em oposição às 'funções' implementadas no nível do sistema operacional (que geralmente são sinônimos de grupos).
Pode haver limitações para funções e modelos de controle de acesso baseados em função (como em qualquer coisa, é claro):
http://www.lhotka.net/weblog/CommentView,guid,9efcafc7-68a2-4f8f-bc64-66174453adfd.aspx
Cerca de uma década atrás, vi algumas pesquisas sobre controle de acesso baseado em atributo e em relacionamento, que fornecem granularidade muito melhor do que o controle de acesso baseado em função. Infelizmente, não vejo muita atividade nesse domínio há anos.
A diferença mais importante entre funções e grupos é que as funções geralmente implementam um mecanismo de controle de acesso obrigatório (MAC). Você não pode se atribuir (ou a outros) a funções. Um administrador de função ou engenheiro de função faz isso.
Isso é superficialmente semelhante aos grupos UNIX, nos quais um usuário pode / pode se atribuir a um grupo (via sudo, é claro). Quando os grupos são atribuídos de acordo com um processo de engenharia de segurança, a distinção fica um pouco embaçada.
Outra característica importante é que os modelos RBAC verdadeiros podem fornecer o conceito de funções mutuamente exclusivas. Por outro lado, grupos baseados em identidade são aditivos - a identidade de um principal é a soma (ou conjunção) dos grupos.
Outra característica de um modelo de segurança baseado em RBAC verdadeiro é que os elementos criados para uma função específica geralmente não podem ser acessados transitivamente por alguém que não atua nessa função.
Por outro lado, sob um modelo de controle de acesso discricionário (DAC) (o modelo padrão no Unix), você não pode obter esse tipo de garantia apenas com grupos. BTW, isso não é uma limitação de grupos ou Unix, mas uma limitação de modelos DAC baseados em identidade (e transitivamente, com grupos baseados em identidade).
Espero que ajude.
=======================
Adicionando um pouco mais depois de ver a resposta bem colocada de Simon. As funções ajudam a gerenciar permissões. Os grupos ajudam a gerenciar objetos e assuntos. Além disso, pode-se pensar em papéis como 'contextos'. Uma função 'X' pode descrever um contexto de segurança que governa como o sujeito Y acessa (ou não acessa) o objeto Z.
Outra distinção importante (ou ideal) é que existe um engenheiro de funções, uma pessoa que projeta as funções, os contextos necessários e / ou evidentes em um aplicativo, sistema ou sistema operacional. Um engenheiro de função normalmente é (mas não precisa ser) também um administrador de função (ou sysadmin). Além disso, o verdadeiro papel (sem trocadilhos) de um engenheiro de papéis está no campo da engenharia de segurança, não da administração.
Este é um novo grupo formalizado pelo RBAC (mesmo que raramente seja usado), um grupo que normalmente não está presente em sistemas com capacidade para grupos.