эквивалентные createFile () и DeviceIoControl () для томов в Unix / Linux - PullRequest
0 голосов
/ 10 февраля 2020

Я открыл том USB-накопитель тома и заблокировал его с помощью CreateFile () и DeviceIoControl () в Windows.

Мне нужна та же функциональность в системе Linux / Unix. Я новичок в Unix Итак, как его получить?

Мой код для Windows:

HANDLE handle = CreateFile(L"\\\\.\\F:",          // F: drive to open
    GENERIC_READ,                // no access to the drive
    FILE_SHARE_READ, // share mode
    NULL,             // default security attributes
    OPEN_EXISTING,    // disposition
    0x1,                // file attributes
    NULL);            // do not copy file attributes

DWORD lpBytesReturned;

if (DeviceIoControl(handle, FSCTL_LOCK_VOLUME, NULL, 0, NULL, 0, &lpBytesReturned, (LPOVERLAPPED)NULL)){
        printf("\n  Lock SUCCESS !\n");
    }
else {
    printf("\n  Lock Failed !\n");
}

Язык: c / c ++

Платформа: Linux / Unix

Заранее спасибо.

1 Ответ

0 голосов
/ 17 февраля 2020

Рассмотрите возможность использования Linux пространств имен , например, Docker контейнеров. Таким образом, вы можете предоставить или ограничить доступ к системным ресурсам, таким как сетевые карты, устройства хранения и т. Д. c.

Например, у вас есть веб-сервер и сервер базы данных. Вы можете создать два контейнера: один для веб-сервера, а второй для базы данных. Каждый из контейнеров имеет свою собственную файловую систему или, если быть точным, собственный просмотр в файловой системе (пространстве имен). Следовательно, нарушение безопасности веб-сервера не может напрямую повлиять на базы данных, поскольку они не видны из файловой системы веб-сервера. Более того, оба контейнера имеют отдельные пользовательские разрешения, поэтому веб-администратор с доступом root по-прежнему не может испортить базы данных.

Точно так же, как вы можете запретить доступ к USB-накопителю: в хост-системе вы можете создавать резервные копии из всех контейнеров Docker на USB-накопитель, в то время как контейнеры не имеют доступа к резервным копиям, как USB хранилище для них вообще не существует.

...