Validar se um arquivo é somente leitura

1. Validar se um arquivo é somente leitura

thiago
lacerdat25

(usa Red Hat)

Enviado em 20/04/2023 - 17:32h

Boa tarde!

Pessoal, preciso validar se um arquivo é somente leitura em um server onde criei um ponto de montagem. Estou passando alguns comandos e mesmo assim não vai, sempre tenho resposta "O arquivo está NAO somente leitura." . Poderiam me dar um help?

Abaixo segue 2 modelos de condicionais que estou usando!

#!/bin/bash

VALIDAÇÃO 1
teste="/mnt/VT-FS01/teste/thiago.txt"
if [[ $teste == -r-xr-xr-x ]]; then
echo "O arquivo COMO somente leitura."
else
echo "O arquivo está NAO somente leitura."
fi


VALIDAÇÃO 2
if [[ -w "/mnt/VT-FS01/teste/thiago.txt" ]]; then
echo "O arquivo COMO somente leitura."
else
echo "O arquivo está NAO somente leitura."
fi


Obrigado!


  


2. Re: Validar se um arquivo é somente leitura

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 20/04/2023 - 17:33h

{
"error": {
"message": "That model is currently overloaded with other requests. You can retry your request, or contact us through our help center at help.openai.com if the error persists. (Please include the request ID 160eff9b408c547902b3596c2a4c967a in your message.)",
"type": "server_error",
"param": null,
"code": null
}
}



3. Re: Validar se um arquivo é somente leitura

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 20/04/2023 - 18:25h

lacerdat25 escreveu:

Boa tarde!

Pessoal, preciso validar se um arquivo é somente leitura em um server onde criei um ponto de montagem.
Estou passando alguns comandos e mesmo assim não vai, sempre tenho resposta "O arquivo está NAO somente leitura." . Poderiam me dar um help?

Abaixo segue 2 modelos de condicionais que estou usando!

#!/bin/bash

VALIDAÇÃO 1
teste="/mnt/VT-FS01/teste/thiago.txt"
if [[ $teste == -r-xr-xr-x ]]; then
echo "O arquivo COMO somente leitura."
else
echo "O arquivo está NAO somente leitura."
fi


VALIDAÇÃO 2
if [[ -w "/mnt/VT-FS01/teste/thiago.txt" ]]; then
echo "O arquivo COMO somente leitura."
else
echo "O arquivo está NAO somente leitura."
fi


Obrigado!

Boa noite Lacerda, seguem sugestões, e o help . . . :)
ls -l arq.txt
-r--r--r-- 1 adminq adminq 232 abr 20 12:21 arq.txt
(("$(stat -c %a arq.txt)" == "444")) && echo "Somente Leitura" || echo "Falhou"
Somente Leitura
[ "$(stat -c %A arq.txt)" == "-r--r--r--" ] && echo "Somente Leitura" || echo "Falhou"
Somente Leitura

Saída do comando "stat":
stat --printf '%%a: '%a'\n%%A: '%A'\n' arq.txt
%a: 444
%A: -r--r--r--

#-----------------------------------------------------------------------------#
Ps.: Somente leitura é: "-r--r--r--", e não "-r-xr-xr-x"
"-r-xr-xr-x" = leitura e execução para o dono, grupo e outros.

É isso.
______________________________________________________________________
Importante:
lynx --dump https://www.vivaolinux.com.br/termos-de-uso/ | sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________
Nota de esclarecimento:
O comando: ACIMA, faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________



4. Validar se um arquivo é somente leitura

thiago
lacerdat25

(usa Red Hat)

Enviado em 20/04/2023 - 21:32h

Boa noite msoliver,

Estou executando os testes e sempre cai na falha. Não sei se tem a ver, mas eu preciso testar um arquivo que esta dentro de um server linux via ponto /MNT. Para teste eu clico com botão direto e coloco ele como somente leitura.



5. Re: Validar se um arquivo é somente leitura

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 21/04/2023 - 20:41h

lacerdat25 escreveu:

Boa noite msoliver,

Estou executando os testes e sempre cai na falha. Não sei se tem a ver, mas eu preciso testar um arquivo que esta dentro de um server linux via ponto /MNT. Para teste eu clico com botão direto e coloco ele como somente leitura.

Lacerda, boa noite.
Poste a saída dos comandos:
ls -l /mnt/VT-FS01/teste/thiago.txt
stat /mnt/VT-FS01/teste/thiago.txt
sem fazer a alteração manual.

