Impedir que usuário não-root formate uma partição

4

Alguns dias atrás eu formatado por engano uma partição no meu disco rígido externo, clicando em Formatar no menu de contexto no computador. Eu quero saber como posso impedir que usuários não-root façam isso. Ao mesmo tempo, eu preciso que o usuário não-root seja capaz de ler e escrever na partição.

Eu uso o Fedora 14.

Obrigado.

    
por Dharmit 31.01.2011 / 09:10

3 respostas

5

Como nc3b ressaltado, isso é controlado pelo PolicyKit. A política para discos está localizada em: /usr/share/polkit-1/actions/org.freedesktop.udisks.policy e pode ser ajustada.
Abra-o com direitos de root e procure a linha: <action id="org.freedesktop.udisks.change"> , comente o bloco inteiro: <!-- [udisks.change-block] --> , ou defina <allow_active> como 'no', salve e saia.

Verifique se está desativado:

$ pkaction --verbose --action-id org.freedesktop.udisks.change
No action with action id org.freedesktop.udisks.change

Ou se você tiver definido no :

...
implicit active:   no

Bom, da próxima vez que você tentar formatar um dispositivo como um usuário não-root, seja no menu de contexto ou no 'Disk Utility', uma mensagem de erro aparecerá e não será permitida. Esta etapa ainda permitirá que o usuário não-root leia / grave o dispositivo.

Se você ainda quiser permitir a formatação de dispositivos, mas com um nível de segurança mais alto, poderá forçar o PolicyKit a solicitar uma senha toda vez.
Abra o mesmo arquivo e vá para a mesma seção, substitua o 'sim' por 'auth_admin' em allow_active :

<allow_active>auth_admin</allow_active>

Verifique:

$ pkaction --verbose --action-id org.freedesktop.udisks.change
...
implicit active:   auth_admin

Excelente!

Nota: Eu só testei isso no Ubuntu, mas o Fedora também usa o PolicyKit, então tente primeiro com um drive fictício.

    
por 31.01.2011 / 15:41
3

Este é provavelmente um caso de elevação de políticas. Quando você faz isso de um terminal honesto, é o que acontece:

nc3b@aiur:~$ /sbin/mke2fs -jv /dev/sda1
mke2fs 1.41.3 (12-Oct-2008)
mke2fs: Permission denied while trying to determine filesystem size

Quando você faz isso do gnome ou o que quer que seja, existe um daemon cuja tarefa é elevar seus privilégios quando você quer executar uma ação de superusuário (geralmente avisa que é uma operação privilegiada e pede uma senha). Eu acredito que o Fedora usa o PolicyKit mas esses sistemas funcionam de maneira similar .

O perigo real da maioria deles é que eles oferecem para "Manter esta senha no chaveiro" ou algo assim e não avisam novamente.

sudo,[6] gksudo, and kdesu do not ask the user to re-enter their password every time it is called to elevate a program. Rather, the user is asked for their password once at the start. If the user has not used their administrative privileges for a certain period of time (sudo's default is 5 minutes[6]), the user is once again restricted to standard user privileges until they enter their password again.

Portanto, a solução é usar um usuário que simplesmente não tem o direito de realizar essas tarefas, mesmo que ele digite sua senha.

    
por 31.01.2011 / 13:16
2

O Fedora tem alguns problemas sérios de segurança se permitir que usuários não-root formatem o disco. A melhor coisa a fazer é isto:

chown root:root /dev/[sh]da[0-9]
chmod 0600 /dev/[sd]da[0-9]

Então, se precisando que o "usuário não-root consiga ler e escrever na partição", você quer dizer ler e gravar no sistema de arquivos, então deve ficar bem desde que esteja montado.

Se você quer dizer a outra coisa, então modificar as permissões no programa que está fazendo a leitura e a escrita (possivelmente executando sudo ) pode resolver o problema.

Além disso, acho que a estrutura da partição é armazenada no superbloco do disco (por exemplo, / dev / sda - sem números) e, assim, definindo isso para 0600 , e as partições para uma máscara mais permissiva ( como 0660 e propriedade do grupo) podem resolver o problema.

    
por 31.01.2011 / 13:32