AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1425574
Accepted
clemisch
clemisch
Asked: 2019-04-16 01:34:21 +0800 CST2019-04-16 01:34:21 +0800 CST 2019-04-16 01:34:21 +0800 CST

Eu realmente preciso do chmod recursivo para restringir o acesso a uma pasta?

  • 772

Se eu quiser restringir o acesso a uma pasta secretem uma máquina compartilhada, eu realmente preciso recursivo chmodna pasta

chmod -R g=,o= secret

ou está chmodna pasta suficiente?

chmod g=,o= secret

Qual é a diferença prática?

linux permissions chmod
  • 3 3 respostas
  • 5962 Views

3 respostas

  • Voted
  1. Best Answer
    xenoid
    2019-04-16T04:08:14+08:002019-04-16T04:08:14+08:00

    Para um diretório, o acesso de "leitura" permite listar o conteúdo e o acesso de "execução" permite percorrer o diretório para abrir um de seus filhos (arquivo ou subdiretório). Portanto, se você remover:

    • apenas o acesso de leitura, as pessoas ainda podem acessar subdiretórios adivinhando seus nomes
    • apenas o sinalizador de execução, as pessoas ainda podem listar os nomes dos conteúdos, mesmo que não possam acessá-los, e isso ainda pode ser revelador
    • privilégios de leitura e execução em um diretório, qualquer coisa abaixo dele se torna inacessível e você não precisa fazer uma alteração recursiva.

    Obviamente, se você fizer uma alteração recursiva, uma reinicialização não recursiva acidental dos direitos de acesso ao diretório principal terá menos consequências.

    • 76
  2. G-Man Says 'Reinstate Monica'
    2019-04-16T19:53:12+08:002019-04-16T19:53:12+08:00

    Nem é preciso dizer que, se você criou um arquivo há dois dias (com um modo de leitura pública) e alguém leu o arquivo ontem ou fez uma cópia dele, não há nada que você possa fazer hoje para tornar esse arquivo privado.

    xenoid diz (um tanto simplista) que, se você remover o grupo e outras permissões do seu diretório (hoje, agora), “qualquer coisa abaixo dele se tornará inacessível e você não precisará fazer uma alteração recursiva”. Concordo que, se você usar chmodseu diretório (de nível superior) adequadamente, ninguém além de você 1 poderá acessá-lo no futuro (ou seja, de agora em diante). Mas há algumas pegadinhas.

    Links físicos

    Lembra daquele arquivo que você criou há dois dias? Suponha que seu adversário tenha feito um link físico para esse arquivo ontem (em vez de copiá-lo). Se você usar chmodapenas seu diretório (de nível superior), esse arquivo continuará a ter as permissões publicamente legíveis que você atribuiu ao criá-lo e, portanto, o criminoso ainda poderá lê-lo no futuro - (potencialmente), mesmo se você posteriormente o modifica. Se você fizer um recursive chmod, isso protegerá as permissões no arquivo, o que afetará o link.   O bandido ainda poderá fazer ls -lisso, então eles poderão ver quando você o alterar e quão grande é, mas não poderão lê-lo novamente.

    Diretório de trabalho

    Suponha que, em seu secretdiretório, você tenha um  plansdiretório e também seja legível publicamente. E suponha que, cinco minutos atrás, o bandido abriu uma janela de terminal e disse

    cd /home/clemisch/secret/planos

    Agora, depois de fazer o chmodon secret, o diretório de trabalho do bandido ainda é  /home/clemisch/secret/plans, e eles podem continuar a listar esse diretório e acessar os arquivos lá, potencialmente para sempre. Claro, uma vez que eles cdestejam em outro lugar, ou fechem aquela janela, ou saiam, ou a máquina seja reiniciada, eles perderão o acesso.

    Se você fizer um recursive chmod, isso garantirá as permissões em todos os arquivos e todos os diretórios, fazendo com que o invasor perca o acesso imediatamente.

    Isso pode não ser um risco muito grande se a máquina for um computador pessoal acessado apenas pelo console. Mas, se o bandido tiver deixado uma  sessão screenou  em segundo plano, ele poderá usar esse ataque. tmuxE, se a máquina suportar ssh (ou outro acesso remoto; talvez até FTP seja suficiente), esse ataque pode ser usado.

    Erro humano

    Como o xenóide apontou em sua resposta: Se você fizer um recursivo hoje e depois de amanhã acidentalmente chmod( apenas) o diretório de nível superior voltar para 755, ainda estará protegido pelo recursivo de hoje - todos os arquivos e os diretórios abaixo ainda estarão ilegíveis. (Claro, se você criar um novo arquivo amanhã e permitir que ele seja lido publicamente, ele será exposto quando você abrir as permissões no diretório. Mas isso seria verdade, independentemente de o arquivo de hoje ser recursivo ou não. )secretchmodchmodsecretsecretsecretchmod

    mazunki fez um comentário : “Acredito que cpcarrega permissões”. Não tenho certeza do que eles queriam dizer, mas considere este cenário. Você quer fazer um diffentre dois arquivos:

    • secret/plans/the/quick/brown/fox/file1
    • secret/jumps/over/the/lazy/dog/file2

    Mas você não tem certeza exatamente de onde estão esses arquivos e precisa vasculhar para encontrá-los. Você pode ser tentado a fazer

    cd plans
    cd the/quick                            # looking for file1
    cd brown/fox                            # found it!
    cp file1 /tmp
    cd ../../../../..
    cd jumps/over
    cd the                                  # looking for file2
    cd lazy/dog                             # found it!
    diff /tmp/file1 file2
    

    Se você fizer isso, /tmp/file1terá a mesma proteção que secret/plans/the/quick/brown/fox/file1- então esse é outro motivo para fazer o recursivo chmodhoje.

    Mais uma coisa

    Se o bandido abriu um de seus arquivos secretos cinco minutos atrás e o mantém aberto, ele poderá lê-lo no futuro – potencialmente mesmo que você o modifique. A boa notícia é que este é um ataque um tanto complicado de executar - o bandido deve ter pensado nisso, antes de você fazer o chmod. A má notícia é que esse ataque é muito difícil de se defender — um chmod recursivo não ajudará.
    __________
    1 e, claro, usuários/processos privilegiados

    PS Você pode encurtar um pouco o seu comando: chmod go=é equivalente a chmod g=,o=. (Isso não tornará o recursivo chmodmais rápido, é claro.)

    • 46
  3. mazunki
    2019-04-16T01:49:20+08:002019-04-16T01:49:20+08:00

    Recursive chmodafeta todos os subdiretórios e pastas também, não apenas a própria pasta.

    .:
    total 16
    drwxrwxr-x  4 mazunki mazunki 4096 april 15 11:42 .
    drwxr-xr-x 35 mazunki mazunki 4096 april 15 11:42 ..
    d---------  3 mazunki mazunki 4096 april 15 11:46 a
    d---------  2 mazunki mazunki 4096 april 15 11:42 b
    
    ./a:
    total 12
    d--------- 3 mazunki mazunki 4096 april 15 11:46 .
    drwxrwxr-x 4 mazunki mazunki 4096 april 15 11:42 ..
    -----w---- 1 mazunki mazunki    0 april 15 11:42 a
    dr-xr-xr-x 2 root    root    4096 april 15 11:46 aa
    -----w---- 1 mazunki mazunki    0 april 15 11:42 b
    
    ./a/aa:
    total 8
    dr-xr-xr-x 2 root    root    4096 april 15 11:46 .
    d--------- 3 mazunki mazunki 4096 april 15 11:46 ..
    
    ./b:
    total 8
    d--------- 2 mazunki mazunki 4096 april 15 11:42 .
    drwxrwxr-x 4 mazunki mazunki 4096 april 15 11:42 ..
    -----w---- 1 mazunki mazunki    0 april 15 11:42 a
    -----w---- 1 mazunki mazunki    0 april 15 11:42 b
    [] ~:~/test ▶ 
    [] ~:~/test ▶ 
    [] ~:~/test ▶ sudo chmod -R +w a
    [] ~:~/test ▶ 
    [] ~:~/test ▶ 
    [] ~:~/test ▶ sudo ls -alR 
    .:
    total 16
    drwxrwxr-x  4 mazunki mazunki 4096 april 15 11:42 .
    drwxr-xr-x 35 mazunki mazunki 4096 april 15 11:42 ..
    d-w-------  3 mazunki mazunki 4096 april 15 11:46 a
    d---------  2 mazunki mazunki 4096 april 15 11:42 b
    
    ./a:
    total 12
    d-w------- 3 mazunki mazunki 4096 april 15 11:46 .
    drwxrwxr-x 4 mazunki mazunki 4096 april 15 11:42 ..
    --w--w---- 1 mazunki mazunki    0 april 15 11:42 a
    drwxr-xr-x 2 root    root    4096 april 15 11:46 aa
    --w--w---- 1 mazunki mazunki    0 april 15 11:42 b
    
    ./a/aa:
    total 8
    drwxr-xr-x 2 root    root    4096 april 15 11:46 .
    d-w------- 3 mazunki mazunki 4096 april 15 11:46 ..
    
    ./b:
    total 8
    d--------- 2 mazunki mazunki 4096 april 15 11:42 .
    drwxrwxr-x 4 mazunki mazunki 4096 april 15 11:42 ..
    -----w---- 1 mazunki mazunki    0 april 15 11:42 a
    -----w---- 1 mazunki mazunki    0 april 15 11:42 b
    

    Se você não conceder acesso explicitamente a ., não poderá ler o conteúdo da pasta.

    [] ~:~/test ▶ ls -l
    total 8
    drwxr-xr-x 3 mazunki mazunki 4096 april 15 11:46 a
    d--------- 2 mazunki mazunki 4096 april 15 11:42 b
    [] ~:~/test ▶ 
    [] ~:~/test ▶ 
    [] ~:~/test ▶ sudo chmod +xxx b
    [] ~:~/test ▶ cd b
    [] ~:~/test/b ▶ ls
    ls: cannot open directory '.': Permission denied
    [] ~:~/test/b ▶ sudo chmod +xxx .
    [] ~:~/test/b ▶ ls
    ls: cannot open directory '.': Permission denied
    [] ~:~/test/b ▶ sudo chmod +rrr .
    [] ~:~/test/b ▶ ls
    a  b
    [] ~:~/test/b ▶ 
    

    Da mesma forma, você não poderá cdentrar nos subdiretórios da referida pasta, a menos que os explicitamente +x.

    • -1

