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 / unix / Perguntas / 733928
Accepted
teeeeee
teeeeee
Asked: 2023-02-02 03:04:11 +0800 CST2023-02-02 03:04:11 +0800 CST 2023-02-02 03:04:11 +0800 CST

Um usuário precisa de permissões executáveis ​​para poder executar du (uso de disco)? [duplicado]

  • 772
Esta pergunta já tem respostas aqui :
Bit de execução vs. leitura. Como funcionam as permissões de diretório no Linux? (9 respostas)
Fechado ontem .

Estou observando o seguinte comportamento e quero saber se ele é esperado.

Estou tentando executar o uso do disco ( du) como user2em um diretório test_directoryque pertence a user1.

Se eu alterar as permissões para permitir acesso total a todos (usando chmod 777 test_directory), ambos user1e user2poderão ver corretamente o uso do disco, conforme o esperado:

insira a descrição da imagem aqui

No entanto, se eu restringir o acesso executável para outros usuários (usando chmod 776 test_directory), user2não será possível executar due ocorrerá um erro de permissão:

insira a descrição da imagem aqui

Além disso, o diretório mostra como tendo tamanho de 4096 bytes no caso do erro.

  1. Por que as permissões executáveis ​​são necessárias para que um usuário possa solicitar o uso do disco com du? Eu teria ingenuamente esperado que apenas permissões de leitura fossem necessárias (ou seja, chmod 774). Na verdade, parece que as permissões de leitura e execução são necessárias para executar du (ou seja chmod 775).

  2. Por que o tamanho padrão do diretório é de 4096 bytes neste caso?

Obrigado!

permissions
  • 1 1 respostas
  • 22 Views

1 respostas

  • Voted
  1. Best Answer
    ilkkachu
    2023-02-02T03:51:53+08:002023-02-02T03:51:53+08:00

    Sem a xpermissão execute/access ( ) em dir, você não pode chamar stat(), dir/foo.bine não pode ver o tamanho dele. Ter apenas a rpermissão de leitura ( ) permite listar apenas os nomes dos arquivos, mas os nomes são tudo o que você obtém em geral.

    Em alguns sistemas, readdir()pode fornecer mais informações do que apenas os nomes, mas não tenho certeza se algum sistema pode fornecer o tamanho do arquivo lá. Os sistemas de arquivos Linux podem fornecer o tipo de arquivo, que nunca muda durante o tempo de vida do inode e da entrada do diretório. Mas algo que varia constantemente, como o tamanho, é mais difícil de obter apenas do diretório em um sistema de arquivos em que os inodes são separados da listagem do diretório.

    Mesmo se você obtiver o tamanho com readdir(), apenas ler dir/não fornecerá o tamanho de dir/sub/bar.bin, você precisará ler dir/subpara isso. E sem permissão de acesso no dir, você não pode.

    O tamanho de um diretório é apenas o tamanho da lista de arquivos, não inclui os tamanhos dos próprios arquivos. Portanto, não lhe diz muito. Esses 4 kB são comuns para, por exemplo, ext4, é apenas um bloco do sistema de arquivos, o mínimo que o sistema de arquivos precisa alocar. Da mesma forma que com um arquivo, você pode obter o tamanho apenas com xpermissões no diretório que o contém. (por exemplo, você precisa xobter dir/o tamanho de dir/file.txtou dir/subdir/.)

    Então, sim, você precisa de permissões de leitura e acesso para verificar efetivamente toda a árvore de diretórios.

    Veja também: Executar vs Ler bit. Como funcionam as permissões de diretório no Linux?

    • 1

relate perguntas

  • Como funcionam as permissões de grupo?

  • Erro de permissão do arquivo de log do Redis, mas a permissão já é 777

  • Iniciando o comando zypper com privilégio root

  • Possíveis razões pelas quais o meld não pode acessar /dev/fd/* quando executado como usuário sem privilégios?

  • Os subdiretórios não vazios de outro usuário estão protegidos contra exclusão no meu diretório?

Sidebar

Stats

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

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

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