Ubuntu команды без sudo

Обновлено: 02.07.2024

Хочу на собственном домашнем сервере сделать так, как сделано в инсталляции Ubuntu 12.04 LTS на хецнере. Там просто заходишь по SSH и ты с правами суперюзера.


Я искал, но не нашёл, как это сделать у себя.

$ sudo -i
и потом работать из под рута.

Ну или включить возможность логинится сразу под рутом (задать пароль руту через sudo passwd root).

навскидку есть два варианта:

1. со старта логиниться под рутом по ssh

Как дополнение — можно у своего пользователя поменять uid на 0, примерно то же что «логиниться под рутом» но только использовать свой логин. Иногда бывает лень вводить дополнительные команды, и просто пишу sudo mc (конечно, если mc установлен). Далее все действия в mc идут под суперюзером ) Ну да, я тоже вводил. Но когда консоль открываешь-закрываешь часто, это тоже напрягает. farewell меня не напрягает. sudo apt-get install screen && man screen. могу попробовать даже свой сисмпатичный конфиг к скрину поискать, у меня так рутовые сессии месяцами могут висеть на сервере >>sudo apt-get install screen && man screen
Надеюсь, тут не подразумевалось, что man будет запущен от рута?

AterCattus: возможно Вы не очень внимательны или не сильно в курсе работы конвеера.
Если бы man запускался от рута, мне бы не приходилось вводить, например такую конструкцию при первичной установке
debian-based серверов

user> sudo apt-get update && sudo apt-get dist-upgrade && sudo apt-get install mc screen zsh
это фактически две разные команды

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

Вот про то, что man запустится не от рута я и хотел сказать. Т.е.
$ sudo apt-get install screen && screen
запустит screen под непривилегированным пользователем.

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

Допустим есть простой пользователь. Знаю пароль суперюзера
могу сделать sudo rm что-нибудь
ввожу пароль - вуаля.

могу настроить так, чтобы не спрашивал пароля каждый раз для данной команды, но как сделать так, чтобы разрешить простому пользователю выполнять определенный набор команд (rm, ln, mv, start, stop, restart, status) без ввода четырех символов s, u, d, o?
Очень надо. Есть скрипт, который я менять не буду, он пытается выполнить команды без sudo, и затыкается на ln: Отказано в доступе. Пробовал вручную, действительно отказано в доступе без sudo

sim3x

Тебе не стоит давать права на rm, ln, etc

Тебе нужно отредактировать /etc/sudoers и позволить одному юзеру запускать твой файл с привелегиями рута
Файл обязательно нужно запретить редактировать данному юзеру

не хотел сильно расписывать задачу, но видимо придется. я на windows машине запускаю ruby скрипт через стандартный cmd.exe этот скрипт (он не мной написан и изменять его не буду) получает доступ по ssh к моему ubuntu серверу и пытается навыполнять там кучу всяких команд и в лог пишет какие команды пытается выпонить и ответы сервера. так вот затыкается он на простом ln: отказано в доступе. Мне казалось очевидным разрешить тому юзеру, под которым ruby скрипт заходит выполнение некоторых командочек. Либо вкурить как натроить конфиг ruby-скрипта, чтобы он смог это делать сам (если таковая возможность там имеется). Вообще это деплой рельсового приложения с помощью capistrano 3, если о чем-то скажет

sim3x

Антон Мисягин:
как по мне, проще положить скрипт на хост и дергать его по ссш, добавив юзера хоста в судоерс и дав ему права на исполнение скрипта

Там наверняка не рокет саенс и допилить его под линукс не составит труда

Olej

1. Можете установить на файл своего исполнимого скрипта SUID флаг, чтобы программа выполнялась от имени root (но такой способ может быть опасен).

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

Поэтому было решено использовать для административных действий, которые требуют прав суперпользователя команду sudo. Но разработчики Ubuntu пошли еще дальше и вообще отключили аккаунт суперпользователя. Если вы попробуете войти в него, то у вас ничего не выйдет. В этой статье мы разберем как установить пароль суперпользователя Ubuntu и разблокировать его.

Суперпользователь в Ubuntu


Начнем с того, что суперпользователя в Ubuntu никто не отключал, пользователь root существует и от его имени работают процессы, как в других системах. Просто для этого пользователя не задан пароль. Поэтому вы и не можете войти. Но есть несколько способов авторизоваться от имени root без пароля. Во-первых, это sudo. Команда su запрашивает пароль только в том случае, если вы выполняете ее от имени обычного пользователя. Если команда будет запущена от имени суперпользователя, то пароль спрашиваться не будет, а вы сразу перейдете в терминал root. Первая комбинация, которая приходит на ум:


