Невозможно создать или удалить файл с определенными именами файлов в UFS под Solaris 10
У нас возникла проблема, когда (случайно) конкретный файл не может быть создан или удален. Файл не существует, любая попытка записи в него (даже с правами root на консоли) приводит к сообщению "Permission Denied".
Автоматизированный процесс sftp'd файлы в это место, как это:
в "/dirX/" file001 через file999 были переданы, за исключением файла666. В результате файл 666 привел к ошибке отказа в разрешении.
- файл не существует
- (как root) touch /dirX/file666 -> отказано в разрешении
мы попробовали это:
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.
Наша служба поддержки отключила систему и запустила fsck, которая нашла и исправила 1 ошибку. Это не решило проблему и не предотвратило ее повторение.
Как будто файловая система ненавидит это конкретное имя и отказывается что-либо с ним делать.
Что может вызвать такую проблему?
Изменить: сокращенно truss
выход:
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 вывод
FJSV>host{root}: ls -hal *
-rw-r--r-- 1 a817768 nologin 34K Jun 26 14:56 file666
3 ответа
Солярис ppriv
Команду можно использовать для отладки проблем с разрешением. Попробуй это:
ppriv -e -D touch /dirX/file666
Что бы ни стоило, "отказано в разрешении" (EACCES) при переименовании или удалении файла указывает на проблему с обновлением каталога, а не на проблему с самим файлом. Это длинный путь, но вы можете попробовать удалить и воссоздать каталог.
Эта строка:
mv /dirX /dirSomethingElse #permission denied.
если это точно, также указывает на проблему с корневым каталогом. Я был бы склонен повторно запустить fsck и / или поверхностный анализ диска, а затем повторить ваши тесты. Такая случайность предполагает повреждение файловой системы или плохой дисковый блок.
Каковы результаты:
ls -hal /dirX/file666
lsattr /dirX/file666
Есть ли какие-либо разрешения или атрибуты в этом файле? Мой первый хотя, возможно, + I неизменный флаг был установлен на нем.
Также вы можете использовать 'strace', чтобы узнать, что выдает ошибку отказа в разрешении, если это что-то неочевидное - 'strace rm /dirX/file666'
Кроме того, когда они запускали fsck, они запускали его с плохой проверкой блоков? (-С)