[vagrant@localhost vagrant]$ sudo chmod 755 luser-demo01.sh
[vagrant@localhost vagrant]$ ls -l
total 5
-rwxrwxrwx 1 vagrant vagrant 101 May 30 19:44 luser-demo01.sh
-rwxrwxrwx 1 vagrant vagrant 3464 May 30 19:16 Vagrantfile
[vagrant@localhost vagrant]$ chmod 755 luser-demo01.sh
[vagrant@localhost vagrant]$ ls -l
total 5
-rwxrwxrwx 1 vagrant vagrant 101 May 30 19:44 luser-demo01.sh
-rwxrwxrwx 1 vagrant vagrant 3464 May 30 19:16 Vagrantfile
[vagrant@localhost vagrant]$
Estou tentando alterar as permissões do arquivo .sh acima de 777 para 755 usando chmod
, mas não está funcionando. Tentei usar outras permissões como 600 e 666, chmod
mas as permissões de arquivo nunca mudam. Estou usando o CentOS 7.
Meus comandos são os seguintes: sudo chmod 755 <filename>
ou chmod 755 <filename>
.
Fui recomendado usar chown
para obter a propriedade do arquivo. Porém, depois de tentar isso, vejo que nem isso está funcionando como esperado. Estou anexando uma imagem abaixo para referência. Provavelmente estou usando os comandos errados.
[vagrant@localhost vagrant]$ chown -c root luser-demo01.sh
changed ownership of 'luser-demo01.sh' from vagrant to root
[vagrant@localhost vagrant]$ ls -l
total 5
-rwxrwxrwx 1 vagrant vagrant 101 May 30 19:44 luser-demo01.sh
-rwxrwxrwx 1 vagrant vagrant 3464 May 30 19:16 Vagrantfile
[vagrant@localhost vagrant]$
A saída do findmnt
comando é a seguinte:
[vagrant@localhost vagrant]$ findmnt -T /vagrant
TARGET SOURCE FSTYPE OPTIONS
/vagrant /vagrant vboxsf rw,nodev,relatime
/vagrant vagrant vboxsf rw,nodev,relatime
A causa mais comum para esse tipo de comportamento (nota: nenhuma mensagem de erro ao tentar alterar permissões ou propriedade) é que os arquivos estão localizados em um sistema de arquivos que não suporta propriedades/permissões de arquivo no estilo Unix, como VFAT/FAT32/ Sistema de arquivos ExFAT ou um compartilhamento SMB/CIFS de um sistema que não oferece suporte às extensões Unix do protocolo SMB.
Esses sistemas de arquivos normalmente permitem definir um proprietário/grupo padrão para todos os arquivos e diretórios contidos nele, e talvez um conjunto de permissões para todos os arquivos e outro para todos os diretórios. Geralmente são definidos usando opções de montagem no momento da montagem do sistema de arquivos.
Não há mensagens de erro porque o driver do sistema de arquivos "sabe" que alterar as propriedades e permissões por arquivo não é fundamentalmente possível; portanto, o driver simplesmente não faz nada e relata uma operação bem-sucedida sempre que solicitado a alterar proprietários/permissões.
Para identificar o tipo de sistema de arquivos usado, execute
findmnt --target .
no diretório que contém os arquivos cujas permissões você deseja alterar. Edite sua pergunta para adicionar a saída desse comando como text , não como uma imagem de texto.O tipo de sistema de arquivos parece ser
vboxsf
, indicando que este é um compartilhamento do VirtualBox do sistema host. Se o VirtualBox estiver sendo executado como um usuário normal no sistema host, ele não terá privilégios para alterar as propriedades dos arquivos no lado do host. E se o sistema de arquivos host for VFAT/FAT32/ExFAT, não haverá como armazenar as permissões para arquivos individuais, portanto o driver não poderá confiar nos recursos do sistema de arquivos host. Portanto, ele terá que assumir que deve fornecer toda a emulação de propriedade/permissões por si só, assim como um driver de sistema de arquivos VFAT deve fazer.Consulte
man mount.vboxsf
as opções de montagem a serem usadas para definir as permissões.É possível que o nome do arquivo não seja verdadeiro
luser-demo01.sh
, mas contenha caracteres não imprimíveis.Tente correr
ls -lb *
-b: imprime escapes no estilo C para caracteres não gráficos
Verifique novamente se o nome do arquivo é o esperado.
Esta resposta fornece mais detalhes sobre
ls -b
. https://askubuntu.com/a/889751