Evitando a edição de um arquivo pelos usuários no linux

4

Sei que isso pode parecer estranho, mas preciso permitir que apenas scripts gravem em um determinado arquivo.

O arquivo é de propriedade do root e alguns usuários têm acesso sudo ou root. Eles às vezes editam o arquivo manualmente, mas isso está errado, porque existem alguns scripts que editam o arquivo corretamente (enquanto tais usuários fazem isso incorretamente).

Então, gostaria que apenas esses scripts tivessem o direito de editar o arquivo, enquanto qualquer usuário não pode editar, mas apenas ler esse arquivo.

É possível fazer algo assim? Eu sei que isso é bobo, porque eles têm direitos de administrador, mas, pelo menos eu gostaria de tornar difícil editar os arquivos manualmente ... Os scripts podem ser modificados, é claro, portanto, se for possível obter um "token de acesso somente de script" que conceda o acesso de gravação a esse arquivo, os scripts poderão ser alterados de acordo.

    
por AkiRoss 03.01.2013 / 17:56

3 respostas

6

Como seus "alguns usuários" têm acesso sudo ou root ao computador, isso não é totalmente possível. Porque tudo o que você está fazendo como root pode reverter por eles. Então, a única coisa que você pode fazer é atribuir. Por isso, dificulta a modificação dos arquivos, mas ainda não é totalmente comprovada devido à mesma razão que mencionei na primeira sentença.

Usando o seguinte comando, você pode definir atributos para o arquivo:

chattr +i /path/to/file

onde + eu quero dizer imutável. Portanto, ninguém pode editar o arquivo sem remover o atributo. Então, no seu script, você gosta de seguir:

...
chattr -i /path/to/file # remove the immutable attribute of the file at the beginning of your script
...
...
...
...
chattr +i /path/to/file # attribute the file at the end of your script

Exemplos:

link

link

    
por 03.01.2013 / 18:07
4

Se eles tiverem acesso root, todas as apostas serão praticamente eliminadas, dependendo de quão experientes elas são. Uma maneira feia é definir bit imutável no seu arquivo. Não será modificável, desde que esse atributo esteja definido. Em seguida, altere seus scripts para remover esse atributo antes de atualizar seu arquivo e defini-lo novamente depois. Espero que seus usuários não percebam esse atributo e suas tentativas de edição sejam inúteis.

E, obviamente, a maior coisa é a educação do usuário. Não devemos banir os martelos porque os idiotas continuam esmagando os polegares;)

    
por 03.01.2013 / 18:10
0

Faça o script fazer a primeira linha do arquivo

#### WARNING:  THIS FILE IS GENERATED AUTOMATICALLY.  DO NOT EDIT BY HAND

Como outros notaram, se eles têm raiz, você não pode pará-los.

    
por 03.01.2013 / 21:25

Tags