Но есть и более простой и правильный вариант, вы можете использовать опцию -i утилиты sudo чтобы перейти в терминал суперпользователя:

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

Пароль root Ubuntu

Несмотря на приведенные выше способы решения проблемы, вы все еще не можете авторизоваться от имени суперпользователя в TTY или использовать утилиту su без sudo. Если это для вас важно дальше мы рассмотрим как установить пароль root Ubuntu и вернуть полноценного root пользователя. Только это все нужно делать когда у вас есть обычный пользователь и доступ к нему. Сначала смотрим /etc/shadow и убеждаемся, что пароля действительно нет:

sudo cat /etc/shadow | grep root

Для установки пароля для root наберите:

sudo passwd root

Теперь нужно ввести два раза пароль и готово. Проверяем снова:

sudo cat /etc/shadow | grep root

Если же вы потеряли пароль своего пользователя и вам нужна смена пароля root ubuntu, то вам понадобиться войти в режим восстановления и выполнять все действия там. Подробнее об этом читайте в статье сброс пароля Gentoo.

Дальше вы можете использовать команду su для авторизации, авторизоваться от root по ssh и многое другое. Например:


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

Выводы

Политика дистрибутива Ubuntu нацелена на то, что все действия, требующих административных привилегий надо выполнять с помощью команды sudo. Использовать root пользователя как основного для новичков опасно, поскольку они ещё плохо ориентируются в системе и могут забыть, что они вошли как root и удалить что-то важное.

А поскольку восстановить файлы, удалённые с помощью команды rm почти нельзя, то лучше новичков туда не пускать. Но иногда возникает необходимость войти под пользователем root. В этой небольшой статье мы рассмотрим как это сделать.

Как зайти под root в Ubuntu

По причинам, описанным выше для пользователя root пароль в Ubuntu не задан по умолчанию, поэтому вы не можете просто так войти от его имени с помощью в виртуальных консолях доступных по Ctrl+Alt+FN или с помощью утилиты su. Поскольку пароля нет, ввести его верно вы не сможете.


Но это всё очень просто обходится. Для того чтобы войти под пользователем root в терминале достаточно дописать sudo перед командой su:


Также можно использовать опцию -i команды sudo чтобы открыть консоль от имени суперпользователя:


Однако, если вы хотите авторизоваться от имени этого пользователя в виртуальной консоли или по SSH, то вам надо сначала задать для него пароль. Для этого выполните:

sudo passwd root


Затем введите два раза пароль. После этого пользователь root становится почти полноценным пользователем системы. Вы не сможете только войти под ним в графический интерфейс потому что на это действует ограничение самой оболочки Gnome, это очень плохая практика - запускать целую оболочку от имени root.

Но если вам всё же очень хочется, надо немного настроить правила PAM для GDM. Для этого откройте файл /etc/pam.d/gdm-password и закомментируйте там строчку:

sudo vi /etc/pam.d/gdm-password

После этого вы сможете авторизоваться от имени root в менеджере входа. Просто кликните по пункту Нет в списке, а затем введите логин root:


Перед вами откроется оболочка, запущенная от имени суперпользователя:


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

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

Оцените статью:

(6 оценок, среднее: 4,83 из 5)

Об авторе

2 комментария

Ну а что там с другими DE? Решение я знаю, но почему их нет в статье? Огласите весь список, пожалуйста!

Поставил два дня назад Ubuntu, просто посмотреть что за зверь такой Linux. Посмотрел. Теперь понял почему Windows рулит в мире, а Linux в глубокой попе ) Если после установки в Windows сразу можно работать (копировать, вставлять файлы, создавать папки редактировать и тд), то в Linux НИЧЕГО нельзя делать. То есть вообще ничего. Разве что браузер работает и можно что то посмотреть. А для того чтобы получить разрешение на работу в Linux, надо сначала выучить команды терминала ) Окститесь линуксоиды! Какой идиот сейчас будет заморачиваться с командами? Современная молодежь даже не знает что такое терминал. Почитал заклинания линуксоидов: какие страшные картинки рисуют, если юзер зашел под root. Чуть ли не конец света ) Как будто в Windows нет важных файлов, а все важнейшие для юзера файлы только в Linux ) Вы вообще про переустановку системы слышали? Если нет, сообщаю: Linux гораздо проще переустановить, чем Windows, не надо активировать систему. Так что заходим под root, спокойно что то ломаем и спокойно переустанавливаем. Никакой трагедии. По крайней мере такая дикая защита от ЮЗЕРА не нужна.

Читайте также: