Создайте представление только для чтения того каталога в другом месте. Можно сделать это с bindfs.
Скажем, то, что рассматриваемый каталог /home/confidential/reboot
и это Вы хотите дать доступ только для чтения пользователям в группе mygroup
. Создайте каталог /views/mygroup/reboot
который доступен для той группы.
mkdir -p /views/mygroup/reboot
chown root:mygroup /views/mygroup
chmod 750 /views/mygroup
Создайте представление только для чтения с bindfs
. Процесс bindfs должен иметь разрешение считать файлы и получить доступ к точке монтирования; здесь Вы, по-видимому, выполнили бы его как корень.
bindfs -p a-w /home/confidential/reboot /views/mygroup/reboot
Если файлы под /home/confidential/reboot
не читаемы пользователями в mygroup
и Вы хотите сделать их так, изменить спецификацию полномочий на -p a=rX
.
Для создания представления только для чтения во время начальной загрузки добавьте его к /etc/fstab
:
bindfs#/home/confidential/reboot /views/mygroup/reboot fuse perms=a=rX
GNU/Linux системы[116653] обычно используют либо glibc (семейство Fedora/Redhat, Arch), либо его двоюродного брата, eglibc (семейство Debian/Ubuntu); так как eglibc в настоящее время сливается обратно в glibc ([116654]см. [116965]EGLIBC 2. 19 Branch Created[116966] в разделе "News"[116655]), в ближайшем будущем все они снова будут glibc.
Самый простой способ проверить точную версию - это спросить [116656]ldd[116657], которая поставляется с библиотекой C.
На Fedora 20:
Это glibc 2.18.
На Raspbian (перенос Debian 7 на ARMv6 Broadcom SoC):
К сожалению, man-страница не предоставляет номер версии. [116662]ldd[116663] по-прежнему пригодится, так как любой работающий, динамически компонованный исполняемый файл на системе (например, почти все в [116664]/usr/bin[116665]) будет компоноваться с библиотекой Си.
libc.so.6[116667] находится в третьей строке.
Основная разделяемая библиотека для GNU libc, [117458]libc.so.6[117459] (под Linux; у Hurd другое SONAME), имеет необычное свойство (для разделяемых библиотек), на которое вы можете ссылаться, как на исполняемый файл. Если вы это сделаете, он распечатает то, что утилиты GNU обычно печатают при запуске с [117460]--версией[117461], например:
date --set="23 June 1988 10:00:00"
date --set="10:00:00"
Начните с тривиальной программы:
скомпилируйте ее, используя компилятор, который вы собираетесь использовать для компиляции исходных текстов, затем воспользуйтесь [117430]ldd[117431], чтобы узнать, где находится библиотека Си:
По крайней мере, в случае с eglibc/glibc, вы можете запустить его:
Наконец, вы можете получить подсказки из [117436]objdump -p /lib/x86_64-linux-gnu/libc.so.6. [117437], заглянув в раздел определений версий [117438][117439]:
Обратите внимание на то, что символ GLIBC_2.18 имеет самый последний номер версии среди перечисленных символов, а версия библиотеки действительно 2.18. Однако, это elibc (она стремится быть бинарно совместимой с glibc 2.18, поэтому она использует те же самые версии символов).
ffmpeg -i in.mp4 out.mp3
Вы также можете попытаться использовать [117440]строки[117441], чтобы узнать что-нибудь об этом. Вы захотите указать более длинную минимальную длину ([117442]-n[117443]), или использовать grep для поиска:обе эти строки работают для этого eglibc.
ПРИМЕЧАНИЕ: Утилита пакета Debian [117444]dpkg-shlibdeps[117445] использует [117446]objdump[117447] под капотом, вместе с информацией о сохранённых символах в пакетах библиотек Debian, для определения минимальных версий зависимостей, требуемых двоичными пакетами Debian во время сборки. В основном, он смотрит на символы, экспортируемые двоичным пакетом Debian, а затем находит минимальные версии библиотек, которые содержат эти символы.[117123].