Корень/суперпользователь может считать мои защищенные от чтения файлы?

Плагин линии питания энергии обеспечивает приятно цветной индикатор текущего режима в statusline: http://i.imgur.com/MsuIB.png

В дополнение к другим полезным индикаторам, как текущее ответвление мерзавца.

35
27.02.2014, 03:15
7 ответов

Да, root может:

$ echo Hello you\! > file
$ chmod 600 file
$ ls -l file
-rw------- 1 terdon terdon 11 Feb 27 02:14 file
$ sudo -i
# cat file
Hello you!

В любом случае, даже если root не может читать ваши файлы как root, они всегда могут войти в систему, как вы, без пароль:

$ whoami
terdon
$ sudo -i
[sudo] password for terdon: 
# whoami 
root
# su - terdon
$ whoami
terdon

Итак, root может сменить имя пользователя на любое другое, используя su (или sudo -iu username ), и тогда он сможет делать что угодно совсем не так, как если бы они были вами.

62
27.01.2020, 19:36

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

3
27.01.2020, 19:36

Да, корень может читать защищенный файл, даже если владелец не может (в то время как владелец, очевидно, может снять защиту, а затем прочитать содержимое):

echo "123" > abc.txt
chmod 000 abc.txt
cat abc.txt

cat: abc.txt: Permission denied

su
cat abc.txt

123

Однако при нормальной настройке корень не может получить доступ к защищенным файлам в удаленных файловых системах, таких как NFS ("корневая сквоша").

2
27.01.2020, 19:36

Да, root имеет все права делать что угодно

Здесь вы можете видеть, что я создал тест имени каталога, коснулся файла lonston.txt и перечислил файлы

root@system99:/tmp# mkdir test && touch lonston.txt && ls -l
total 4
-rw-r--r-- 1 root root    0 Feb 27 16:35 lonston.txt
drwxr-xr-x 2 root root 4096 Feb 27 16:35 test

Затем я изменил права доступа к файлу и каталогу обнулить разрешение с помощью 000 и перечислить, чтобы увидеть разрешение

root@system99:/tmp# chmod 000 lonston.txt && chmod 000 test && ls -l
total 4
---------- 1 root root    0 Feb 27 16:35 lonston.txt
d--------- 2 root root 4096 Feb 27 16:35 test

Тогда даже я могу записать в файл и прочитать файл с помощью cat

root@system99:/tmp# echo "Yes root have all Privileges than other user's, let we see the permission of user's too" > lonston.txt 

root@system99:/tmp# cat lonston.txt 
Yes root have all Privilages than other user's, let we see the permission of user's too

Даже я могу попасть в каталог, который имеет d -------- - (null) 000 разрешение, даже root не имеет разрешения на чтение или запись.

root@system99:/tmp# cd test/
root@system99:/tmp/test# pwd
/tmp/test

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

root@system99:/tmp/test# touch /tmp/test/lonston/testdir/babin.txt

root@system99:/tmp/test# ls -l /tmp/test/lonston/testdir/
total 0
-rw-r--r-- 1 root root 0 Feb 27 16:39 babin.txt

Теперь здесь мы можем увидеть Разрешение с 400

root@system99:/tmp/test# chmod 400 babin.txt

Список, чтобы увидеть права доступа к файлам

root@system99:/tmp/test# ls -l
total 8
-r-------- 1 root root   34 Feb 27 16:42 babin.txt
drwxr-xr-x 3 root root 4096 Feb 27 16:38 lonston

Используя vim im, я добавил 1 строку в файл babin.txt

root@system99:/tmp/test# vim babin.txt

Но в режиме vim он заметит нас. W10: Предупреждение: изменение файла, доступного только для чтения , но он все еще доступен для записи

Теперь мы можем скопировать файл для вывода

root@system99:/tmp/test# cat babin.txt 
hi this is the write persmission 
this is added while the file have 400 permission

Затем Я вышел из системы от пользователя root к обычному пользователю и перечислил файл с нулевым разрешением, что и в корневом каталоге

root@system99:/tmp# exit
exit

Перейдите в каталог / tmp

