Является ли «ОК» использовать пользователя root как обычного пользователя?

Я включил пользователя root на своем Mac, поэтому я могу войти в него и запустить Finder и т. д. Будучи ленивым человеком, которым я являюсь, просто передал все из моего домашнего каталога в /var/root , Я не слишком уверен в этом, поэтому я могу все переместить. Технически ли это «ОК», как обычный пользователь? (Я единственный, кто может получить доступ к моему компьютеру.)

91 голос | спросил 智障的人 20 J0000006Europe/Moscow 2015, 05:36:51

9 ответов


343

Использование вашего компьютера, зарегистрированного как root, все время похоже на то, что вы всегда держите все свои ключи, свой паспорт, 5000 долларов наличными, этот листок бумаги со всеми вашими паролями, написанными на нем, и единственное фото, которое у вас есть на Flopsy, очаровательный кролик, чья смерть сломала ваше семилетнее сердце. О, и бензопила.

То есть, это время от времени очень удобно, потому что это означает, что вы можете делать все, что хотите, всякий раз, когда захотите, без необходимости возвращаться домой, чтобы получить материал или поговорить с вашим менеджером банка. Но это также ставит вас в большой риск потерять вещи, украсть их (не думайте, что бензопила поможет вам: вы будете уходить на улицу, прежде чем заметите, что ваш кошелек ушел), делая то, о чем вы действительно сожалеете позже (импульсивная покупка билеты на самолет в Вегас, когда они пьяны), принимая опасные ярлыки (цепная связь через ограждение ограждения льва, потому что это самый быстрый путь к пандам) и чрезмерная реакция (бензопила автомобиля вашего соседа, потому что его собака лает слишком много). И, когда вы думаете об этом, в основном, вы просто едете в офис, отправляетесь в продуктовый магазин, болтаетесь со своими друзьями. Вам не нужно все это с вами все время просто для удобства, что ?, один раз в месяц? Раз в неделю?

