com base no assunto de como restringir o acesso de uma conta no linux ,
você criaria essa conta, bem como um novo grupo para ela, em que o nome do grupo poderia ser o mesmo que o nome da conta, por exemplo. O resultado seria que apenas essa conta de usuário estaria nesse novo grupo e seria completamente exclusiva, onde nada no sistema tem permissões de proprietário ou grupo relacionadas a esse novo nome de conta de serviço e grupo de contas de serviço. Em seguida, defina seu script bash como pertencente a essa conta de serviço e ao nome do grupo de serviços. Além disso, defina o shell de login para essa conta como /bin/false
ou /bin/nologin
.
Qual é a diferença entre / sbin / nologin e / bin / false
No entanto, lembre-se de que você acabou de criar uma nova conta com o único objetivo de criar um script VOCÊ criado. Do ponto de vista da segurança, você acabou de dar um passo extra que é de pouco valor, e agora qualquer um que não veja você, que vê essa nova conta de serviço funcionando sem saber, vai coçar a cabeça e se perguntar o que diabos é isso.
A melhor maneira é que ele é seu script, mantenha-o de sua propriedade - você é um usuário válido e todos reconhecerão sua conta quando vinculado a algum processo em execução - e use o setuid bit no seu script para dar a ele as permissões para executar as tarefas, pois a maioria do que você mencionou para verificar as propriedades do sistema requer privilégios de root
Eu mencionei tirar vantagem do SETUID e estava incorreto porque você está usando um script de shell , por razões que podem ser explicadas aqui: Permitir o setuid em scripts de shell
No entanto, se você escrever e compilar um programa para fazer as coisas que você precisa, cujo executável seria de sua propriedade, então você pode aproveitar o SETUID nesse executável: