Transformar uma distro em um sistema "embarcado"

Olá a todos.
Gostaria de saber como aplicar políticas ou diretivas no Linux igual ocorre no Windows. Exemplo: Eu quero pegar um Debian, Mint ou Ubuntu e personalizar que o usuário só acesse o navegador web e um cliente RDP. Existem sistemas embarcados como o Kioski e o ThinStation, porém eles não tem um suporte amplo à impressoras e scanners, existe alguma forma de fazer?

1 curtida

veja se ajuda

Oi @swatquest, ajuda a questão agora é: Como fazer? heheehhe

Wiki do arch
Yocto
https://wiki.archlinux.org/index.php/Yocto
Ai vc pode adaptar para debian e etc…

@swatquest você já fez alguma vez? Conseguiu de fato tirar recursos e deixar ele mais restrito a usuários finais?

Nunca utilizei este recurso.

Eu ainda estou no dilema pois eu preciso de um sistema embarcado ou saber de alguma forma de aplicar GPO no linux usando uma distro.

Olá, @ricardocenteno.

Pode ser que haja alguma outra maneira de se fazer isso, mas o que eu tentaria é ajustar as permissões dos arquivos de tal forma que um determinado grupo só pudesse executar alguns programas específicos. Ou modificar a variável “PATH” (que determina os diretórios onde estão os executáveis) para usar uma com apenas alguns programas.

Para isso, é necessário ter em mente alguns conceitos:

  • Permissões: todo arquivo/diretório possui 3 conjuntos de permissões: Usuário (dono), Grupo e Outros, e que as permissões são: Ler ([r]ead), Escrever ([w]rite) e Executar (e[x]ecute). Ou seja, digamos que as permissões de um arquivo seja: -rwx--x--- root controlado
    Então esse arquivo pertence ao usuário “root” e ao grupo “controlado”, pode ser lido, escrito (modificado) e executado pelo root, os membros do grupo “controlado” podem apenas executar o arquivo, e os demais não podem fazer nada. Você pode verificar isso com o comando ls -l *
    Obs.: O primeiro traço é significa apenas que é um arquivo. Diretórios possuem um “d” na frente.

  • Diretórios dos binários: Os diretórios dos executáveis estão espalhados pelo sistema, e estão separados pelo tipo dos programas. /bin armazena os binários destinados ao usuário root e para a administração do sistema, /usr/bin e /usr/local/bin estão os programas destinados aos usuários comuns, e ${HOME}/.local/bin estão os programas pertencentes à um único usuário (normalmente compilado e instalado manualmente).

  • Variável PATH: Essa variável contém um lista de diretórios separados pela caractere “:”, e determina em quais diretórios aquele usuário deve buscar os binários. É bom salientar que ela não impede do usuário de executar manualmente os binários de outros diretórios. Você pode verificar isso digitando “echo ${PATH}”.

Sabendo disso, uma ideia seria modificar as permissões dos binários (ou apenas do diretório que contém eles, em alguns casos mais específicos como o /bin) para restringir algumas coisas para Grupo, deixando apenas a permissão de executar para determinados programa, e tudo para Outros, e adicionar os usuários nesse grupo de controle (Isso pode ajudar).
Outra ideia, é restringir diretamente o acesso de grupo/outros à esses diretórios, criar links de alguns programas em um outro diretório e modificar a variável PATH padrão para conter apenas esse diretório (dá para definir um padrão que será usado para todos os usuários. Isso pode ajudar (https://stackoverflow.com/a/26962251)).

Para isso, você pode usar o próprio navegador de arquivos (executando-o como root/sudo) para modificar as permissões usando o painel de detalhes do item ou os comandos chown e chmod.
O chown modifica a posse do arquivo/diretório e o chmod modifica as permissões.
Os principais parâmetros dos dois são (o que estiver entre colchetes é opcional):

  • chown [-R] <usuario>:<grupo> <arquivos>:
    Dá a posse do arquivo para um determinado e um , e o “-R” é para modificar recursivamente todos os arquivos de um diretórios.
  • chmod [-R] {augo}{+|-}{rwx} <arquivos>:
    u = usuário, g = grupo e o = outros, a = todos (usuário, grupo e outros), + adiciona uma permissão, - remove uma permissão, e r, we x são as permissões que já expliquei. O primeiro grupo pode ser uma combinação de ugo ou a, no segundo + ou -, e no terceiro uma combinação de rwx. Então, alguns exemplos:
    • chmod go-x /usr/local/bin/gimp: remove a permissão de execução para o grupo e outros do programa GIMP.
    • chmod a+r /usr/local/bin/gimp: adiciona a permissão de leitura para todos os usuários.

Eu recomendo testar isso tudo em uma máquina virtual, e depois aplicar na máquina real.