Как я могу сделать все, только предполагая, что я работаю как суперпользователь?

10

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

Джон
источник
Не делайте этого. Это сломает вашу систему (не подвергая ваш компьютер атакам). Читайте unix.stackexchange.com/questions/1052/…
MarkovCh1
Но если вы все еще хотите запускать определенные приложения от имени пользователя root, см. Wiki.archlinux.org/index.php/Sudo
MarkovCh1
1
Джон, я откатил твою правку. Даже если вы не собираетесь этого делать, вопрос / ответ по-прежнему остается полезным для всех, кто рассматривает это. Чтобы эта страница была полезной, вопрос должен остаться, иначе новые посетители просто увидят «вопрос снят» с последующим ответом на вопрос, который они не видят :)
Cesium
2
Не следует отказываться от голосования по той же причине
Марк Руни
2
Да, это отличный вопрос. Единственная глупость здесь - не принимать советы в комментариях и ответах. +1
Том Броссман

Ответы:

21

Обычно я включаю инструкции в ответ, но это такая плохая идея, что я укажу вам пару мест, чтобы прочитать о том, как это сделать. Вы можете взять это оттуда. Обратите внимание, что когда вы ломаете свою систему, вы можете снова отправлять сообщения о помощи, но люди будут смеяться, качать головами и ссылаться на ошибки pebkac и т. Д.

Во-первых, страница помощи Ubuntu в Root / sudo. Обратите внимание на три больших, выдающихся предупреждения.

Вот пользователь форумов Ubuntu, который сделал что-то подобное и не смог починить свою систему.

Храните резервные копии своих данных, если вы делаете это, и рассмотрите мудрость торговой безопасности для удобства. Может быть, наденьте старый альбом Dead Kennedys, пока вы переустанавливаете ...

Том Броссман
источник
3

Если вас интересуют только определенные вещи, работающие от имени root, бит setuid является подходящей функцией.

При установке этого бита программа будет запускаться с разрешениями ее владельца. Поэтому вы можете взять программу, изменить ее владельца на root, установить бит setuid, и эта программа будет запускаться от имени root без особого вмешательства.

Некоторые программы в Ubuntu настроены по умолчанию - например, ping

> ls -l `which ping`
-rwsr-xr-x 1 root root 35712 2011-05-03 11:43 /bin/ping

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

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

Адриан
источник
Несвязанный:: sigh: Безопасность Unix: должен выдать всю систему, чтобы открыть порт прослушивания. Как это работает, хотя? Никто не запускает, например, Apache от имени root ...
Billy ONeal
1
Я полагаю, что Apache справляется с этим, порождая дочерние процессы с менее привилегированными UID и запуская только один главный процесс, который открывает порт 80 как root. Дочерние процессы обрабатывают все пользовательские запросы. Я думаю, что другой распространенный шаблон заключается в том, что процессы запускают setuid root, а затем используют setuid, чтобы перейти к пользователю с ограниченными правами, как только они получат ресурсы, необходимые для использования root; unixwiz.net/techtips/chroot-practices.html
Адриан,
1

Пожалуйста, не делай этого. Вы не только причиняете вред себе, но и другим. Достаточно зомби, спам-ботов и DDoS-хостов.

Джо-Эрленд Шинстад
источник