Replies (23)

  • @schors, Сделать её родителя RO

    lynn@x220:/tmp/x$ ll
    total 12
    dr-xr-xr-x 3 lynn lynn 4096 Dec 18 19:06 ./
    drwxrwxrwt 13 root root 4096 Dec 18 19:07 ../
    drwxrwxr-x 2 lynn lynn 4096 Dec 18 19:07 y/
    lynn@x220:/tmp/x$ rmdir y
    rmdir: failed to remove ‘y’: Permission denied
    lynn@x220:/tmp/x$ touch y/qweqwe
    lynn@x220:/tmp/x$ ls y/
    qweqwe sad
  • @Lynn, lynn@x220:/tmp/x$ chmod 775 .
    lynn@x220:/tmp/x$ rmdir y
    rmdir: failed to remove ‘y’: Directory not empty

    Вот теперь по другому ругается
  • @Lynn, а как быть, если в директории выше нужно чтобы другие соседние папки можно было удалять и/или файлы/директории создавать?
  • @Shumaher, В таком случае видимо надо куда-то в дебри ACL лезть, но про это я ничего не знаю.
  • @schors, 1. Можешь просто организовать структуру директорий так, чтобы права на удаление в пределах одной директории были униформны. Вставить лишний подкаталог несложно.
    2. Можешь заморочиться с ACL
    3. Если просто надо гарантировать что что-то не удалят, можно поставить флаг файловой системы immutable
    chattr +i
    Я так например борюсь с произволом cpanel
  • @gbdj, только он внутри ничего не даст удалять
  • @schors, Сделать +t, как /tmp?
  • @kapsh, и?
  • @gbdj, банально, мне надо в /home/user сделать tmp, чтобы никто не удалил и не переименовал его. при этом оставить возможность user писать в /home/user
  • @schors, экх никак?
  • @seeker, экх?
  • @schors, Внешняя (владелец 1) и внутреняя директория (владелец 1), внутренняя на rw владельцу 2 через общую группу с владельцем 1 и со стикибитом для владельца 1.
  • @schors, Да, действительно, это не совсем то, что ты хочешь.
  • @OmskLUG, ... Омские линуксоиды всегда так делают.
  • @schors, А ты внутри создай еще один подкаталог куда он сможет гадить, но как раз и не сможет этот каталог удалить
  • @gbdj, т.е. только через сервисный подкаталог?
  • @schors, А если сделать такой финт ушами с mount --bind?

    lynn@x220:~/tmp$ sudo mount --bind new new
    lynn@x220:~/tmp$ rm -r new
    rm: cannot remove ‘new’: Device or resource busy
    lynn@x220:~/tmp$ touch new/2
    lynn@x220:~/tmp$ ls new
    2
    lynn@x220:~/tmp$ sudo umount new
    lynn@x220:~/tmp$ ls new
    2
  • @schors, Первый вариант: не даешь пользователю писать в /home/user/, разрешаешь только в /home/user/www/, /home/user/tmp/, /home/user/trash/, но например /home/user/logs/ разрешаешь только смотреть. Классический тупой вариант.
    Второй вариант для любителей выпендриваться: Запрещаем стирать tmp в каталоге принадлежащем юзерю либо при помощи ACL, либо chattr +i. В последнем случае создаем дополнительный подкаталог, да.
  • @Lynn, а не умрет он с таким количеством маунт? у меня около 20 таких папочек у каждого и каждый около 500 на машинку
  • @gbdj, ты помнишь петерхостовую структуру? я хочу разрешить писать в site{1..N} при этом запретив переименовывать и вот это сайт, и public_html и так далее.
  • @schors, Зачем ? Нахера ? Ну и что что юзерь не может писать в верхний уровень своего хомячка, где есть только стандартный набор каталогов, зато не возникает куча лишних проблем. Схема проста. Ты точно хочешь сношаться с ACL ? Где профит ?
  • @schors, В процессе маунта ноутбук хотел взлететь, но может это потому что я сдуру создал все 10000 папок в одной папке. На 4100 папке я не прервал процесс. Но сейчас у меня смаунчено около 4000 папок и ноуту пофиг.
  • @gbdj, вопросы раз в месяц "мой ёбаный зенд фреймворк долбит меня в глаза"