(Как) я могу создать tmpfs как постоянный (некорневой) пользователь?

Профессионалы
  • Если компьютеру нужно было установить Linux временно, Wubi легче удалить, не оставляя очевидные трассировки. Без Wubi необходимо повторно увеличить раздел Windows и восстановить загрузчик Windows. С Wubi Вы просто используете предоставленный деинсталлятор. Можно даже временно скрыть запись Ubuntu от загрузчика Windows.

  • Для кого-то, кто хочет испытать Linux, но боится нанесения вреда Windows, Wubi менее страшен.

Недостатки

  • Предположим, что у пользователя есть компьютер с Wubi, обновил, почти не уверено, что, тысячи километров далеко и звонят Вам, потому что его компьютер не закончит этап загрузчика.Что дальше? Существует гораздо меньше ресурсов о поиске и устранении неисправностей Wubi, чем с традиционной Основанной на личинке двойной загрузкой.

  • Точно так же, если Вы нуждаетесь к поиску и устранению неисправностей или спасаете систему с живым CD, Wubi уменьшает Ваши опции.

  • Увеличение размера изображения раздела Wubi не поддерживалось в прошлый раз, когда я смотрел.

  • Wubi вызывает маленькую потерю производительности. (Но если Вы даже рассматриваете Wubi, Вы, вероятно, не заботитесь.)

  • Если Windows завинчивает свою файловую систему, Вы теряете Linux также. (Хотя я получаю чувство, что NTFS надежен в эти дни.)

Мой совет

Только используйте Wubi, если у Вас есть неопровержимый довод.

Если Вы плохо знакомы с Linux и не уверены, что хотите сохранить его, можно идти вперед и использовать Wubi. Но считайте это временной установкой, не вкладывайте капитал в нее. Если Вы находите, что хотите начать настраивать вещи, или если Вы сталкиваетесь с какой-либо технической проблемой, выбрасываете установку Wubi и запускаетесь по надлежащему разделу. Это не будет вредить Вашему разделу Windows (на самом деле, это будет влиять на Вашу установку Windows еще меньше, чем Wubi).

Если у Вас есть определенное требование укрывательства по политическим причинам (“мы не хотим зловонного' Linux в нашей сети”), Wubi является жизнеспособным, но не обязательно беспрепятственным.

Обратите внимание, что для колеблющихся или осторожных установок, альтернатива в некоторых вариантах использования должна запустить Linux в виртуальной машине: любой coLinux (виртуализированный Linux, работающий на Windows), например, с andLinux (Ubuntu на coLinux); или более общая технология VM, такая как VirtualBox или VMware.

41
09.12.2011, 17:38
4 ответа

Linux обеспечивает tmpfs устройство, которое любой пользователь может использовать, /dev/shm. Это не смонтировано к определенному каталогу по умолчанию, но можно все еще использовать его в качестве один.

Просто создайте каталог в /dev/shm и затем символьная ссылка это к тому, везде, где Вы хотите. Можно дать созданному каталогу любые полномочия, которые Вы выбираете, так, чтобы другие пользователи не могли получить доступ к нему.

Это - поддержанное устройство RAM, поэтому что существует в памяти по умолчанию. Можно создать любые каталоги, в которых Вы нуждаетесь внутри /dev/shm

Естественно, файлы, помещенные здесь, не переживут перезагрузку, и если Ваша машина начинает подкачивать, /dev/shm не поможет Вам.

Солярис, параллельный /dev/shm /tmp который является разделом типа "подкачки" и также базирующейся памятью. Как с /dev/shm, произвольные пользователи могут создать файлы в /tmp на Солярисе.

OpenBSD имеет возможность использовать базирующуюся память, монтируются также, но не имеет тот в наличии по умолчанию. Команда mount_mfs является availabe суперпользователю.

Я не уверен в другом *BSDs.

51
27.01.2020, 19:35
  • 1
    символьная ссылка мог решить где проблема. –  enzotib 09.12.2011, 00:37
  • 2
    D'oh... забыл о тех противных небольших символьных ссылках. –  gabe. 09.12.2011, 00:39
  • 3
    @enzotib зафиксировал ее! –  gabe. 09.12.2011, 00:41
  • 4
    Кажется, нет a /dev/tmpfs в системе (ни один не делает мою собственную систему, которая имеет 3.0.0 ядра). Вы уверены, что это не что-то созданное Вашим распределением? –  bitmask 09.12.2011, 02:46
  • 5
    Не уверенный, если этот apply's другим также, но на моей текущей версии человечности это, кажется, изменилось на /run и возможно /run/shm Потребность заняться расследованиями далее прежде, чем обновить мой ответ. –  gabe. 07.11.2012, 23:36

Ваша система может иметь тот, уже доступный; недавним системам Linux на основе Glibc всегда монтировали tmpfs на /dev/shm.

Если Ваша система не имеет один, или это является слишком маленьким, то файловая система, не смонтированная корнем в значительной степени, означает FUSE. На Ubuntu необходимо быть в fuse группа для использования FUSE. Просматривая доступные файловые системы FUSE, я вижу только Ramfuse, от которого, к сожалению, отказываются в восходящем направлении.

10
27.01.2020, 19:35

В целом, нет, файловые системы могут только быть смонтированы корнем. Если Вы позволяете пользователю помещать файловые системы произвольно, это по существу дает им корень. (Простой способ: смонтируйте один по / и т.д., поместите свой собственный passwd и тень там, su с новым паролем root, который Вы просто создали, размонтирование),

Если Вы хотите tmpfs в конкретном местоположении, Вы могли бы добавить его к /etc/fstab, с флагами noauto,user и затем пользователь смог бы смонтировать его (но не особенно ясный, почему Вы просто не автосмонтируете его),

Если пользователям нужен произвольный tmpfs's, то у Вас есть пара опций:

  • используйте подкаталоги одного tmpfs. Вероятно, лучший подход. Вам действительно, вероятно, не нужен больше чем один tmpfs.
  • создайте сценарий, который создаст каталог и смонтирует tmpfs по нему и затем распечатает, куда он поместил его. Использовать sudo позволить пользователям выполнять его. Удостоверьтесь, что Вы не позволяете пользователю выбирать произвольные пути.
5
27.01.2020, 19:35

/ dev / shm небезопасен

... в системах с активным свопом ! Скорее всего, очень высока , что на вашем компьютере эта функция включена.

Есть лучшая, безопасная , стандартная альтернатива - ramfs . Вы можете использовать ramfs , если вы планируете использовать пространство с резервной памятью для временного хранения конфиденциальных данных, таких как закрытые ключи, кошельки Bitcoin или Ethereum и т. Д.

ramfs лучше, чем tmpfs , когда речь идет о безопасности, поскольку ramfs данные никогда никогда не меняются местами (сохраняются на физический диск), а tmpfs может быть замененным. Затем третьи стороны могут проверить пространство подкачки и извлечь конфиденциальные данные .

Решение

Вы можете подготовить монтирование ramfs , чтобы любой непривилегированный пользователь мог монтировать / размонтировать его по требованию.

Для этого вам потребуются привилегии root , один раз . Попросите администратора вашей системы настроить это за вас, если у вас нет прав root.

Сначала вам нужно добавить строку в / etc / fstab . Строка в fstab может выглядеть так:

none    /mnt/ramfs    ramfs    noauto,user,size=1024M,mode=0770    0    0
  • / mnt / ramfs - точка монтирования, в которую будет монтироваться файловая система ramfs. Справочник должен существовать.Параметр
  • noauto предотвращает его автоматическую установку (например, при загрузке системы).
  • пользователь делает это доступным для обычных пользователей.
  • size устанавливает размер этого «ramdisk» (здесь вы можете использовать M и G ).
  • режим является очень важным , с восьмеричным кодом 0770 только root и пользователь, который смонтировал эту файловую систему, смогут читать и писать в нее, а не другие (вы также можете использовать другой код по вашему выбору, но будьте в этом уверены!).

Когда это будет сделано, любой пользователь сможет установить это по требованию.

После того, как какой-либо пользователь смонтирует это, новая файловая система размером 1024 МБ ramfs будет создана и смонтирована в / mnt / ramfs / . Он будет принадлежать root: пользователь . После того, как он / она отключит его или систему перезагрузит, эта файловая система на основе RAM исчезнет со всеми всеми данными. Что круто.

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

установить:

mount /mnt/ramfs/

размонтировать:

umount /mnt/ramfs/

P.S. Если вы пытаетесь поместить файлы rsync в корень вновь смонтированных / созданных ramfs как пользователь без полномочий root, вы можете столкнуться с ошибкой rsync: некоторые файлы / атрибуты не были переданы (см. Предыдущий error) (код 23) на main.c (1183) [sender = 3.1.1] error. Это вполне нормально и ожидаемо, потому что ваш пользователь не владеет корнем файловой системы RAM.Решение простое, просто создайте там какой-нибудь каталог, например / mnt / ramfs / copied / и rsync в нем.

П.П.С. Проверено на Debian 9. Уверен, что он будет работать и на Ubuntu.

15
27.01.2020, 19:35

Теги

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