Как предотвратить удаление каталога пользователем?

Предположим, каталог dir1 создан sudo на рабочем столе.

sudo mkdir dir1

Затем я применил chown и chmod следующим образом:

sudo chown root:root dir1
sudo chmod go-rwx dir1

Теперь dir1 доступен только с владельцем root.

$ ls -ld dir1
drwx------ 2 root root 4096 Jul 29 19:21 dir1

Если пользователь ($USER = pandya) попытается удалить dir1 с помощью GUI nautilus (без sudo) , то он не сможет что нормально .

enter image description here

Но если попытаться удалить с помощью терминала, то он может, что не в порядке: -

  • rm -r (без sudo):

     $ rm -r dir1
     rm: descend into write-protected directory ‘dir1’? Y
     rm: remove write-protected directory ‘dir1’? Y
     $
    
  • И еще проще с rmdir! (без sudo):

    $ rmdir dir1
    $ 
    

Таким образом, как предотвратить удаление пользователя dir1, чем sudo?

[необязательно]
Моя конечная цель: только владелец может удалить каталог, группу и прочее, только чтение / выполнение.

4
задан 30 July 2014 в 16:55

2 ответа

То, что сказало Накопитель Класса в , его ответ корректен, но он не сделал, решило Вашу проблему. Чтобы препятствовать тому, чтобы каталог был удален пользователем, который владеет всеми правами к родительскому каталогу (/home/pandya в Вашем случае), необходимо использовать эти chattr команда.

Вот пример:

$ sudo mkdir dir1
$ sudo chattr +i dir1
$ rmdir dir1
rmdir: failed to remove ‘dir1’: Operation not permitted
$ rm -r dir1
rm: remove write-protected directory ‘dir1’? y
rm: cannot remove ‘dir1’: Operation not permitted
$ chattr -i dir1
chattr: Permission denied while setting flags on dir1

И в Наутилусе:

enter image description here

читайте man chattr для большего количества информации

5
ответ дан 30 July 2014 в 16:55

На самом деле каталоги являются специальными файлами.

В каталоге /home/user, право на создание или удаление записей (таких как файлы или каталоги) определяется правами на /home/user само, не правами на записи.

В Вашем случае, было бы лучше обеспечить подкаталог, такой как /home/user/fixed, и установить права на это к r-x. Затем пользователь будет не мочь создать или удалить файлы или каталоги там. Он может все еще смочь отредактировать, спуск, и т.д. на основе прав на отдельные файлы и каталоги в /home/user/fixed.

2
ответ дан 30 July 2014 в 16:55

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

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