Предположим, каталог 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
) , то он не сможет что нормально .
Но если попытаться удалить с помощью терминала, то он может, что не в порядке: -
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
?
[необязательно]
Моя конечная цель: только владелец может удалить каталог, группу и прочее, только чтение / выполнение.
То, что сказало Накопитель Класса в , его ответ корректен, но он не сделал, решило Вашу проблему. Чтобы препятствовать тому, чтобы каталог был удален пользователем, который владеет всеми правами к родительскому каталогу (/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
И в Наутилусе:
читайте man chattr
для большего количества информации
На самом деле каталоги являются специальными файлами.
В каталоге /home/user
, право на создание или удаление записей (таких как файлы или каталоги) определяется правами на /home/user
само, не правами на записи.
В Вашем случае, было бы лучше обеспечить подкаталог, такой как /home/user/fixed
, и установить права на это к r-x
. Затем пользователь будет не мочь создать или удалить файлы или каталоги там. Он может все еще смочь отредактировать, спуск, и т.д. на основе прав на отдельные файлы и каталоги в /home/user/fixed
.