Я хотел бы запретить двум пользователям без полномочий root в одной системе Linux обмениваться файлами друг с другом (используя / tmp). Возможно ли это как-нибудь?
Если я ограничиваю /tmp
к 0770
(root:root
как владелец: группа) и определите индивидуальный TMPDIR
через export TMPDIR=~/tmp; mkdir -p $TMPDIR
в самом начале процесса загрузки (скажем, через rc[35].d
скрипт), то у GConf2 возникают проблемы. Я получаю типичную ошибку:
/usr/libexec/gconf-sanity-check-2 exited with status 256
Кажется, что все работает нормально на уровне выполнения 3 (без графического интерфейса) ... хотя я мог ошибаться, заключая это преждевременно, и проблемы могут появиться позже и на уровне выполнения 3.
Мой опыт работы с TMPDIR
похоже, указывает на то, что он либо не работает, либо недостаточно документирован, либо не поддерживается всеми приложениями Gnome.
Плохая идея, как указывали другие. Вы можете использовать ACL для получения аналогичного результата:
groupadd tmpdir-denied
setfacl -m g:tmpdir-denied:- /tmp # the specific group has no access to /tmp
getfacl /tmp # see permissions
Не поймите меня неправильно. ACL сломает вещи тоже, если не сейчас, то в будущем, но, надеюсь, влияние будет несколько ограниченным. Я бы как минимум проверил, могу ли я (1) сделать резервную копию (2) восстановить (3) систему исправлений после этих изменений.
Это было бы крайне плохой идеей. Он нарушает чрезвычайно распространенный (повсеместный) и давний (как «с незапамятных времен») набор предположений, которые, вероятно, укоренились во многих приложениях и утилит.
Было бы гораздо лучше создать chroot-тюрьмы или виртуальные подсистемы и ограничить этим пользователей, а не пытаться просто заблокировать их из / tmp.
TMPDIR это всего лишь соглашение, а не стандарт. Программы UNIX / Linux могут исполняться или нет по прихоти их авторов и сопровождающих.
Я не думаю, что менять /tmp
разрешения. Многие приложения создают временные файлы в /tmp
и они не обязательно работают с привилегиями root. Так что, если вы это сделаете, вы их сломаете.