2

Я хочу смонтировать tmpfs в /tmp и сделать его доступным для записи пользователям (или конкретному пользователю). Машина Raspberry Pi 3 с Debian 8.0 (Raspian). Что бы я ни пытался, /tmp всегда монтируется с разрешениями только для root .

Я пробовал следующие записи в fstab :

tmpfs           /tmp            tmpfs   nosuid,nodev,noatime   0       0
tmpfs           /tmp            tmpfs   nosuid,nodev,noatime,user,uid=1000,gid=1001,mode=1777   0       0

Это всегда приводит к следующим разрешениям:

$ ls -alh /tmp
total 36K
drwxr-xr-x 14 root  root   500 Jul 19 10:17 .

Но если я смонтирую tmpfs в любое другое место вместо /tmp (например, /var/opt), он будет доступен для записи всем:

$ ls -alh /var/opt
total 4.0K
drwxrwxrwt  2 root root   40 Jul  3 12:18 .

Как я могу смонтировать tmpfs в /tmp чтобы он был доступен для записи всем?

Выход mount

tmpfs on /tmp type tmpfs (rw,nosuid,nodev,relatime)
tmpfs on /var/opt type tmpfs (rw,nosuid,nodev,relatime)

Если установлен со всеми параметрами uid, gid и mode:

tmpfs on /tmp type tmpfs (rw,nosuid,nodev,noexec,noatime,uid=1000,gid=1001)

Редактировать: устанавливает ли какая-либо служба Linux права доступа 755 для каталога /tmp при загрузке? Потому что эти разрешения установлены, даже если я просто запишу symlink /tmp на /var/opt , что само по себе было доступно для записи любому. После загрузки по символической ссылке из /tmp в /var/opt разрешения для /var/opt устанавливаются на 755.

2 ответа2

1

Моя настройка tmpfs:

tmpfs           /tmp            tmpfs   rw,mode=1777,size=12g

Размер предназначен для системы с гораздо большим объемом памяти и подкачки, которые вы, вероятно, будете иметь. noatime или relatime не должны иметь значения, так как иноды будут структурами памяти и вряд ли будут записаны на диск. tmpfs выгружается для замены.

Разрешения 755 для /tmp , вероятно, являются разрешениями по умолчанию для точки монтирования. Традиционные разрешения - 1777, позволяющие создавать файлы кому угодно, но защищающие их от манипуляций со стороны других пользователей.

1

Ваша оригинальная строка /etc/fstab верна:

tmpfs /tmp tmpfs nosuid,nodev,noatime 0 0

Для символических ссылок на /tmp , таких как /var/spool , /var/tmp и, возможно, /var/opt (не уверен), удалите символическую ссылку, замените ее пустым каталогом и добавьте новую строку в /etc/fstab который создает другое крепление, например:

tmpfs /var/spool tmpfs  defaults,noatime,nosuid,nodev,noexec,mode=0755,size=64M 0 0

Чтобы найти все такие символические ссылки:

sudo find / -lname '/tmp*' 2>/dev/null

Причина, по которой это необходимо, заключается в том, что при загрузке изменяются разрешения для некоторых каталогов, таких как /var/spool , а chmod для символической ссылки изменяет целевой каталог.

См. Также Почему /tmp монтируется с разрешениями 0755, если fstab имеет 1777?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .