Как предотвратить удаление файла из папки пользователя?

Машинный код, сгенерированный вашим компилятором, не должен быть читаемым человеком, а полностью оптимизирован для работы как можно быстрее на вашем процессоре.

Однако вы можете читать символы из двоичных файлов, подобных этому :

$ nm main.o | c++filt         
                 U _Unwind_Resume                                                                                                    
                 U FactoryImpl::FactoryImpl()                                                                                        
                 U UI::UI(Subject*)                                                                                                  
                 U operator delete(void*)                                                                                            
                 U operator new(unsigned long)                                                                                       
                 U __gxx_personality_v0                                                                                              
0000000000000000 T main

Примечания:

nm и c++filt из пакета binutils, который вы, вероятно, уже имеете при разработке. вы можете просматривать только символы, если они не удалены параметрами компилятора.

может

9
задан 5 April 2011 в 06:22

10 ответов

Можно сделать файл невозможным для удаления, даже от root, в файловой системе ext2 / 3/4, изменив атрибут файловой системы файла:

$ cd
$ touch dummy
$ sudo chattr +i dummy
$ rm dummy
rm: remove write-protected regular empty file `dummy'? y
rm: cannot remove `dummy': Operation not permitted
$ sudo rm dummy
[sudo] password for enzotib: 
rm: cannot remove `dummy': Operation not permitted
$

Дополнительная информация о [ f3] и lsattr.

Если позже вы захотите удалить файл, перед использованием rm вы должны использовать

sudo chattr -i dummy

.

Для этого есть два недостатка:

вы должны быть root для изменения атрибутов; вы можете забыть об атрибутах этого файла или о том, как их изменить, чтобы, похоже, вы больше не можете удалять файл.
13
ответ дан 25 May 2018 в 22:15
  • 1
    Отлично! Огромное спасибо. – desgua 5 April 2011 в 19:43
  • 2
    Есть ли способ использовать это и поддерживать другие разрешения? Например, все еще разрешая права пользователя и группы для rwx подкаталогов и файлов. – roydukkey 8 April 2014 в 23:45

Можно сделать файл невозможным для удаления, даже от root, в файловой системе ext2 / 3/4, изменив атрибут файловой системы файла:

$ cd $ touch dummy $ sudo chattr +i dummy $ rm dummy rm: remove write-protected regular empty file `dummy'? y rm: cannot remove `dummy': Operation not permitted $ sudo rm dummy [sudo] password for enzotib: rm: cannot remove `dummy': Operation not permitted $

Дополнительная информация о chattr и lsattr.

Если позже вы захотите удалить файл, перед использованием rm вы должны использовать

sudo chattr -i dummy

.

Для этого есть два недостатка:

вы должны быть root для изменения атрибутов; вы можете забыть об атрибутах этого файла или о том, как их изменить, чтобы, похоже, вы больше не можете удалять файл.
13
ответ дан 25 July 2018 в 22:15

Можно сделать файл невозможным для удаления, даже от root, в файловой системе ext2 / 3/4, изменив атрибут файловой системы файла:

$ cd $ touch dummy $ sudo chattr +i dummy $ rm dummy rm: remove write-protected regular empty file `dummy'? y rm: cannot remove `dummy': Operation not permitted $ sudo rm dummy [sudo] password for enzotib: rm: cannot remove `dummy': Operation not permitted $

Дополнительная информация о chattr и lsattr.

Если позже вы захотите удалить файл, перед использованием rm вы должны использовать

sudo chattr -i dummy

.

Для этого есть два недостатка:

вы должны быть root для изменения атрибутов; вы можете забыть об атрибутах этого файла или о том, как их изменить, чтобы, похоже, вы больше не можете удалять файл.
13
ответ дан 31 July 2018 в 11:00

Можно сделать файл невозможным для удаления, даже от root, в файловой системе ext2 / 3/4, изменив атрибут файловой системы файла:

$ cd $ touch dummy $ sudo chattr +i dummy $ rm dummy rm: remove write-protected regular empty file `dummy'? y rm: cannot remove `dummy': Operation not permitted $ sudo rm dummy [sudo] password for enzotib: rm: cannot remove `dummy': Operation not permitted $

Дополнительная информация о chattr и lsattr.

Если позже вы захотите удалить файл, перед использованием rm вы должны использовать

sudo chattr -i dummy

.

Для этого есть два недостатка:

вы должны быть root для изменения атрибутов; вы можете забыть об атрибутах этого файла или о том, как их изменить, чтобы, похоже, вы больше не можете удалять файл.
13
ответ дан 31 July 2018 в 11:59

Можно сделать файл невозможным для удаления, даже от root, в файловой системе ext2 / 3/4, изменив атрибут файловой системы файла:

$ cd $ touch dummy $ sudo chattr +i dummy $ rm dummy rm: remove write-protected regular empty file `dummy'? y rm: cannot remove `dummy': Operation not permitted $ sudo rm dummy [sudo] password for enzotib: rm: cannot remove `dummy': Operation not permitted $

Дополнительная информация о chattr и lsattr.

Если позже вы захотите удалить файл, перед использованием rm вы должны использовать

sudo chattr -i dummy

.

Для этого есть два недостатка:

вы должны быть root для изменения атрибутов; вы можете забыть об атрибутах этого файла или о том, как их изменить, чтобы, похоже, вы больше не можете удалять файл.
13
ответ дан 2 August 2018 в 03:43

Можно сделать файл невозможным для удаления, даже от root, в файловой системе ext2 / 3/4, изменив атрибут файловой системы файла:

$ cd $ touch dummy $ sudo chattr +i dummy $ rm dummy rm: remove write-protected regular empty file `dummy'? y rm: cannot remove `dummy': Operation not permitted $ sudo rm dummy [sudo] password for enzotib: rm: cannot remove `dummy': Operation not permitted $

Дополнительная информация о chattr и lsattr.

Если позже вы захотите удалить файл, перед использованием rm вы должны использовать

sudo chattr -i dummy

.

Для этого есть два недостатка:

вы должны быть root для изменения атрибутов; вы можете забыть об атрибутах этого файла или о том, как их изменить, чтобы, похоже, вы больше не можете удалять файл.
13
ответ дан 4 August 2018 в 19:47

Можно сделать файл невозможным для удаления, даже из root, в файловой системе ext2 / 3/4, изменив атрибут файловой системы файла:

  $ cd $ touch  dummy $ sudo chattr + i dummy $ rm dummy rm: удалить защищенный от записи обычный пустой файл `dummy '?  y rm: не удается удалить `dummy ': операция не разрешена $ sudo rm dummy [sudo] пароль для enzotib: rm: невозможно удалить` dummy': операция не разрешена $  

Дополнительная информация о chattr и lsattr .

Если позже вы захотите удалить файл, вы должны использовать

  sudo chattr -  i dummy  

перед использованием rm .

Есть два недостатка:

  1. у вас есть чтобы быть прав root для изменения атрибутов,
  2. вы можете забыть об атрибутах этого файла или о том, как их изменить, так что, похоже, вы больше не можете удалять файл.
13
ответ дан 6 August 2018 в 03:51

Можно сделать файл невозможным для удаления, даже из root, в файловой системе ext2 / 3/4, изменив атрибут файловой системы файла:

  $ cd $ touch  dummy $ sudo chattr + i dummy $ rm dummy rm: удалить защищенный от записи обычный пустой файл `dummy '?  y rm: не удается удалить `dummy ': операция не разрешена $ sudo rm dummy [sudo] пароль для enzotib: rm: невозможно удалить` dummy': операция не разрешена $  

Дополнительная информация о chattr и lsattr .

Если позже вы захотите удалить файл, вы должны использовать

  sudo chattr -  i dummy  

перед использованием rm .

Есть два недостатка:

  1. у вас есть чтобы быть прав root для изменения атрибутов,
  2. вы можете забыть об атрибутах этого файла или о том, как их изменить, так что, похоже, вы больше не можете удалять файл.
13
ответ дан 7 August 2018 в 21:47

Можно сделать файл невозможным для удаления, даже из root, в файловой системе ext2 / 3/4, изменив атрибут файловой системы файла:

  $ cd $ touch  dummy $ sudo chattr + i dummy $ rm dummy rm: удалить защищенный от записи обычный пустой файл `dummy '?  y rm: не удается удалить `dummy ': операция не разрешена $ sudo rm dummy [sudo] пароль для enzotib: rm: невозможно удалить` dummy': операция не разрешена $  

Дополнительная информация о chattr и lsattr .

Если позже вы захотите удалить файл, вы должны использовать

  sudo chattr -  i dummy  

перед использованием rm .

Есть два недостатка:

  1. у вас есть чтобы быть прав root для изменения атрибутов,
  2. вы можете забыть об атрибутах этого файла или о том, как их изменить, так что, похоже, вы больше не можете удалять файл.
13
ответ дан 10 August 2018 в 10:01

Можно сделать файл невозможным для удаления, даже из root, в файловой системе ext2 / 3/4, изменив атрибут файловой системы файла:

  $ cd $ touch  dummy $ sudo chattr + i dummy $ rm dummy rm: удалить защищенный от записи обычный пустой файл `dummy '?  y rm: не удается удалить `dummy ': операция не разрешена $ sudo rm dummy [sudo] пароль для enzotib: rm: невозможно удалить` dummy': операция не разрешена $  

Дополнительная информация о chattr и lsattr .

Если позже вы захотите удалить файл, вы должны использовать

  sudo chattr -  i dummy  

перед использованием rm .

Есть два недостатка:

  1. у вас есть чтобы быть прав root для изменения атрибутов,
  2. вы можете забыть об атрибутах этого файла или о том, как их изменить, так что, похоже, вы больше не можете удалять файл.
13
ответ дан 13 August 2018 в 16:21
  • 1
    Отлично! Огромное спасибо. – desgua 5 April 2011 в 19:43
  • 2
    Есть ли способ использовать это и поддерживать другие разрешения? Например, разрешение разрешений пользователя и группы для rwx подкаталогов и файлов. – roydukkey 8 April 2014 в 23:45

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

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