Невозможно удалить файл с помощью 'комнаты'

Не на CentOS 3/4/5 (Отсутствие возможностей файловой системы):

Можно установить возможность CAP_NET_BIND_SERVICE на программу, которая должна открыть этот порт. Корень установит возможность на исполняемом файле, затем любой пользователь может выполнить тот исполняемый файл, это сможет использовать порты <1024.

Установить возможность на исполняемом файле:

setcap cap_net_bind_service=+ep /path/to/program
4
задан 9 February 2011 в 12:18
5 ответов

Это кажется, что это имя файла может содержать непечатаемый символ. Это объяснило бы "касание", делающее другой файл.

Попробуйте что-то как

       ls -b

в каталоге для наблюдения, если это так?

Затем необходимо смочь сделать что-то как:

       rm -i S*2 

и это должно предложить Вам файл даже со скрытым символом.

Поочередно, Вы можете использовать, находят, чтобы сделать это...

       find . -name S\*2 -exec /bin/rm -i {} \;

должен предложить Вам файлы... Я не знаю, 'находит' ли AIX, что синтаксис необычен, таким образом, это не могло бы работать, но 'комната-i' часть должна позволить Вам прервать команду, если это неправильно.

8
ответ дан 3 December 2019 в 02:30

Вы могли попробовать inode. Я не уверен, на каком специальном символе Вы начали там, но это могло бы стоить попытки:

$ touch badfile^M
$ ls -il bad*
   99 -rw-r--r--    1 username  group               0 Feb 09 04:39 badfile
$ find . -inum 99 -exec /bin/rm {} \;
$ ls -li bad*
ls: 0653-341 The file bad* does not exist.
3
ответ дан 3 December 2019 в 02:30

Существует пространство в конце файла (или некоторый другой непечатный символ). Попытайтесь выбрать обе строки в Вашем $ ls -l вывод для наблюдения его. Для удаления его Вы могли попробовать абсолютно безопасный метод находки:

dir=/path/to/your/directory

absolute_dir_path_x="$(readlink -fn -- "$dir"; echo x)"
absolute_dir_path="${absolute_dir_path_x%x}"

while IFS= read -rd $'\0' path
do
    file_path="$(readlink -fn -- "$path"; echo x)"
    file_path="${file_path%x}"
    echo "START${file_path}END"
done < <( find "$absolute_dir_path" -type f -name '*S1208001*' -print0 )

Затем можно, вероятно, просто добавить a rm -- "${file_path}" в конце цикла с условием продолжения.

1
ответ дан 3 December 2019 в 02:30

Я испытал подобную проблему, и простой fsck (и затем комната снова) решил мою проблему

0
ответ дан 3 December 2019 в 02:30

Возможный Файловая система содержит файл, пока последний процесс не прекращает использовать его или пока фс не моется.

Я видел, что что-то подобное на NFS смонтировало Доли NetApp. Просто ожидайте немного, и файл исчезает.

0
ответ дан 3 December 2019 в 02:30

Теги

Похожие вопросы