Como impedir que os usuários renomem arquivos enquanto fornecem permissões de gravação no Linux

4

Para algum propósito especial, eu quero impedir que usuários não-root do servidor Linux alterem ou renomeiem os nomes dos arquivos. No entanto, eles podem modificar e gravar no conteúdo do arquivo. Como fazer isso na linha de comando.

    
por manav m-n 03.10.2013 / 10:37

2 respostas

7

Citando Stephane Chazelas de esta resposta no Unix & amp; Linux SE .

  

Para renomear um arquivo, as permissões de gravação para o arquivo não importam, renomeiam   um arquivo é uma alteração no diretório, não no arquivo. Isso está mudando o   entrada de diretório para ter um nome diferente apontando para o arquivo.

     

Então, tudo o que você precisa fazer é alterar as permissões do diretório. Para   exemplo:

chown root: .
chmod 755 .
     

Isso impedirá que os usuários renomem arquivos lá, mas também de   criar ou excluir arquivos. Se você ainda quer que eles sejam capazes de fazer   que, em vez disso, você poderia tornar o diretório gravável, mas também definir o    t bit. Com esse bit definido, os usuários (além do proprietário do   diretório que não é restrito) só pode excluir ou renomear os arquivos   eles possuem.

chown root:people-who-can-create-file-here .
chmod 1775 .
chown root:people-who-can-modify-the-files file1-that-must-not-be-rename ...
chmod 664 file1-that-must-not-be-rename ...
    
por Aditya 13.04.2017 / 14:37
3

chmod +t [FILE]

Define o sticky bit , que faz exatamente o que você descreve.

EDIT: Bem, para ser mais específico, impede que outros usuários renomeiem o arquivo. Então depende do que você quer exatamente.

    
por Eero Aaltonen 03.10.2013 / 10:48