sysadmin@system99:~$ cd /tmp/
sysadmin@system99:/tmp$ ls -l
total 8
---------- 1 root root   88 Feb 27 16:36 lonston.txt
d--------- 2 root root 4096 Feb 27 16:35 test

Но при чтении файла от обычного пользователя мы не можем

sysadmin@system99:/tmp$ cat lonston.txt 
cat: lonston.txt: Permission denied

sysadmin@system99:/tmp$ cd test/
cat: test/: Permission denied

Вот и все, Надеюсь у вас есть полномочия пользователя root

. Если вы в качестве обычного пользователя, если вам нужны привилегии root, нам нужно использовать sudo, он запросит пароль sudo

пример:

sysadmin@system99:/tmp$ sudo cat lonston.txt 
[sudo] password for sysadmin: 
Yes root have all Privilages than other user's, let we see the permission of user's too

Пользователь Sudo взаимодействует с группой пользователей root, поэтому какие у sudo есть привилегии root.

Чтобы узнать больше о sudo

# man sudoers

Здесь мы видим, что они определили, что обычный пользователь может иметь права Sudo Здесь я упомянул только меньшее количество строк.

sysadmin@system99:/tmp$ sudo cat /etc/sudoers

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

Полностью мы можем читать, редактировать или удалять файлы, даже root. Не имеет разрешения на чтение.

11
27.01.2020, 19:36

Всегда предполагайте, что root (и любой другой пользователь/процесс с CAP_DAC_OVERRIDE и CAP_DAC_READ_SEARCH) может делать все, если только LSM (SELinux, AppArmor или подобное) не запрещает ему это.

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

23
27.01.2020, 19:36

В традиционной Unix root является всемогущим. В частности, root может читать любые файлы и даже подглядывать за тем, что делают ваши программы внутри системы. Если данные действительно конфиденциальны, храните только зашифрованные копии (например, GNU Privacy guard, но прежде внимательно прочитайте документацию), и никогда не расшифровывайте их на машине, которая не находится под вашим полным контролем.

(Паранойя - это прекрасно, ее никогда не бывает достаточно ;-)

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

8
27.01.2020, 19:36

Для того, чтобы root или кто-либо другой не смог прочитать ваши файлы, вам нужно их зашифровать. Шифрование файлов - очень удобный вариант, если вы хотите избежать сложных манипуляций с файловой системой.

Варианты шифрования:

  1. Шифровать обычные файлы и не давать возможности просмотреть их всем, кроме себя
  2. Шифровать сценарии оболочки и делать зашифрованные версии исполняемыми, но также не давать возможности изменить или просмотреть их

Если вы выбрали вариант 1, вот способ шифрования ваших файлов:

cat (your-file) | openssl aes-128-cbc -a -salt -k "(specify-a-password)" > (your-file).enc

Чтобы расшифровать приведенный выше файл, вы выполняете команду, подобную этой:

cat (your-file).enc | openssl aes-128-cbc -a -d -salt -k "(specify-the-password)" > (your-file).dec

-- Возможно, вы захотите поместить приведенное выше в сценарий, чтобы он не отображался в вашей истории. Или вы можете просто удалить параметр "-k", который запросит у openssl пароль.

Если вы выбрали вариант 2, просто скопируйте и вставьте ваш скрипт на следующий сайт:

http://www.kinglazy.com/shell-script-encryption-kinglazy-shieldx.htm

После отправки вашего скрипта на этот сайт, для вас будет мгновенно создан zip-файл. Скопируйте ссылку на zip-файл, затем перейдите в свой UNIX-компьютер и выполните следующие действия:

  1. wget link-to-the-zip-file
  2. unzip the-newly-downloaded-zip-file
  3. cd /tmp/KingLazySHIELD
  4. ./install. sh /var/tmp/KINGLAZY/SHIELDX-(your-script-name) /home/(your-username) -force

После выполнения предыдущих шагов вы можете просто запустить ваш зашифрованный скрипт из любого места, которое вы указали для его установки в шаге 4...., т.е. /home/(your-username)/(your-encrypted-script).sh

.
2
27.01.2020, 19:36

Теги

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