[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Странная проблема с перименованием файла



Victor Wagner <v.wagner@postgrespro.ru> writes:

> Вылезла у меня тут проблемка - при попытке перезаписать файл, например
> при обновлении пакета, выдается "Device or resource busy". Файл, с
> которым возникает проблема, может быть, например /usr/bin/perl

firejail или что-то аналогичное? С ядром из jessie, mount --bind в
*отдельном* mount namespace может приводить к невозможности
переименовать файлы и в оригинальном namespace:

$ sudo sysctl -w kernel.unprivileged_userns_clone=1
$ ls -l /bin/lesspipe
-rwxr-xr-x 1 root root 7765 Oct  8 13:41 /bin/lesspipe
$ unshare -rm sh -c 'mount --bind /dev/null /bin/lesspipe; ls -l /bin/lesspipe; sleep 10m &'
crw-rw-rw- 1 nobody nogroup 1, 3 Mar 25  2016 /bin/lesspipe
$ ls -l /bin/lesspipe
-rwxr-xr-x 1 root root 7765 Oct  8 13:41 /bin/lesspipe
$ sudo mv  /bin/lesspipe /bin/foobarbaz
mv: cannot move ‘/bin/lesspipe’ to ‘/bin/foobarbaz’: Device or resource busy

Разумеется, это баг, и с очевидными security implication (DoS), в
upstream он был пофишкен, а в jessie забили :-\

> Когда это с базой keepassx стало совсем неудобно.
>
>
> При этом делать echo в этот файл можно. Нельзя именно его
> переименовывать. Но что dpkg, что keepassx, при записи нового файла
> сначала переименовывает старый.
>
> Что характерно, после перезагрузки проблема сохраняется. То есть это не
> какой-то процесс захватывает файл.
>
> Единственный известный мне способ решения проблемы - свалить систему в
> single user mode. В single user-е проблемные файлы становится возможным
> переименовать или удалить. Или просто (если речь идет о файлах под
> управлением dpkg) apt-get install -f сказать.
>
> Вопрос в том, куда копать.
> jessie, systemd, файловая система ext4 
> /dev/sda8 on /home type ext4 rw,relatime,data=ordered 
> никаких securelevel-ов, selinux-ов и прочее не включено.
> На машине имеется пачка lxc-контейнеров причем на том же разделе.
> Не думаю, конечно что это в ихних cgroups-ах. Но на всякий случай
> отмечаю, что оно есть.


Reply to: