Если у вас есть доступ к chroot
, есть хак , который работает на последних ядрах . По крайней мере, это работает на Linux v4.17. Я не думаю, что он совместим с оболочкой -, но с python все в порядке.
(Обратите внимание: вы можете получить возможность chroot
, если у вас есть доступ к пространствам имен пользователей. Используйте unshare -rm --propagation slave
или аналогичный.)
# mount --bind / /mnt
# mount --make-slave /mnt # don't propagate submounts back to /
# mount --bind / /mnt
Теперь у нас есть овермаунт, давайте исследуем его.
# python3
...
>>> import os
>>> os.chdir("/")
>>> os.system("grep mnt proc/self/mountinfo")
231 73 253:0 / /mnt rw,relatime shared:1 - ext4 /dev/mapper/alan_dell_2016-fedora rw,seclabel
352 231 253:0 / /mnt rw,relatime shared:281 - ext4 /dev/mapper/alan_dell_2016-fedora rw,seclabel
0
>>> os.chroot("/mnt")
>>> os.system("cat proc/self/mountinfo")
352 231 253:0 / / rw,relatime shared:281 - ext4 /dev/mapper/alan_dell_2016-fedora rw,seclabel
0
Этот результат показывает, что есть доступная файловая система, смонтированная на /mnt
, и это файловая система с идентификатором монтирования 352 и т. д.
Это проблема реализации GNU diff.
Вы можете использовать реализацию UNIX diff вместо gdiff
.
Портативная версия команды diff UNIX является частью schilytools, проверьте:
/usr/bin/diff -r f??
diff -r foo/a "f\366\366/a"
1c1
< a
---
> b
против:
/opt/schily/ccs/bin/diff -r f??
diff -r foo/a föö/a
1c1
< a
---
> b
/opt/schily/ccs/bin/diff -version
diff schily-SCCS version 5.09 2020/07/14 (x86_64-unknown-linux-gnu)
Исходная загрузка находится по адресу:http://sourceforge.net/projects/schilytools/files/