ls -la não exibe a permissão correta para uma pasta mount -bind

3

Por favor, leia os seguintes passos para entender o meu problema,

Execute os seguintes comandos

mkdir ~/src
mkdir ~/destination

sudo mount ~/src ~/destination --bind -o ro
A pasta

src foi montada em bind na pasta destination . Quando vejo a pasta destination com nautilus, ela é somente leitura. Mas o comando ll fornece a mesma permissão de arquivo para as pastas src e destination .

Qual é o motivo disso? Como posso ver a permissão real da pasta "destino"? Como o nautilus o exibe como somente leitura?

    
por Dulaj Atapattu 09.06.2017 / 12:28

1 resposta

3

Há duas coisas em jogo aqui:

  1. Permissões do diretório.
  2. Montar opções.

As permissões do diretório são independentes do fato de que a montagem era somente leitura. Portanto, ls ainda listará as permissões atribuídas à pasta, sem considerar como ela foi montada.

Da mesma forma, se eu montar uma pasta com noexec , ls mostrará que os arquivos executáveis ainda são executáveis. Montando a pasta com noexec (ou ro no seu caso) não altera as permissões em arquivos e diretórios .

O gerenciador de arquivos parece ser mais inteligente, e sabe que o diretório é montado somente para leitura. Obviamente, consulta mais do que apenas os bits de permissão para descobrir isso.

Nos comentários: "No meu caso de uso, quero ler a permissão de montagem com um comando shell".

O comando mount , sem opções, exibirá todas as partições atualmente montadas e suas opções de montagem:

$ mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=32841600k,nr_inodes=8210400,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=6572324k,mode=755)
(etc.)

As opções de montagem estão listadas entre parênteses.

Você também pode investigar /etc/mtab para os sistemas de arquivos montados atualmente. Este arquivo tem o mesmo formato que /etc/fstab , então você poderia fazer

awk '{ print $2, $4 }' /etc/mtab

para obter apenas os pontos de montagem e as opções de montagem, por exemplo.

    
por 09.06.2017 / 12:44