Efetivamente falando, não, você não pode fazer isso. você pode efetuar isso usando o sudo, mas se você tiver o poder de uid = 0, poderá fazer o que quiser.
Eu sou novo no linux, então me desculpe se o meu problema é um pouco confuso.
Gostaria de fazer o seguinte:
crie uma segunda conta raiz
escreva o arquivo usando esta conta
a primeira conta raiz não poderá editar este arquivo (nem outras contas).
É possível?
O que você realmente quer é ter dois usuários com privilégios iguais . Nenhum deles é root
.
O objetivo da conta root é poder fazer tudo. Deve ser usado apenas pelo administrador do sistema e usado somente quando necessário.
Todos os usuários (até mesmo administradores) devem usar uma conta normal.
Então, quem é o administrador do sistema? Aquele que usará a primeira conta ou a segunda?
Não é possível criar uma segunda conta raiz.
O conceito de uma conta root é ser único e capaz de fazer tudo
Como afirmado anteriormente, root é root. O que você pode deseja é um arquivo criptografado (s). Aqui está um wrapper usando Bcrypt
#!/bin/sh
[ "${1##*.}" == "bfe" ] && BASENAME=${1%.bfe} || BASENAME=${1}
BASENAME=${BASENAME##*/}
MD5='echo "$USER:$BASENAME"|md5sum'
echo "${MD5:0:32}
${MD5:0:32}" |bcrypt "$1"
Este permite que os usuários criptografem seus próprios arquivos, mas usa apenas um md5sum do nome de usuário e base de dados do arquivo para o "salt".
Se você quisesse ficar realmente paranóico, poderia usar alguma pseudo-esteganografia com a opção -o do bcrypt e > > some-large.jpg (Eu escrevi um exemplo parcial aqui : ... apenas como prova de conceito)
Outra maneira de fazer isso seria incorporar o arquivo em um programa c para que ele apenas mostre os dados se getenv (USER) corresponder ao nome da sua conta de administrador
é claro que nada disso permitirá que o root mova, renomeie, exclua ... somente da edição de uma forma útil
Acredito que o que você está pedindo é o controle de acesso baseado em função ou o RBAC. Tem sido uma parte padrão do Windows e Solaris há algum tempo. Para o mundo Linux, você precisa olhar para o uso do SELinux. Eu acho que é um pouco demais para um post aqui, mas você deve ser capaz de encontrar um tutorial pesquisando "SELinux RBAC"
Tags root linux user-accounts unix arch-linux