Итак, нет, не все нормально использовать учетную запись root. Это дает вам небольшое удобство, но вы подвергаете себя большой опасности. Существует опасность того, что глупые ошибки будут иметь катастрофические результаты («Эй, почему rm -rf * занимает так много времени? **** Я в /!" ). Существует опасность приспособиться к идее о том, что все файлы равны, и вы можете просто общаться с тем, что хотите, где угодно в дереве каталогов. Существует опасность того, что любой взлом вашей учетной записи немедленно взломает всю систему, поэтому теперь каждая отдельная программа на вашем компьютере критически важна. И даже если вы думаете, что вы не заботитесь о том, чтобы ваша машина была взломана (в конце концов, эта фотография Flopsy - это настоящий кусок глянцевой бумаги, а не какой-то эфемерный JPEG), I заботиться о том, чтобы ваша машина была взломана, потому что тогда на ботнете монтируется DDOS-атака против любого интернет-сервиса, к которому я не могу получить доступ сегодня.

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

ответил David Richerby 20 J0000006Europe/Moscow 2015, 14:20:35
22

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

Для получения более подробной информации об этом см.

ответил William T Froggard 20 J0000006Europe/Moscow 2015, 06:20:00
17

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

  • Защита от приложений . Практически система разрешений * nix не является not достаточно сильной (безусловно), чтобы разрешить запуск произвольных программ. Вредоносная программа на * nix может делать достаточно злых вещей (например, краду ваших банковских учетных данных) без прав root. Это будет несколько сложнее для приложения root, чем для root (например, вместо прямой установки корневого сертификата и перехвата подключения к банку, который вам понадобится вместо того, чтобы возиться с браузером, но эй, это на самом деле вполне выполнимо, и вы, вероятно, должны были это сделать, чтобы убедиться, что пользователь ничего не замечает)
  • Защита от ошибок пользователя (например, запуск неправильной команды и удаление всех системных файлов) : Абсолютно верно, но даже если пользователь root не будет root
  • Защита от использования ошибок в запускаемых приложениях: Теперь это больше похоже на это. Например. когда вы запускаете веб-сервер, на котором множество приложений открыто снаружи, и, таким образом, любые легкодоступные ошибки будут легко доступны. Конечно же, все равно применяется, даже если вы сидите за маршрутизатором и межсетевым экраном, хотя степень опасности гораздо менее значительна. Еще раз, однако, вопрос заключается в том, насколько система разрешений будет реалистично защищаться в частной системе. Без разрешений root все личные файлы могут быть доступны и перехватывать сетевые данные также возможны ... две самые важные вещи, которые вы можете пожелать в качестве злоумышленника частной системы.
    • (Теперь, помимо стандартной системы разрешения файлов nix, Apple также представила систему песочницы приложений. Насколько мне известно, она по-прежнему полностью работоспособна даже при входе в систему с правами root. это был бы полный прерыватель транзакции.)

В любом случае, все считают, что я не думаю, что это ужасная идея, как утверждают некоторые другие. Имейте в виду, я тоже не говорю, что это хорошая идея, но я думаю, что люди переоценивают полезность модели разрешения файловой системы * nix в защите вас. Да, это невероятно полезно для определенных вещей (например, многопользовательские системы, сложные серверы с несколькими приложениями, поддерживающие работу системы независимо от того, что происходит (работает, но не обязательно используется), блокируя важные файлы (хотя вам лучше шифровать эти ...) и т. д.), но это не волшебная защита, которая предотвращает появление плохих вещей.

В комментариях я придумал аналогию, которая кажется вполне адекватной при описании ситуации. На голландском языке мы поговорим о маленьком шкафу , где вы можете найти все метров и переключатель для основного водоснабжения и т. д. Запуск в качестве учетной записи пользователя root похож на блокировку этого маленького шкафа. Иронический факт: у большинства людей в первую очередь нет блокировок. Теперь, как и с root, пользователь не должен сказать, что в некоторых случаях нецелесообразно блокировать его, например, в офисах или других полуобщественных зданиях, их часто запирают, но в обычных домах гораздо важнее иметь сильный замок на входной двери (не устанавливая случайные вещи, брандмауэр и т. д.) и помещая все ваши важные вещи в сейф (создание резервных копий, шифрование и т. д.). Будет ли лишний замок на этом шкафу больно? Нет, поэтому было бы неплохо иметь его на месте на всякий случай, но, по всей вероятности, это будет совершенно бесполезно.

Выполняется как пользователь root ничего , как будто все блокировки вашего дома и все вещи в сейфе с вами все время, как утверждает Дэвид Richerby. Ваш паспорт (личность) никоим образом не защищен файловой системой * nix, ваши деньги (банковский счет) никоим образом не защищены файловой системой * nix, ваши важные пароли вероятно не защищены файловая система * nix (если вы используете Safari, однако они могут быть частично защищены моделью разрешения файловой системы * nix, но без root вы можете добавить невидимое расширение в Safari и следующий просто перехватить пароль в следующий раз, когда вы его используете), ваши фотографии, безусловно, не защищены файловой системой * nix, и если вы используете терминал, у вас уже есть бензопила с вами (за пункт 2 выше).

ответил David Mulder 21 J0000006Europe/Moscow 2015, 21:50:16
11

В 1990 году я работал над проектом с парнем по имени Том. Мы использовали SUN-сервер под управлением SunOS (производная Unix, предшественница Solaris). Это было за несколько дней до CD-приводов и флеш-накопителей, поэтому, если вы перепутали ОС на своем жестком диске, не было возможности восстановить их.

Том использовал для регулярного входа в систему под именем root. Я сказал ему, что это плохая идея, но он не слушал. Однажды я услышал, как он сказал: «О-о». Он намеревался напечатать что-то вроде этого:

mv something* .

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

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

Нет проблем, не так ли? Мы могли бы просто переместить все обратно. Мы могли бы, за исключением того, что команда mv не была одной из встроенных команд оболочки. Вместо этого это была исполняемая программа, которая хранилась в одном из файлов, которые были перемещены. К счастью, ls была встроенной командой, поэтому после использования ls для подтверждения того, куда переместились команды, мне удалось найти команду mv, вызвать ее с полным именем пути и вернуть вещи туда, где они должны были быть .

И затем я сказал ему: «Том, вот почему это плохая идея, чтобы регулярно регистрироваться в качестве пользователя root».

ответил Mike Ciaraldi 26 J0000006Europe/Moscow 2015, 20:32:02
9

Как правило, вы хотите сохранить права собственности на свои личные файлы отдельно от пользователя root. Вот почему вы создаете учетную запись для себя как администратора. Принятый способ под управлением OS X для доступа к корневому уровню - использовать команду sudo в приложении Terminal. Например, если вы хотите увидеть разделение внутреннего диска, команда

gpt -r show /dev/disk0

, который при вводе приведет к появлению следующего сообщения об ошибке.

gpt show: unable to open device '/dev/disk0': Permission denied

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

sudo gpt -r show /dev/disk0

Если вы хотите стать пользователем root, чтобы не вводить sudo, вы можете просто ввести sudo sh. Команда exit может использоваться для выхода из пользователя root.

Если вы хотите выполнить приложение в качестве пользователя root, вы можете использовать приложение терминала. Например, если вы хотите запустить Finder как пользователь root, введите следующую команду.

sudo /System/Library/CoreServices/Finder.app/Contents/MacOS/Finder &

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

osascript -e 'tell application "Finder" to quit'

Одно слово предостережения: предшествующее команде с sudo не совпадает с тем, чтобы стать пользователем root. Например, команды

sudo echo $USER
sudo echo $SUDO_USER

выводят тот же результат, что и команды, показанные ниже.

echo $USER
echo $SUDO_USER

Если вы станете пользователем root (суперпользователем), то те же команды приводят к другому результату. Это можно проверить, введя команды, показанные ниже.

sudo sh
echo $USER
echo $SUDO_USER
sudo echo $USER
sudo echo $SUDO_USER
exit
ответил David Anderson 20 J0000006Europe/Moscow 2015, 07:36:27
4

В случае, если другие причины были недостаточно хороши ... Не забывайте, что вы не можете использовать Homebrew как root (что на самом деле является огромной болью). Другие программы также не позволяют использовать их как root или запускать проблемы с разрешениями, когда вы это делаете, часто раз без видимых причин, потому что их программисты предполагают, что они не будут выполняться с правами root. Я думаю, что Steam является одним из них.

Также приятно иметь все системные и пользовательские материалы по разным причинам.

Я не знаю, плохо ли это из-за проблемы с безопасностью. Я лично буду больше беспокоиться о проблемах с организацией и разрешениями, чем что-либо еще.

ответил sudo 21 J0000006Europe/Moscow 2015, 22:30:05
4

Несколько примеров, почему не всегда нормально работать как root:

  • Пользователь root может легко размещать файлы в местах, которые намного сложнее отслеживать.
  • У пользователя root есть необработанный доступ к интерфейсам, поэтому он может помещать интерфейс в режим promiscuous или monitor и регистрировать весь сетевой трафик.
  • У пользователя root есть необработанный доступ к узлам устройства и может трэш-диск, что значительно затрудняет восстановление файлов, чем простой «rm» на уровне пользователя. Корневой пользователь может также потенциально изменять загрузочные секторы диска, делая вредоносное ПО постоянным даже после переустановки операционной системы.

Я мог бы продолжить. Дело в том, что есть веские причины не запускать с правами root. Я не согласен с тем, что для большинства людей их самые личные данные в любом случае находятся в их домашнем каталоге, но при запуске с правами root все же эти данные и вся система подвергаются большему риску. Совет не запускать как root не является неуместным. Если человек не понимает последствий запуска с правами root, они определенно не должны этого делать. Предложить что-нибудь другое безответственно.

ответил bodangly 23 J0000006Europe/Moscow 2015, 02:39:18
1

Если вы не используете backtrack /kali для выполнения конкретной задачи: NO. Обращайтесь к суперпользователю так же, как к загруженному пистолету: если у вас есть настоятельная необходимость и намерение использовать его: ОК. Однако, если вы можете решить свою проблему любым другим способом (например, «sudo»), сделайте это.

ответил SamWN 25 J0000006Europe/Moscow 2015, 16:04:56
0

НЕТ! Это приведет к сбою вашей системы за очень короткий промежуток времени. Вместо этого su или sudo в корне при необходимости. Если вы абсолютно, положительно, должны выполняться как root, по крайней мере, выйти из системы в любое время, когда вы не используете компьютер. Если ваша система способна запускать многопользовательский режим, но ни один пользователь не настроен, я предлагаю вам создать привилегированного пользователя (то есть: тот, который может sudo /su в корневой каталог, если это необходимо. ) КАК МОЖНО СКОРЕЕ !!!

ответил tucker twomey CodeZypher 23 J0000006Europe/Moscow 2015, 21:09:19

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132