______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________



6. Re: Validar se um arquivo é somente leitura

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 23/04/2023 - 15:43h

Minions escreveu:

msoliver escreveu:







#!/bin/bash

arquivo="/tmp/dd.txt"

# O arquivo de texto coloquei em "Apenas leitura" para o Proprietário, Grupo e Outros. => -r--r--r--


clear

echo -e "\n\nValidar se um arquivo é somente leitura\n=======================================\n\n"

echo "
Arquivo: $arquivo
"

naorola(){

# VALIDAÇÃO 1

if [[ "$arquivo" == -r-xr-xr-x ]]; then
echo "O arquivo COMO somente leitura."
else
echo "O arquivo está NAO somente leitura."
fi


# VALIDAÇÃO 2 (Por que não funciona => [-w ARQUIVO] Verdadeiro se o ARQUIVO existe e é gravável. )
if [[ -w "$arquivo" ]]; then
echo "O arquivo COMO somente leitura."
else
echo "O arquivo está NAO somente leitura."
fi

}

# https://www.shellscriptx.com/2016/12/estrutura-condicional-if-then-elif-else-fi.html


ls -l "$arquivo"


echo -e "\n\n"


(("$(stat -c %a "$arquivo")" == "444")) && echo "Somente Leitura" || echo "Falhou"
# Somente Leitura


[ "$(stat -c %A "$arquivo")" == "-r--r--r--" ] && echo "Somente Leitura" || echo "Falhou"
# Somente Leitura


echo -e '\n\nSaída do comando "stat": \n'

stat --printf '%%a: '%a'\n%%A: '%A'\n' "$arquivo"

exit 0




Acho que o problema esta no --printf '%%a: '%a'\n%%A: '%A'\n
stat --printf '%%a: '%a'\n%%A: '%A'\n' "$arquivo"

Saída:
$ stat --printf '%%a: '%a'\n%%A: '%A'\n' dd.txt
%a: 444
%A: -r--r--r--
Nesta parte só mostra o %a e o %A

Minions,
Essa parte: stat --printf '%%a: '%a'\n%%A: '%A'\n
É somente para mostrar a saída do comando,
Observe que no teste, a sintaxe é outra!
#----------------------------------------------------------------#
# VALIDAÇÃO 2 (Por que não funciona => [-w ARQUIVO] Verdadeiro se o ARQUIVO existe e é gravável. )
if [[ -w "$arquivo" ]]; then
echo "O arquivo COMO somente leitura."
else
echo "O arquivo está NAO somente leitura."
fi
#----------------------------------------------------------------#
Minions, errou novamente...... rsrsrsrsrs
vc citou que colocou somente leitura:
O arquivo de texto coloquei em "Apenas leitura" para o Proprietário, Grupo e Outros. => -r--r--r--
Logo, o test:
[ -w arquivo ]
FALHA!

Att.: Marcelo Oliver




7. Re: Validar se um arquivo é somente leitura

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 23/04/2023 - 22:31h


Minions escreveu:

msoliver escreveu:

Minions, errou novamente...... rsrsrsrsrs
vc citou que colocou somente leitura:
O arquivo de texto coloquei em "Apenas leitura" para o Proprietário, Grupo e Outros. => -r--r--r--

Logo, o test:
[ -w arquivo ]
FALHA!



Tem varias forma de "Apenas leitura" qual será a forma que o usuário uso?

Ex: O -r--r--r- seria uma forma de "Apenas leitura"

Se vc coloca um ! -W como fica ai?


O %a e %A no --printf não é para mostra algo para o usuário na tela? Aqui não apareceu nada.

Minions, o o stat --printf, não faz parte do comando,
e só para mostrar como são as saídas do stat;
stat --printf '%%a: '%a'\n%%A: '%A'\n' arq.txt
%a: 777
%A: -rwxrwxrwx

O fato de NEGAR o -w, não implica que está testando se é leitura,
apenar inverte a saída.
[ -w arq.txt ] && echo SIM || echo NAO
SIM
[ ! -w arq.txt ] && echo SIM || echo NAO
NAO


______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________



8. Re: Validar se um arquivo é somente leitura

aguamole
aguamole

(usa KUbuntu)

Enviado em 24/04/2023 - 15:06h

A Alexa Bolada é invocada pelo "@alexabolad...".






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts