Я задал этот вопрос вчера, но он был помечен как дубликат и закрыт из-за его контекста, поскольку считалось, что это вопрос X/Y, тогда как меня просто интересовал общий вопрос о том, «как это могло быть», поскольку мой личные исследования (на этом веб-сайте, а также в Интернете) ничего не дали, и я хотел бы узнать больше о том, как обнаружить и справиться с такой специфической проблемой.
Итак, без всякого контекста, вчера я обнаружил несколько файлов на одном из наших серверов Debian, которые были видны обычному пользователю, но не корень
, несмотря на то, что они принадлежат корень
.
Он перепробовал множество команд над этими файлами, и что бы я ни пытался, пользователь
обрабатывает файлы как обычные файлы, но корень
реагирует так, как будто этих файлов вообще не существует (но, тем не менее, не может их перезаписать). Это НЕТ точечные файлы.
Вот результаты этих команд:
Как пользователь
группы user@debian:/tmp$
пользовательский cdrom дискета audio dip video plugdev netdev
пользователь@debian:/tmp$ pwd
/tmp
user@debian:/tmp$ ls -lai
всего 320
1048577 drwxrwxrwt 11 root root 4096 7 сен 13:04 .
2 drwxr-xr-x 23 root root 4096 6 сентября 17:34 ..
5901230 -rw-r----- 1 root root 0 7 сентября 12:59 invisible_file
<другие_файлы>
user@debian:/tmp$ touch invisible_file
touch: нельзя трогать 'invisible_file': разрешение отклонено
user@debian:/tmp$ rm invisible_file
rm: удалить защищенный от записи обычный пустой файл 'invisible_file'? у
rm: невозможно удалить 'invisible_file': операция не разрешена
user@debian:/tmp$ stat invisible_file
Файл: invisible_file
Размер: 0 Блоков: 0 Блок ввода-вывода: 4096 обычный пустой файл
Устройство: 801h/2049d Инод: 5901230 Ссылки: 1
Доступ: (0640/-rw-r-----) Uid: (0/root) Gid: (0/root)
Доступ: 2021-09-07 12:59:54.859124530 +0200
Изменить: 2021-09-07 12:59:54.859124530 +0200
Изменение: 2021-09-07 13:04:03.063441285 +0200
Рождение: -
user@debian:/tmp$ install /dev/null invisible_file
установить: невозможно удалить 'invisible_file': операция не разрешена
user@debian:/tmp$ cat invisible_file
cat: invisible_file: Отказано в доступе
user@debian:/tmp$ find /tmp/ -iname "*invisible_file*"
/tmp/невидимый_файл
пользователь@debian:/tmp$
Как корень
группы root@debian:/tmp#
корень
root@debian:/tmp# pwd
/tmp
root@debian:/tmp# ls -lai
всего 308
1048577 drwxrwxrwt 11 root root 4096 7 сен 13:04 .
2 drwxr-xr-x 23 root root 4096 6 сентября 17:34 ..
<другие_файлы>
root@debian:/tmp# touch invisible_file
root@debian:/tmp# ls -lai
всего 308
1048577 drwxrwxrwt 11 root root 4096 7 сен 13:04 .
2 drwxr-xr-x 23 root root 4096 6 сентября 17:34 ..
<другие_файлы>
root@debian:/tmp# rm invisible_file
rm: невозможно удалить 'invisible_file': нет такого файла или каталога
root@debian:/tmp# stat invisible_file
stat: не может stat 'invisible_file': нет такого файла или каталога
root@debian:/tmp# install /dev/null invisible_file
установка: невозможно создать обычный файл 'invisible_file': нет такого файла или каталога
root@debian:/tmp# cat invisible_file
cat: invisible_file: Нет такого файла или каталога
root@debian:/tmp# find /tmp/ -iname "*invisible_file*"
root@debian:/tmp#
Заметьте, что даже в лс
команда общее количество используемых блоков отличается, разница соответствует невидимый_файл
размер.
Единственный способ перезаписать файл — создать файл с другим именем (и даже с другими разрешениями) и как корень
, мв
все кончено невидимый_файл
, но невидимый_файл
продолжает скрываться от корень
.
Мой вопрос: как в мире Linux можно заставить root полностью игнорировать некоторые обычные файлы, как будто их просто нет, как в моем случае? И как я могу исследовать этот вопрос, сделать эти файлы снова видимыми и убедиться, что нет других невидимых файлов для рутирования?
РЕДАКТИРОВАТЬ :
Вот устанавливать
output, он не показывает мне ничего особенного:
root@debian:~# смонтировать
sysfs в /sys типа sysfs (rw,nosuid,nodev,noexec,relatime)
proc в /proc типа proc (rw,nosuid,nodev,noexec,relatime)
udev в /dev типа devtmpfs (rw,nosuid,relatime,size=4078644k,nr_inodes=1019661,mode=755)
devpts в /dev/pts типа devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs в /run введите tmpfs (rw,nosuid,noexec,relatime,size=817960k,mode=755)
/dev/sda1 на / введите ext4 (rw,relatime,errors=remount-ro,data=ordered)
securityfs в /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs в /dev/shm введите tmpfs (rw,nosuid,nodev)
tmpfs в /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs в /sys/fs/cgroup введите tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup в /sys/fs/cgroup/systemd типа cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore в /sys/fs/pstore типа pstore (rw,nosuid,nodev,noexec,relatime)
cgroup в /sys/fs/cgroup/devices введите cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup в /sys/fs/cgroup/net_cls,net_prio типа cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup в /sys/fs/cgroup/pids введите cgroup (rw,nosuid,nodev,noexec,relatime,pids)
cgroup в /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup в /sys/fs/cgroup/memory типа cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup в /sys/fs/cgroup/cpuset типа cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup в /sys/fs/cgroup/perf_event типа cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup в /sys/fs/cgroup/blkio введите cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup в /sys/fs/cgroup/freezer cgroup типа (rw,nosuid,nodev,noexec,relatime,freezer)
systemd-1 в /proc/sys/fs/binfmt_misc наберите autofs (rw,relatime,fd=35,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=9463)
Hugetlbfs в /dev/hugepages наберите hugetlbfs (rw,relatime)
debugfs в /sys/kernel/debug type debugfs (rw, relatime)
mqueue в /dev/mqueue типа mqueue (rw, relatime)
tmpfs в /run/user/1000 введите tmpfs (rw,nosuid,nodev,relatime,size=817956k,mode=700,uid=1000,gid=1000)
binfmt_misc в /proc/sys/fs/binfmt_misc типа binfmt_misc (rw, relatime)
Результат фск -нф
заключается в следующем:
root@debian:~# fsck -nf
fsck из util-linux 2.29.2
e2fsck 1.43.4 (31 января 2017 г.)
Предупреждение! /dev/sda1 смонтирован.
Предупреждение: пропуск восстановления журнала из-за проверки файловой системы только для чтения.
Проход 1: проверка индексных дескрипторов, блоков и размеров
Удаленный индекс 524799 имеет нулевое время ожидания. Исправить? нет
Найдены индексные дескрипторы, которые были частью поврежденного связанного списка потерянных файлов. Исправить? нет
Инод 1441794 был частью списка потерянных индексов. ИГНОРИРУЕТСЯ.
Проход 2: проверка структуры каталогов
Шаг 3: проверка подключения к каталогу
Шаг 4: проверка счетчиков ссылок
Шаг 5: Проверка сводной информации о группе
Различия в растровых изображениях блоков: -(11108512--11108538)
Исправить? нет
Неверный подсчет свободных блоков (16886612, counted=16857986).
Исправить? нет
Различия в растровых изображениях inode: -524799 -1441794
Исправить? нет
Неверный подсчет свободных инодов (5867140, counted=5866555).
Исправить? нет
/dev/sda1: ********** ВНИМАНИЕ: в файловой системе все еще есть ошибки **********
/dev/sda1: 162172/6029312 файлов (0,3% несмежных), 7230636/24117248 блоков
root@Confluence:~#
Наконец-то я смог запустить полный fsck
в файловой системе. Он исправил показанные выше ошибки, но безрезультатно, так как файлы по-прежнему невидимы.