Папка Linux, где пользователи не могут удалять файлы

Я работаю над проектом файлового сервера для школы и использую samba для совместного использования папок. Я играл с правами доступа к папке, но я не могу понять, как сделать каплю только как папку. Вот чего я хочу достичь:

  • Владелец (учетная запись сервера): Полный контроль (chmod number 7xx)
  • Группа (пользователи, которые входят на сервер samba): Только место (отбрасывать) ) файлы, так что это означает, что не следует открывать / редактировать / удалять файлы в папке (chmod number x?x)
  • другие: нет доступа (chmod number xx0)

Я пробовал много разных Настройки chmod, но так и не достигли желаемого результата. Это вообще возможно? Я много гуглил, но не смог найти окончательного ответа.

Может быть, вы можете установить права доступа к файлам, когда они находятся в папке?

Если вам нужна дополнительная информация о конфигурации samba или о чем-то еще, пожалуйста, спросите!

Спасибо за помощь вне!

1
задан 8 October 2014 в 19:31

3 ответа

Попробуйте эту процедуру.

Создайте совместно используемую папку и дайте правильное разрешение:

  mkdir /pathYouWant/share
  chmod 770 /pathYouWant/share

Это не предоставляет доступа к другому.

  chmod +t /pathYouWant/share

Этот режим, согласно chmod странице руководства:

   The  restricted  deletion  flag  or  sticky  bit is a single bit, whose
   interpretation depends on the file type.  For directories, it  prevents
   unprivileged  users  from  removing or renaming a file in the directory
   unless they  own  the  file  or  the  directory

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

  create mask = 440
  directory mask = 550

Windows-программы не должны пытаться удалить файлы только для чтения если delete readonly опция установлена на да.

  delete readonly = no

Также, если Вы хотите скрыть весь файл в папке доли:

  veto files = /*/
  delete veto files = no

Согласно руководству самбы они директива:

Что происходит, если пользователь пытается удалить каталог, который содержит файлы, на которые накладывают вето? Это - то, где удалить опция файлов вето входит. Если этот булев параметр установлен на да, пользователь может удалить и регулярные файлы и файлы, на которые накладывают вето, в каталоге, и сам каталог удален. Если опция установлена на не, пользователь не может удалить файлы, на которые накладывают вето, и следовательно каталог не удален также. С точки зрения пользователя каталог кажется пустым, но не может быть удален.

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

Таким образом, мы решаем следовать за the_Seppi предложением для выполнения задачи, и Bram Driesen сделал сценарий, который изменяет принадлежность файла ПК хоста.

Он использовал incron запустить сценарий каждый раз, когда файл помещается в папку, после этого как руководство для установки его.

1
ответ дан 8 October 2014 в 19:31

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

<час>

идея, которую я когда-то использовал:

Вы создаете cronjob, который рекурсивно удаляет разрешение записи каждого файла в дереве каталогов (как каждый файл в /home/guest).

Примечание, которое Вы не можете просто использовать chmod g-w -R /home/guest. Это взяло бы запись, откусил каталоги также, лишив возможности помещать новые файлы туда. Таким образом, необходимо было бы выполнить итерации по каждому файлу и удалить, это - бит записи группы.

интервал cronjob выполнения ваше дело - тогда я установил его на 10 минут. Я не знаю Вашу среду, таким образом, я не могу дать Вам рекомендацию.

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

0
ответ дан 8 October 2014 в 19:31

Мы можем изменить файлы и папки, но не можем удалить.

Для удаления атрибутов выполните следующие команды:

Для файлов:

sudo chattr -R -a file.txt

каталоги For:

sudo chattr -R -a dir1/
0
ответ дан 7 October 2019 в 01:05

Другие вопросы по тегам:

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