Posso alterar permissões em um dispositivo com chmod?

1

note : não quero usar uma regra do udev.

Eu preciso alterar (programaticamente) as permissões de alguns dispositivos. Para entender o que tenho que fazer (no código) eu quero fazer isso usando apenas o comando chmod .

Até agora, eu tentei isso:

root# ls -l /dev/sdb
brw-rw-rw- 1 root disk 8, 16 Apr 7 05:27 /dev/sdb

root# chmod 0600 /dev/sdb 

root# ls -l /dev/sdb
brw------- 1 root disk 8, 16 Apr 7 05:27 /dev/sdb

como você pode ver, /dev/sdb tem permissões de leitura e gravação somente para o proprietário (root). Mas ainda sou capaz de criar novos arquivos e ler arquivos do meu pen drive conectado.

O que estou perdendo? Como posso usar o chmod para impedir que os usuários gravem em algum dispositivo?

    
por Raydel Miranda 07.04.2014 / 22:36

2 respostas

3

Se eu entendi bem, então há algum sistema de arquivos em / dev / sdb que você montou. O que importa aqui são as permissões no sistema de arquivos que residem em / dev / sdb, as permissões de / dev / sdb são completamente irrelevantes para sua pergunta. Exceto que com permissões 0666 qualquer um pode ignorar os mecanismos de controle de acesso para esse sistema de arquivos e acessar o conteúdo no dispositivo arbitrariamente, mas esse é um problema diferente.

Se você deseja restringir o acesso aos arquivos dentro do sistema de arquivos, você deve atribuir propriedades e permissões apropriadas aos arquivos (começando com a raiz desse sistema de arquivos). Para sistemas de arquivos como o FAT mount (8), você pode definir as permissões de propriedade e acesso para todos os arquivos dentro do sistema de arquivos. Se você quiser expor a árvore inteira apenas para determinados usuários e ocultá-la de todos os outros, monte-a em algum lugar onde somente esses usuários tenham acesso. Mas observe que qualquer usuário pode ver que algo está sendo montado (mount (8) ou df (1) mostrará a eles).

chroot (1) não vai te ajudar em nada.

    
por 07.04.2014 / 23:36
1

/dev/sdb é o nome do dispositivo de bloco. Alterar a permissão de /dev/sdb não afetará o sistema de arquivos em /dev/sdb .

Use mount para obter a lista de mídias montadas e pontos de montagem.

Use chmod para alterar as permissões no ponto de montagem.

por exemplo. mount mostrará linhas com aparência semelhante a

/dev/sdb1 on /run/mount/pioneeraxon/disk1 type ext4 (...)

Nesse caso, /run/mount/pioneeraxon/disk1 é o ponto de montagem de /dev/sdb1 . Você precisa alterar as permissões em /run/mount/pioneeraxon/disk1 .

    
por 08.04.2014 / 17:20