Когда два вложенных пространства имен монтирования создаются с помощью unshare(2) в новом разветвленном процессе; вызов readlink(2) из последнего пространства имен с использованием FD, открытого в предыдущем пространстве имен, возвращает путь, в котором отсутствует компонент точки монтирования.
Т.е. /dev/zero становится /zero, а /mnt/disk/file становится /file.
Однако это не так. кажется, происходит, если между двумя вызовами отмены совместного использования есть разветвление. Что делает fork, чтобы изменить это поведение?
Приведенный ниже код C++ может продемонстрировать проблему. Я также прикрепил выходные данные, полученные при запуске в Linux 6.1.23.
При желании можно предоставить один аргумент «вилка», которая создает вилку сразу после создания первого пространства имен, поэтому что второе пространство имен создается в другом процессе, который наследует первое пространство имен от родительского процесса.
#include
#include
#include
#include
#include
#include
#include
std::string readlink_path(const std::string &path) {
std::vector buf(4096);
ssize_t size = readlink(path.c_str(), buf.data(), buf.size());
return size == -1 ? "" : std::string(buf.data(), static_cast(size));
}
std::string readlink_fd(int fd) { return readlink_path("/proc/self/fd/" + std::to_string(fd)); }
int main(int argc, const char *argv[]) {
int fdFromFirstNS = -1, fdFromInitialNS = -1;
/* Initial namespace */
std::cout
Подробнее здесь: https://stackoverflow.com/questions/782 ... namespaces
Результат readlink(2) несовместим с вложенными пространствами имен монтирования ⇐ Linux
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Результат readlink(2) несовместим с вложенными пространствами имен монтирования
Anonymous » » в форуме C++ - 0 Ответы
- 23 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Проект ASPNET с двумя пространствами имен (вложенными папками) не компилируется
Anonymous » » в форуме C# - 0 Ответы
- 15 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Проект ASPNET с двумя пространствами имен (вложенными папками) не компилируется
Anonymous » » в форуме C# - 0 Ответы
- 9 Просмотры
-
Последнее сообщение Anonymous
-