Потребуйте, чтобы sudo удалил файлы, но все еще позволил писать

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

У меня все еще есть вещи, пишущие в набег все время, таким образом, я не хочу должным быть использовать sudo, чтобы сделать это. Но действительно ли возможно установить полномочия так, чтобы запись была позволена, но файлы удаления не?

Я предполагаю, что это также потребует, чтобы я использовал sudo для команд mv, но это не проблема

Дополнительная информация:

Набег использует btrfs raid1

ОС находится на отдельном диске (сервер Ubuntu 14.04)

-1
задан 8 October 2014 в 19:57

3 ответа

Вам нужны полномочия записи каталога создать или удалить файлы. Вам нужны полномочия записи файла изменить файл.

Рассмотрение этого дерева:

FolderA: (no write permissions for you)
   - FileX (write permissions)
   - FileY (write permissions)

можно теперь изменить FileX и FileY, но Вы не можете удалить их. И при этом Вы не можете создать FileZ в FolderA.

1
ответ дан 7 October 2019 в 00:04

Я не думаю, что это возможно. Созданием файла и удалением в Unix управляет способность записать в каталог---в основном тот же флаг.

Теперь то, что можно сделать, создают два каталога---один с разрешением записи и другим, ограниченным корнем.

[romano:~/tmp/test] % ls -l
total 8
drwxrwxr-x 2 romano romano 4096 Oct  8 18:06 normal
drwxrwxr-x 2 root   root   4096 Oct  8 18:06 onlyroot

Вы обычно работаете над normal. Предположим, что Вы имеете в нем:

[romano:~/tmp/test/normal] % ls
one.txt  three.txt  two.txt

можно ясно удалить файлы и создать новые; предположите, что Вы хотите защитить" one.txt" от удаления. То, что можно сделать, создает жесткую ссылку на него в onlyroot:

[romano:~/tmp/test/normal] 1 % sudo ln one.txt ../onlyroot

Это создаст другое название one.txt в onlyroot (использование незначительной суммы пространства; файл не копируется). Теперь как обычный пользователь можно удалить one.txt в normal папка, но у Вас будет неприкосновенная версия под onlyroot один.

[romano:~/tmp/test/normal] % ls
one.txt  three.txt  two.txt
[romano:~/tmp/test/normal] % rm one.txt
rm: remove regular empty file ‘one.txt’? y
[romano:~/tmp/test/normal] % cd ..
[romano:~/tmp/test] % cd onlyroot 
[romano:~/tmp/test/onlyroot] % ls
one.txt
[romano:~/tmp/test/onlyroot] % rm one.txt 
rm: remove regular empty file ‘one.txt’? y
rm: cannot remove ‘one.txt’: Permission denied
1
ответ дан 7 October 2019 в 00:04

В моем понимании (на основе https://btrfs.wiki.kernel.org/index.php/Project_ideas#RichACLs_. 2F_NFS4_ACLS ), btrfs поддерживает только традиционные полномочия Unix и POSIX.1e ACLs, и следовательно не может сделать то, что Вы хотите.

Многие/больше всего другие файловые системы поддерживают по крайней мере один из Linux richacls (которому я не верю, находится в магистрали все же), NFSv4 ACLs, ZFS ACLs или Windows ACLs, все из которых позволяют, Вы для специфического отклонения 'удаляете', но я не предполагаю, что Вы были бы готовы бросить функции btrfs только для этого.

, С другой стороны, так как Вы конкретно предназначаете это для принятия мер против простых ошибок, Вы могли бы быть более обеспеченным использованием в своих интересах возможностей снимка btrfs с помощью чего-то как автозащелка.

1
ответ дан 7 October 2019 в 00:04

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

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