O comando Solaris ppriv
pode ser usado para depurar problemas Permissão negada . Tente isto:
ppriv -e -D touch /dirX/file666
Estamos com um problema em que (aleatoriamente) um determinado arquivo não pode ser criado nem excluído. O arquivo não existe, qualquer tentativa de gravar nele (mesmo como root no console) resulta em uma mensagem "Permissão negada".
Um processo automatizado transferiu os arquivos para este local da seguinte forma:
em "/ dirX /" file001 até file999 foram transferidos com exceção do file666. O resultado do arquivo 666 resultou em um erro de permissão negada.
nós tentamos isso:
mv /dirX /dirSomething
touch /dirSomething/file666 # OK!
mv /dirSomething /dirX #OK!
cat /dirX/file666 #OK!
rm /dirX/file666 #permission denied
mv /dirX /dirSomethingElse #permission denied.
Nossa equipe de suporte colocou o sistema offline e executou o fsck, que encontrou e corrigiu um erro. Isso não resolveu o problema nem impediu que isso acontecesse novamente.
É como se o sistema de arquivos odiasse aquele nome específico e se recusasse a fazer qualquer coisa com ele.
O que poderia causar tal problema?
Editar:
truss
saída abreviada:
pathconf("file666", 20) = 1
acl("file666", GETACLCNT, 0, 0x00000000) = 4
stat64("file666", 0xFFBFEC90) = 0
acl("file666", GETACL, 4, 0x00027928) = 4
lstat64("otherfile666", 0x00026630) Err#2 ENOENT
rename("file666", "otherfile666") Err#13 EACCES
fstat64(2, 0xFFBFDF10) = 0
mvwrite(2, " m v", 2) = 2
: cannot rename write(2, " : c a n n o t r e n".., 16) = 16
file666write(2, " f i l e 6 6 6".., 17) = 17
to write(2, " t o ", 4) = 4
otherfile666write(2, " b k . t x t", 6) = 6
: write(2, " : ", 2) = 2
Permission deniedwrite(2, " P e r m i s s i o n d".., 17) = 17
ls -hal saída
FJSV>host{root}: ls -hal *
-rw-r--r-- 1 a817768 nologin 34K Jun 26 14:56 file666
Quais são os resultados de:
ls -hal /dirX/file666
lsattr /dirX/file666
Existe alguma permissão ou atributo nesse arquivo? Meu primeiro porém, talvez a bandeira imutável de + i tenha sido definida.
Além disso, você pode usar 'strace' para descobrir o que está dando o erro de permissão negada se algo não for óbvio - 'strace rm / dirX / file666'
Além disso, quando eles executaram o fsck, eles executaram a verificação de bloqueio incorreto? (-c)
Por que vale a pena, "permissão negada" (EACCES) enquanto renomear ou excluir um arquivo aponta para um problema ao atualizar o diretório, em vez de um problema com o arquivo em si. Este é um tiro longo, mas você pode tentar excluir e recriar o diretório.
Esta linha:
mv /dirX /dirSomethingElse #permission denied.
se for preciso, também aponta para um problema com o diretório raiz. Eu ficaria inclinado a reexecutar fsck e / ou uma análise de superfície da unidade, depois refazer seus testes. Aleatoriedade como essa sugere corrupção no sistema de arquivos ou um mau bloqueio de disco.