Являются ли пользовательские файлы закрытыми, когда в Ubuntu существуют два пользователя sudo?
Я делюсь своим персональным компьютером с Ubuntu с одним из моих коллег.
Я создал другого пользователя с другим паролем (он знает, конечно) и добавил его в sudoer
список.
Учитывая, что есть два sudo
пользователи в одной системе Ubuntu:
Являются ли личные файлы (указанные владельцами и разрешениями) любого из этих пользователей по-прежнему закрытыми?
Могу ли я изменить файлы моего коллеги через
sudo
команда, дажеsudo su
, или наоборот?
6 ответов
Если ваш коллега находится в списке sudoers, он является пользователем root, если вы этого хотите (и он может выдать себя за вас), и тогда он сможет увидеть все.
Это худшая настройка, которую вы можете использовать, если вы хотите конфиденциальности пользователя. Вы должны окончательно прочитать, как работает управление пользователями в Linux. Вот несколько статей, с которых вы можете начать:
- https://help.ubuntu.com/stable/ubuntu-help/user-accounts.html
- Как управлять пользователями и группами?
- https://help.ubuntu.com/community/EncryptedHome
И даже тогда, если у кого-то есть физический доступ к рассматриваемой машине, конфиденциальность отсутствует, он может заскочить при загрузке в корневую оболочку и посмотреть все, что бы ни было, и если это будет защищено паролем, он все равно сможет использовать USB-накопитель и идти по этому пути.
Так что в этом случае лучше всего - правильное управление пользователями, пароль для root, а также зашифрованный диск и / или зашифрованные домашние каталоги.
Простая альтернатива - хранить ваши личные данные в зашифрованном файле (это может быть файл архива tar, который вы шифруете, например, с помощью gpg). Вы должны помнить, чтобы переписать и удалить текстовые файлы после просмотра их.
Еще одна альтернатива для всех, кто имеет общий доступ к компьютеру и sudo (root), - это использовать зашифрованный домашний и зашифрованный обмен.
Но это не поможет, если вы вошли в систему одновременно. На самом деле вы должны перезагрузить компьютер, чтобы избавиться от ваших файлов в текстовом формате даже с зашифрованным дома.
В общем, безопасность очень сложна, и однопользовательская система с зашифрованным диском (LVM с шифрованием) будет самым простым способом обеспечения безопасности.
- Не храните конфиденциальные данные на общем компьютере
- Не храните личные данные на компьютере, принадлежащем вашему работодателю.
Как только вы сможете получить root
разрешения (например, используя sudo
,su
,так далее).
У вас есть полный доступ к каждому файлу в системе.
Так что оба пользователя, которые имеют sudo
разрешение, а может стало root
с помощью sudo bash
будет иметь полный доступ к каждому файлу в системе
Согласно этому Q&A в SE-Security
: Вы можете изменить SELinux
(который не является Ubuntu) для того, чтобы ограничить root
доступ:
Если ваш вопрос "могу ли я легко и безопасно сделать это сейчас?" ответ - нет. Если ваш ответ "я готов узнать о SELinux, покончить с моим дистрибутивом и смириться с большим количеством вещей, которые не работают", ответ будет таким: можно ограничить root намного больше, чем ваша средняя установка. Тем не менее, это никоим образом не делает вас неуязвимым для эксплойтов - это не делает невозможным для пользователя обойти этот дополнительный контроль доступа ни программно, ни физически.
Чтобы сделать то, что уже было сказано в других ответах, совершенно ясно: этот другой пользователь не только "root столько, сколько вы" (ответ Videonauth), он также может стать вами (переключиться на вашу учетную запись пользователя).
Это потому, что с привилегиями суперпользователя можно переключиться на любую учетную запись.
Вы наверное знаете
sudo su
что является одним из вариантов открытия оболочки root, если 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
).
См. Принятый ответ на этот вопрос в Super User для получения дополнительной информации, а также здесь, в Unix и Linux. Смотрите ответ по slm для предложения по ограничению привилегий в /etc/sudoers
,
Также проверьте sudoers man
страница, набрав man sudoers
и не забудьте проверить это. Помните, что при неограниченном доступе sudo пользователь может полностью выдать себя за любого другого пользователя. например, если пользователь foo
должны были запустить команду
sudo exec su - bar
тогда они смогут действовать как пользователь bar
со всеми привилегиями этого пользователя.
Предыдущие ответы не применяются полностью, если вы отметили encrypt home folder
во время установки Ubuntu. Это гарантирует зашифрованные домашние папки для каждого пользователя, даже если root не может читать данные без правильного пароля пользователя / владельца этой домашней папки. Ваша коллега должна будет изменить свой пароль, чтобы прочитать файлы, которые будут замечены.
И, конечно, люди правы, что совместное использование компьютеров с ценными или конфиденциальными данными, а также root-доступ с коллегами не является хорошей идеей.
В зависимости от значения этих данных, я бы посоветовал запросить у вас собственную машину.