Хорошо, если я не мог бы использовать ls в режиме оболочки emacs, я мог бы переключиться на eshell режим или просто сушеное.
Эти работы ответа над Debian (протестированный на lenny и сжимают). После расследования это, кажется, работает только благодаря патчу Debian; пользователям других дистрибутивов, таким как Ubuntu может не повезти.
Можно использовать mount --bind
. Смонтируйте “реальную” файловую систему в соответствии с каталогом, это не публично доступно. Заставьте только для чтения связать, монтируют, что это более широко доступно. Заставьте чтение-запись связать, монтируются для части, которую Вы хотите выставить с доступом для чтения-записи.
mkdir /media/hidden /media/hidden/sdz99
chmod 700 /media/hidden
mount /dev/sdz99 /media/hidden/sdz99
mount -o bind,ro /media/hidden/sdz99/world-readable /media/world-readable
mount -o bind /media/hidden/sdz99/world-writable /media/world-writable
В Вашем варианте использования я думаю, что можно сделать:
mkdir /var/smb/hidden
mv /var/smb/snapshot /var/smb/hidden
mkdir /var/smb/snapshot
chmod 700 /var/smb/hidden
chmod 755 /var/smb/hidden/snapshot
mount -o bind,ro /var/smb/hidden/snapshot /var/smb/hidden/snapshot
Т.е. помещенный реальное snapshot
каталог в соответствии с ограниченным каталогом, но дают snapshot
прочитайте полномочия для всех. Это не будет непосредственно доступно, потому что его родитель имеет ограниченный доступ. Свяжите - монтируют его только для чтения в доступном месте, так, чтобы все могли считать его через тот путь.
(Только для чтения связывают, монтируется, только стал возможным спустя несколько лет после того, как связывают монтирование, были представлены, таким образом, Вы могли бы помнить время, когда они не работали. Я не знаю бесцеремонно, с тех пор, когда они работают, но они уже работали в Debian lenny (т.е. теперь oldstable).)
@Gilles был действительно близок, просто очень немного от метки Ubuntu 10.10 (у меня нет причины сомневаться, что он прав для Debian, Сжимают, и возможно другие). Путем монтирования моего чтения-записи создает снимки каталог под папкой, к которой не могут получить доступ другие пользователи (например,/var/smb/hidden/snapshots, где/var/smb/hidden имеет полномочия 770 и принадлежит root:root), я могу защитить чтение-запись, монтируются от других пользователей. Я могу затем использовать mount --bind
сопровождаемый mount -o remount,ro
для привязки монтирования с доступным местоположением затем сделайте это только для чтения.
(Инверсия (монтируют исходную файловую систему, только для чтения, затем связывают его чтение-запись), не работает; точно так же монтирование оригинала, только для чтения, затем привязка его только для чтения, затем перемонтирование исходного чтения-записи, делают связанный каталог также чтением-записью.)
Таким образом для резюме вот решение:
mkdir /var/smb/hidden
chown root:root /var/smb/hidden
chmod 770 /var/smb/hidden
mkdir /var/smb/hidden/snapshots
mksdir /var/smb/snapshots
mount /dev/md2 /var/smb/hidden/snapshots
mount --bind /var/smb/hidden/snapshots /var/smb/snapshots
mount -o remount,ro /var/smb/snapshots
Таким образом, существует краткое окно времени, где резервные копии являются чтением-записью и обычно доступный, но это является достаточно маленьким, чтобы быть применимым для моих потребностей. Некоторый обман с полномочиями на/var/smb мог защитить его во время этого краткого окна (т.е. сделать его непроходимым, затем связать монтирование, затем сделать его проходимым снова), если те краткие миллисекунды являются слишком большим окном.
Теперь я просто должен поместить это все вместе в сценарий. Подсуньте его в процесс запуска прямо после того, как все смонтировано, возможно, который должен избежать любого конфликта, который мог бы быть вызван Samba, пытающимся совместно использовать каталог, с которым я связываю.
Примечание: Если Ваш дистрибутив поддерживает mount -o bind,ro
версия как Gilles отправила, я рекомендую что решение для Вас; мое решение, здесь должен только использоваться людьми на Ubuntu или других дистрибутивах, которые не разрешат для изменения смонтировать опции при привязке с другим каталогом.
{}
входной параметр для sh -c
к строке, и там получают доступ как $0
. Команда Вы не понимаете полосы .md
и добавляет .html
. Вы, вероятно, правы с выходом .
---------121 человек--------45572----, +1! Это помогло мне сделать busybox mount
работайте, как предназначено. Но я все еще смущен.
– Camilo Martin
22.07.2012, 14:40
mount -V
), но та команда не работала (и согласно странице справочника, Вы не можете измениться, монтируют опции как часть связывать команды). Однако я действительно имел успех (после прохождения через страницы справочника в пятидесятый раз) выполнениеmount --bind /var/smb/snapshots /var/smb/test
сопровождаемыйmount -o remount,ro /var/smb/test
. (Очевидно, это было тестом, если Вы не могли бы сказать моими прекрасными именами каталогов!) – Kromey 12.04.2011, 03:07mount -o bind,ro
не работает там также. Таким образом, я предполагаю, что это - патч Debian, в конце концов! – Gilles 'SO- stop being evil' 12.04.2011, 03:47