Загружен ли объект общей библиотеки как разделяемая память для программы?

Если я смонтирую этот внешний жесткий диск куда-нибудь в их собственную папку /home/user, будет ли он автоматически единственным пользователем (помимо root), который сможет получить к нему доступ? Или для этого нужны дополнительные изменения в разрешениях?

Возможность доступа к папке внутри /home/user не связана с монтированием и зависит от разрешений, которые установлены для других пользователей на /home/user:

  • drwxr-xr-x: /home/user/usbDrive будет доступен всем.
  • drwxr--r--: другие пользователи смогут видеть /home/user/usbDrive (ls /home/user/ выведет список usbDrive), но не смогут получить доступ к содержимому внутри него.
  • drwx--x--x: другие пользователи не смогут увидеть /home/user/usbDrive, но смогут получить к нему доступ, если знают его имя (cd /home/user/usbDrive будет работать).
  • drwx------: другим пользователям будет запрещен доступ к /home/user/usbDrive

Обратите внимание, что после монтирования диска разрешение внутри /home/user/usbDrive будет зависеть от параметров монтирования, а не от исходных разрешений, которые имел каталог /home/user/usbDrive.

1
20.06.2018, 07:18
1 ответ

Поскольку все современные ОС следуют базовым концепциям SunOS -4.0 (1988 )и поскольку они даже основаны на коде SunOS (, Sun в начале 1990-х предложила FreeBSD исходные коды, откуда это было скопировано... )мало что отличается.

Файл общей библиотеки сопоставляется с памятью программ, и это делается общим способом с копированием данных при записи, поэтому большая часть необходимой оперативной памяти используется совместно.

  • malloc()вызывается не "библиотекой", а процессом, связанная память связана с процессом

  • Сигналы отправляются процессу -, а не библиотеке

  • Если программа/процесс завершается, выделенная память освобождается ядром, и если счетчик ссылок на отображаемую библиотеку становится равным нулю, вся библиотека удаляется из памяти.

1
27.01.2020, 23:43

Теги

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