Боже, корень, в чем разница? ars.userfriendly.org/cartoons/?id=19981111 С практической точки зрения , файл, который впоследствии даже root не может удалить, будет мечтой авторов вредоносных программ.
Дэн возится от Firelight
Я согласен, что @DanNeely Plus форматирование - это тоже форма удаления файла;)
Rinzwind
Ответы:
3
Пытаться:
chattr +i filename
Тем не менее, это сделает файл неспособным к удалению даже rootпользователем - используйте с осторожностью.
при этом touch test && chattr +i testвыдает ошибку; chattr: Operation not permitted while setting flags on test, Вам нужно sudoдля этого. Рядом с этим: все еще можно удалить файл: sudo chattr -i test && rm testработает.
Rinzwind
23
Нет, это невозможно. Для обычных пользователей невозможно удалить файл: обязательно.
Вам нужно sudoбудет запретить пользователям удалять файлы. Ваш администратор всегда сможет удалить файл.
sudo chattr +i testможет предотвратить удаление, но требует sudo. Простое sudo chattr -i testпозволяет удалить файл. Ни один другой пользователь, кроме администратора, не может использовать chattr.
И ... просто перезагрузка и переход в режим восстановления позволит этому человеку иметь возможность удалить этот файл. Это было бы угрозой безопасности, если бы был метод, который никогда не сможет удалить файл.
Это немного грубо, но это близко - если вы удалите права на запись в каталог, файлы внутри него не могут быть удалены. И это не требует, sudoесли у вас есть это:
Это выглядит именно так, как хотел ОП. (Хотя, почему они этого хотели, я не уверен.) Пользователи могут читать, изменять и запускать файлы, но не могут отсоединять (удалять) их.
Элия Каган
8
Чтобы удалить файл, вам нужно разрешение на запись во все каталоги, с которыми связан файл. Чтобы отсоединить его от одного каталога, вам нужно разрешение на запись в этот каталог.
Таким образом, пока вы даете разрешение на запись (или даже право собственности) на файл, но не на каталог или каталоги, с которыми связан файл, этот файл не может быть удален.
Лучший способ добиться этого - связать этот файл с каталогом, который принадлежит root и который никто не может записать. Вместо этого вы можете сделать его владельцем, что означает, что вы и пользователь root можете удалить его.
Это позволит другим пользователям связывать этот файл с другими каталогами и впоследствии отсоединять его оттуда, но они по-прежнему не смогут удалить файл, поскольку смогут удалить его из вашего собственного каталога.
Обратите внимание, что для того, чтобы это работало полностью, необходимо было контролировать права на запись каждого компонента пути к файлу. Потому что, например, если файл есть, /a/b/the-fileи /a/bникто не может записать его /a, но у всех есть права на запись , тогда они могут переименовать /a/bчто-то другое, воссоздать свои собственные /a/bи создать свои собственные /a/b/the-fileтам.
Ответы:
Пытаться:
Тем не менее, это сделает файл неспособным к удалению даже
root
пользователем - используйте с осторожностью.источник
touch test && chattr +i test
выдает ошибку;chattr: Operation not permitted while setting flags on test
, Вам нужноsudo
для этого. Рядом с этим: все еще можно удалить файл:sudo chattr -i test && rm test
работает.Нет, это невозможно. Для обычных пользователей невозможно удалить файл: обязательно.
Вам нужно
sudo
будет запретить пользователям удалять файлы. Ваш администратор всегда сможет удалить файл.sudo chattr +i test
может предотвратить удаление, но требуетsudo
. Простоеsudo chattr -i test
позволяет удалить файл. Ни один другой пользователь, кроме администратора, не может использоватьchattr
.И ... просто перезагрузка и переход в режим восстановления позволит этому человеку иметь возможность удалить этот файл. Это было бы угрозой безопасности, если бы был метод, который никогда не сможет удалить файл.
источник
Это немного грубо, но это близко - если вы удалите права на запись в каталог, файлы внутри него не могут быть удалены. И это не требует,
sudo
если у вас есть это:Таким образом, вы можете установить разрешения для самого файла, как вы хотите.
Кроме того, как утверждает @Rinzwind, есть много способов обойти это.
источник
Чтобы удалить файл, вам нужно разрешение на запись во все каталоги, с которыми связан файл. Чтобы отсоединить его от одного каталога, вам нужно разрешение на запись в этот каталог.
Таким образом, пока вы даете разрешение на запись (или даже право собственности) на файл, но не на каталог или каталоги, с которыми связан файл, этот файл не может быть удален.
Лучший способ добиться этого - связать этот файл с каталогом, который принадлежит root и который никто не может записать. Вместо этого вы можете сделать его владельцем, что означает, что вы и пользователь root можете удалить его.
Это позволит другим пользователям связывать этот файл с другими каталогами и впоследствии отсоединять его оттуда, но они по-прежнему не смогут удалить файл, поскольку смогут удалить его из вашего собственного каталога.
Обратите внимание, что для того, чтобы это работало полностью, необходимо было контролировать права на запись каждого компонента пути к файлу. Потому что, например, если файл есть,
/a/b/the-file
и/a/b
никто не может записать его/a
, но у всех есть права на запись , тогда они могут переименовать/a/b
что-то другое, воссоздать свои собственные/a/b
и создать свои собственные/a/b/the-file
там.источник