Como determinar as permissões de grupos?

1

Quando você invoca sudo , ele solicita a senha e, em seguida, verifica o arquivo de configuração /etc/sudoers para ver se o usuário tem permissão de acesso para executar o comando. /etc/sudoers é o arquivo de configuração sudo que permite que determinados usuários ou grupos executem determinados comandos. Por exemplo, abaixo nós fazemos o usuário chamado john , de qualquer terminal, execute o comando power off:

john ALL= /sbin/poweroff

Obviamente, o usuário root pode fazer qualquer coisa:

root    ALL=(ALL) ALL

Como o root pode fazer qualquer coisa, muitas vezes queremos usar o programa sudo para nos elevar ao root (com um prompt de senha) para executar alguns comandos no nível do sistema. Se inserirmos a senha correta para nosso usuário, poderemos executar o comando. Mas precisamos de uma maneira de garantir que esse usuário possa ser elevado à raiz em primeiro lugar. Portanto, o objetivo de /etc/group .

sudo:x:27:myuser

/etc/group é um arquivo de texto que define os grupos aos quais os usuários pertencem. As permissões do sistema de arquivos são organizadas em usuário, grupo e outros. O uso de grupos permite que habilidades adicionais sejam delegadas de maneira organizada, como acesso a discos, impressoras e outros periféricos.

Ao ler este artigo de como usar gammu-smsd daemon, me deparei com esta linha:

We don't really want to enter our administration password every time we want to send SMS message, so first thing we must do is to add our selves to the dialout user group. All members of this group have permission to use modem-like devices on Ubuntu system.

E onde é isto definido que concede um grupo de discagem tal privilégio? Eu olho no meu arquivo /etc/sudoers e não encontro menção ao dialout:

$ sudo cat /etc/sudoers
# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#

Defaults    env_reset

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL) ALL

Eu acho que há um elemento chave que eu estou sentindo falta sobre grupos.

    
por JohnMerlino 29.07.2014 / 18:00

2 respostas

2

A abordagem Unix para grupos que concedem vários tipos de acesso é bastante primitiva - na maioria das vezes, fornece permissões de gravação (e possivelmente leitura) aos dispositivos relevantes. Então, por exemplo, para discagem:

faheem@orwell:/dev$ ls -lah | grep dialout 
crw-rw---T 1 root dialout 4, 64 Jul 22 22:45 ttyS0 
crw-rw---T 1 root dialout 4, 65 Jul 22 22:45 ttyS1 
crw-rw---T 1 root dialout 4, 66 Jul 22 22:45 ttyS2 
crw-rw---T 1 root dialout 4, 67 Jul 22 22:45 ttyS3

Assim, o grupo de discagem tem permissões para escrever e ler nos dispositivos relevantes; neste caso, portas seriais.

    
por 29.07.2014 / 18:28
0

Alguns programas são escritos para verificar se o usuário atual está em um grupo específico. Se eles estiverem, ele executará o aplicativo e, se não estiverem, solicitará uma senha de administrador.

Isso não tem nada a ver com o arquivo sudoers, mas é uma verificação executada no nível de código do software.

    
por 29.07.2014 / 18:09