Я делюсь своим персональным компьютером с Ubuntu с одним из моих коллег.
Я создал другого пользователя с другим паролем (он, конечно, знает) и добавил его в список sudoer
.
Учитывая, что в одной системе Ubuntu есть два sudo
пользователя:
Являются ли личные файлы (указанные владельцами и разрешениями) любого из этих пользователей по-прежнему частный?
Можно ли изменить файлы моего коллеги с помощью команды sudo
, даже sudo su
или наоборот?
Если ваш коллега находится в списке sudoers, он является пользователем root настолько, насколько вы, если он этого хочет (и он может выдать себя за вас), а затем он может видеть все.
Это худшая настройка, которую вы можете использовать, если вы хотите конфиденциальности пользователя. Вы должны окончательно прочитать, как работает управление пользователями в Linux. Вот несколько статей, с которых вы можете начать:
И даже тогда, если у кого-то есть физический доступ к рассматриваемой машине, конфиденциальность отсутствует, он может заскочить при загрузке в корневую оболочку и посмотреть все, несмотря ни на что, и если это будет защищено паролем, он все равно может использовать USB-накопитель и идти на этом пути.
Так что в этом случае лучше всего будет правильно управлять пользователями, паролем для root, а также зашифрованным диском и / или зашифрованными домашними каталогами.
Простая альтернатива - хранить ваши личные данные в зашифрованном файле (это может быть файл архива tar, который вы шифруете, например, с помощью gpg). Не забывайте перезаписывать и удалять файлы открытого текста после просмотра.
Еще одна альтернатива для всех, кто имеет общий доступ к компьютеру и sudo (root), - использовать зашифрованный домашний и зашифрованный обмен.
Но это не поможет, если вы вошли одновременно. На самом деле вам нужно перезагрузить компьютер, чтобы избавиться от ваших файлов в текстовом формате даже с зашифрованным домом.
В общем, безопасность очень сложна, и однопользовательская система с зашифрованным диском (LVM с шифрованием) будет самым простым способом обеспечения безопасности.
Как только вы сможете получить root
разрешения (например, используя sudo
, su
и т. Д.).
У вас есть полный доступ к каждому файлу в системе.
Таким образом, оба пользователя, которые имеют sudo
разрешение и могут стать root
с помощью sudo bash
, будут иметь полный доступ к каждому файлу в системе
Согласно , этот Q & amp; A в SE-Security
: Вы можете изменить SELinux
(который не является Ubuntu), чтобы ограничить root
доступ:
Если ваш вопрос «Могу ли я легко и безопасно сделать это сейчас? ответ - нет. Если ваш ответ «я готов узнать о SELinux, покончить с моим дистрибутивом и смириться с большим количеством вещей, которые не работают», ответ будет таким: можно ограничить root намного больше, чем ваша средняя установка. Тем не менее, это ни в коей мере не делает вас неуязвимым для эксплойтов - это не делает невозможным для пользователя обойти этот дополнительный контроль доступа ни программно, ни физически.
Чтобы сделать то, что уже было сказано в других ответах, совершенно ясно: этот другой пользователь не только «root столько, сколько вы» (ответ Видеонавта), они также могут стать вами (переключиться на вашу учетную запись пользователя) .
Это потому, что с привилегиями суперпользователя можно переключиться на любую учетную запись.
Вы, вероятно, знаете
sudo su
, который является одним из вариантов открытия корневой оболочки, если root не имеет установленного пароля (поэтому вы не можете просто войти в систему как root напрямую).
su
- это сокращение от «пользователь переключения». На какого пользователя он переключается? Ни один не указан, верно? Но из справочной страницы мы можем узнать, что:
Вызывается без имени пользователя, su по умолчанию становится суперпользователем.
Таким образом, это действительно
sudo su root
, если вы не переименовали root
во что-то еще.
Если вы просто запустите su <someuser>
, вам будет предложено ввести пароль. Поэтому, если вы запустите su root
, вам будет предложено ввести пароль пользователя root (который по умолчанию не существует в Ubuntu, поэтому вы не можете войти в систему (обратите внимание, что пароль не установлен, что означает, что средства для входа через пароль, который отличается от пароля, являющегося пустой строкой)). Но если вы запустите sudo su root
, вам будет предложено ввести собственный пароль. И вас только об этом попросит sudo
. Как только sudo
получил ваш пароль, он запускает полученную команду в качестве параметров с привилегиями суперпользователя. Так как при наличии привилегий суперпользователя можно переключиться на любую учетную запись, запрос пароля не требуется.
Таким образом, выполнив
sudo su <yourusername>
, другой sudoer может войти как вы.
Можно ограничить программы, которые можно запускать с помощью повышения привилегий sudo, отредактировав файл sudoers (/etc/sudoers
).
См. Принятый ответ на этот вопрос о суперпользователе для получения более подробной информации, а также здесь, в Unix и Linux . См. ответ slm для предложения по ограничению привилегий в /etc/sudoers
.
Также проверьте страницу sudoers man
, набрав man sudoers
, и не забудьте проверить ее. Помните, что при неограниченном доступе sudo пользователь может полностью выдать себя за любого другого пользователя. например, если бы пользователь foo
должен был запустить команду
sudo exec su - bar
, он мог бы действовать как пользователь bar
со всеми привилегиями этого пользователя.
Предыдущие ответы не применяются полностью, если вы отметили encrypt home folder
при установке Ubuntu. Это гарантирует зашифрованные домашние папки для каждого пользователя, даже если root не может читать данные без правильного пароля пользователя / владельца этой домашней папки. Ваша коллега должна будет изменить ваш пароль, чтобы прочитать файлы, которые будут замечены.
И, конечно, люди правы, что не очень хорошая идея делиться машинами с ценными или конфиденциальными данными на них и, кроме того, иметь root-доступ с коллегами.
В зависимости от значения этих данных, я бы посоветовал вам запросить собственную машину.