relate perguntas

  • execute o contêiner do docker como root

  • Como ativar o sensor de impressão digital no domínio e no diretório ativo do Linux

  • Como alterar permanentemente Ctrl + C para Ctrl + K no CentOS 7?

  • Por que chown 600 id_rsa corrige problemas de permissões?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    Serviço do Windows 10 chamado AarSvc_70f961. O que é e como posso desativá-lo?

    • 2 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Marko Smith

    ssl.SSLCertVerificationError: falha na verificação do certificado [SSL: CERTIFICATE_VERIFY_FAILED]: não foi possível obter o certificado do emissor local (_ssl.c:1056)

    • 4 respostas
  • Marko Smith

    Como posso saber em qual unidade o Windows está instalado?

    • 6 respostas
  • Martin Hope
    Albin Como faço para ativar o WindowsXP agora que o suporte acabou? 2019-11-18 03:50:17 +0800 CST
  • Martin Hope
    fixer1234 O "HTTPS Everywhere" ainda é relevante? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    Kagaratsch O Windows 10 exclui muitos arquivos minúsculos muito lentamente. Algo pode ser feito para agilizar? 2019-09-23 06:05:43 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    Inter Sys Como Ctrl+C e Ctrl+V funcionam? 2019-05-15 02:51:21 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve