É possível adicionar uma senha para mover ou copiar arquivos específicos no Linux?

4

Eu tenho uma configuração de diretório muito bem (ou seja, organizada com arquivos LEIA-ME e navegação fácil, etc.). Eu gostaria que as pessoas pudessem acessar os arquivos neste diretório, talvez até mesmo copiá-las para seu próprio diretório (no mesmo computador), mas eu não quero que meu próprio diretório seja abalado ou estragado, senão tudo poderia ficar arruinado. . Existe alguma maneira de colocar um bloqueio em certos comandos dentro do meu diretório, ou existe alguma maneira de colocar um bloqueio em certos arquivos?

Por exemplo, alguém deve ser capaz de se mover livremente pelo espaço assim:

$ cd ThisDirectory
$ cd ThatDirectory

Mas eles não podem mover esses arquivos assim:

$ mv ThisDirectory
$ mv ThatDirectory

Existe alguma maneira de colocar um bloqueio no comando mv para arquivos específicos?

    
por JustADudeLookinForHelp 18.08.2015 / 19:39

1 resposta

4

Basta alterar as permissões dos arquivos de forma que todos possam lê-los, mas não alterá-los.

Quando você usa ls -l para listar seus arquivos, você recebe algo como

    ls -l file
    -rw-rwxr--    1 rafael   Grp      1620 Aug 18 14:58 file

Esse primeiro conjunto de traços / letras define a permissão de três grupos distintos (mas não exclusivos), ou seja, Usuário (você), Grupo , Outros (ou todos nesta máquina / servidor).

Portanto, o exemplo acima pode ser lido como

    -            It's a file
     rw-         Owner may read and write
        rwx      Others in group may read, write and execute
           r--   Other users (not in group) may read

Para evitar que alguém altere seus arquivos, defina-os com

    chmod go-w file

Isto irá defini-los para não serem graváveis por ninguém além de você

    ls -l file
    -rw-r-xr--    1 rafael   Grp      1620 Aug 18 14:58 file

Deixe-me mergulhar nesses traços / letras:

    -rw-rwxr--    1 rafael   Grp      1620 Aug 18 14:58 file

O primeiro indica o tipo de arquivo (diretório, link simbólico, pipes nomeados). Então, há três conjuntos de três símbolos, cada conjunto é composto de um r (para read ), um w (para escrever ), e um x (para e x ecute ), ou suas posições preenchidas por um traço, se essa permissão estiver desabilitada .

Seus diretórios devem ter as mesmas permissões, com a adição de "executar" para todos os usuários ("executar" um diretório significa acessar qualquer entrada dentro dele). Se os seus diretórios são graváveis, as entradas podem ser deletadas ou renomeadas.

No comando chmod , existem três partes, bem como go (significa group e outros), o '-' (sinal de menos) é remover (permissão) e eles vieram o ( lista de) direitos para mudar

Então

    chmod u-wx file    # prevent you reading the file or executing it
    chmod u+wx file    # permit you to read nte file or execute it
    chmod ug+rx file   # permit you and your group to read or execute it
    chmod ugo-rwx file # permit no access, for anybody

Uma última nota

chmod também suporta -R , para recursão, portanto, se você tiver um diretório chamado myDir:

    chmod -R go-w myDir  # protect everything in that directory and its sub directories/files
    chmod -R go+rX myDir # grant reading access in that directory and its sub directories/files

Deve fazer o truque.

Obrigado por perguntar, e espero que possa ajudar os outros também!

    
por 18.08.2015 / 19:56