Как я могу защитить файл от пользовательских изменений?

15

Я использую Ubuntu 12.04 и хочу защитить некоторые изображения другого пользователя с помощью команды su (у меня есть права администратора). Как я могу защитить файл с помощью терминала, в то же время позволяя остальным пользователям читать его?

Jatttt
источник
Я хочу, чтобы кто-нибудь мог просмотреть его, бот не может редактировать или удалять его
Джеттт
@ user222588 звучит достаточно ясно, не стоит беспокоиться
Бруно Перейра
Метод зависит, где находятся файлы, где они находятся? USB, ваш главный жесткий диск?
Брайам

Ответы:

25

Ubuntu по умолчанию использует формат файловой системы EXT4 (я предполагаю, что здесь мы не говорим ни о чем другом).

Если вы не хотите вступать во владение файлом, не лишив пользователя возможности читать этот файл, вы можете начать с разрешения ему читать, но не записывать в этот файл:

chmod a-w,ug+r foo_file

описание: изменить права доступа к файлам, все не могут писать , пользователь + группа могут читать

Затем можно сделать файлы неизменяемыми, чтобы даже пользователи с правами root не могли изменить их, используя следующее:

sudo chattr +i foo_file

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

sudo chattr -i foo_file

и тогда вы сможете что-то с этим сделать.

Плюсом использования этого является то, что большинство пользователей (и администраторов) никогда не сталкивались с неизменяемыми файлами в Linux.

То есть пользователь увидит это при попытке удалить (или изменить) файл:

~> sudo chmod a-w,ug+r asd
~> ll asd
-r--r--r-- 1 bruno bruno 156 feb 21 20:46 asd
~> sudo chattr +i asd
~> chmod +w asd
chmod: changing permissions of ‘asd’: Operation not permitted
~> rm asd
rm: remove write-protected regular file ‘asd’? y
rm: cannot remove ‘asd’: Operation not permitted
~> sudo rm asd
rm: cannot remove ‘asd’: Operation not permitted

все еще будучи в состоянии прочитать это:

~> cat asd
asd
...
Videos

После того, как вы выпустили chattr +iфайл, «заблокированный», никакие изменения не могут быть внесены, пока пользователь с правами root не отключит его chattr -i.

Бруно Перейра
источник
Приветствую моего друга. такое хорошее объяснение.
rɑːd 17:
8

Просто используйте, как показано ниже в вашем терминале ( CTRL+ ALT+ T)

chmod 700 -R /path/to/directory
rɑːdʒɑ
источник
что не так с этим? голосование "против" с уважительной причиной высоко ценится.
rʒɑdʒɑ
1

Попробуйте следующую команду на терминале,

chmod u-rw /path/to/directory

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

chmod u+rw /path/to/directory

Чтобы отменить изменения, выполните указанную выше команду.

Авинаш Радж
источник
1
пожалуйста, укажите причину понижения.
Авинаш Радж
2
Я полагаю, что отрицательное влияние заключается в том, что вы забираете права у владельца, а не у других пользователей и групп.
Бен Фойгт
0

Если вы хотите зашифровать файл, вы можете использовать bcryptдля шифрования и расшифровки файла. Он использует шифрование файла blowfish.

Тип: sudo apt-get install bcryptустановить.

После установки введите его sudo bcrypt file-nameдля шифрования.

G_p
источник
0

Я рекомендую использовать Truecrypt для создания зашифрованного «съемного диска» в 1 файл. Если вы создадите, например, раздел 1GB Truecrypt, и вы сможете защитить этот файл паролем. (Экспертная опция: вы можете установить 2 пароля для этого файла: с первым паролем вы видите нормальную часть файла, а с паролем 2 вы видите скрытую часть). Вы можете смонтировать этот файл в Linux, Mac или в Windows (монтировать на диск e:) и вы покажете этот файл объемом 1 ГБ как pendrive / flash-накопитель, и вы сможете размонтировать его, когда захотите.

Если вы создаете этот файл объемом 1 ГБ (или любого размера, или полный диск, или pendrive), вы можете добавить любое расширение для этого файла, чтобы скрыть его. (Никогда не размещайте этот файл в своем домашнем каталоге как secret.truecrypt.file.with.pwd lol)

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

Например, чтобы скрыть этот файл:

/usr/lib/libc8.2.so
/usr/lib/libxml24.so.9.1.3

Другие временные имена файлов:

Win386.swp
nsz17BE.tmp
mmc00C1B00C.xml
jusched.log
IMT211.xml
i4j8470767517827925011.tmp
FTP7F0.tmp
e4j3B.tmp
  • Выберите одну схему и измените номера для имени файла.

  • а также установить права ... и после того, как все сделано, удалить историю команд консоли

  • При таком решении обычный пользователь никогда не найдет ваш секретный файл.

  • В Pendrive создайте папку TEMP и используйте имя временного файла, как примеры файлов. и сделать несколько резервных копий с другим именем ...

Вы можете установить truecrypt, если хотите, например:

sudo add-apt-repository ppa:michael-astrapi/ppa
sudo apt-get update
sudo apt-get install truecrypt

Больше информации на домашней странице Truecrypt

Падший ангел
источник
0

Если под защитой вы имеете в виду вообще запретить любые изменения этих файлов, рассмотрите возможность использования утилиты chattr . У него есть опция помечать файлы как неизменяемые (их нельзя изменить).

chattr +i /home/username/pictures/example1.png

Это предотвратит удаление или изменение всеми пользователями и даже пользователем root любых файлов, установленных как неизменяемые.

Вы можете отменить это действие, заменив «+ i» на «-i».

Грэм Г
источник