4 Ways to Disable Root Account in Linux

4 Ways to Disable Root Account in Linux Техника

Текущая версия страницы пока не проверялась опытными участниками и может значительно отличаться от версии, проверенной 12 июля 2016 года; проверки требуют 129 правок.

У этого термина существуют и другие значения, см. Root (значения).

Такая схема была придумана для облегчения администрирования. К примеру, на серверах Novell начинающие администраторы нередко допускают ошибку, «даря независимость» ветвям каталогов (теряя над ними всякий контроль); в UNIX подобное невозможно.

Пользователь root может становиться другим пользователем с помощью операции setuid(), но не наоборот. Обычно это используется в целях безопасности, когда сервер при запуске собирает какую-то информацию о системе (для чего необходимы права суперпользователя), а затем отдаёт свои привилегии. Также суперпользователь может осуществить вход в систему от имени другого пользователя при помощи команды su, при этом для входа не потребуется вводить пароль. Это может быть использовано администратором, например, для осуществления контроля над пользователями или помощи в исправлении неполадок.

Здравствуйте, уважаемые посетители, читатели, други и недруги, случайные личности, постоянные клиенты и прочие, так сказать, человеки. Мы продолжаем знакомить Вас с Linux-системами, и эта статья из цикла, посвященного Linux, попытается продолжить базовое знакомство и потихоньку погружать Вас в реальность опытного линуксоида, которая (реальность) таки не всегда сурова, особенно, когда есть знания и материалы на нашем ресурсе, но не всегда бывает и добра.

linux

Сразу оговоримся, что в каком бы дистрибутиве Вы не работали (будь то , , , , , и т.д. и т.п. – сейчас различных дистрибутивов линукса насчитывается порядка 600 или даже больше, если не считать совсем уж мелкие проекты), суть этой работы не изменится. Отличаться могут команды, потому как используются разные менеджеры пакетов. Сегодня мы более подробно затронем такие понятия как:

  • Кто же такой суперпользователь,
  • Что такое пользователи и группы в системах.

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

Have you ever wondered why there is a special account named root in Linux? Do you know what are the recommended best practices to use this account? Are you aware of the scenarios where it must be used and those where it doesn’t? If you answered “yes” to one or more of these questions, keep reading.

In this post we will provide a reference with information about the root account that you will want to keep handy.

What is root?

To begin, let us keep in mind that the hierarchy of directories in Unix-like operating systems has been designed as a tree-like structure. The starting point is a special directory represented by a forward slash (/) with all other directories initially branching off from it. Since this is analogous to an actual tree, / is called the root directory.

$ tree -d / | less

which illustrates the analogy between / and the root of a tree.

Hierarchy of Directories in Linux
Hierarchy of Directories in Linux

Although the reasons behind the naming of the root account are not quite clear, it is likely due to the fact that root is the only account having write permissions inside /.

Gaining Access to root Permissions

Run Commands Without sudo Privileges
Run Commands Without sudo Privileges

Repeat the above two steps whenever needed, and once done, use the exit command to return to your unprivileged account immediately.

Summary

This post can serve as a reference for the proper use of the root account in a Unix-like operating system. Feel free to add it to your bookmarks and return as many times as you want!

As always, drop us a note using the comment form below if you have any questions or suggestions about this article. We look forward to hearing from you!

If you read this far, tweet to the author to show them you care. Tweet a thanks

Photo of author


# useradd -m -c "Admin User" admin
# passwd admin

# usermod -aG wheel admin    #CentOS/RHEL
# usermod -aG sudo admin     #Debian/Ubuntu 
# su admin

1. Change root User’s Shell

  
$ sudo vim /etc/passwd

Change the line:

root:x:0:0:root:/root:/bin/bash
to
root:x:0:0:root:/root:/sbin/nologin
Change root User Shell
Change root User Shell

Save the file and close it.

2. Disable root Login via Console Device (TTY)

To create an empty file, run.

$ sudo mv /etc/securetty /etc/securetty.orig
$ sudo touch /etc/securetty
$ sudo chmod 600 /etc/securetty

This method has some limitations, it only affects programs such as login, display managers (i.e gdm, kdm and xdm) and other network services that launch a TTY. Programs such as su, sudo, ssh, and other related openssh tools will have access to the root account.

3. Disabl SSH Root Login

$ sudo vim /etc/ssh/sshd_config

Then uncomment (if it is commented) the directive PermitRootLogin and set its value to no as shown in the screenshot.

Disable Root Login in SSh
Disable Root Login in SSh

Once you are done, save and close the file. Then restart the sshd service to apply the recent change in configurations.

$ sudo systemctl restart sshd 
OR
$ sudo service sshd restart 

4. Restrict root Acess to Services Via PAM

Pluggable Authentication Modules (PAM in short) is a centralized, pluggable, modular, and flexible method of authentication on Linux systems. PAM, through the /lib/security/pam_listfile.so module, allows great flexibility in limiting the privileges of specific accounts.

$ sudo vim /etc/pam.d/login
OR
sudo vim /etc/pam.d/sshd

Next, add the configuration below in both files.

auth    required       pam_listfile.so \
        onerr=succeed  item=user  sense=deny  file=/etc/ssh/deniedusers

Add the name root in it, then save and close it.

$ sudo vim /etc/ssh/deniedusers

Also set the required permissions on this.

$ sudo chmod 600 /etc/ssh/deniedusers
$ man pam_securetty
$ man sshd_config
$ man pam

Послесловие

Вот такая вот получилась полутеоретическая и немножко практическая, но таки важная статья для тех, кто постигает линукс и кому он интересен.

Дополнительно:  Git root idea

Мало-помалу будем двигаться дальше. Оставайтесь на связи, читайте статьи в этой рубрике, комментируйте, предлагайте темы и всё такое прочее.

За существование данной статьи спасибо члену команды Pantera

Root-доступ на Android

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

Это делается в большинстве случаев для того, чтобы максимально настроить устройство под себя (полная настройка аудио, видео, или даже микрофона), или удаления множества установленных вместе с заводской прошивкой приложений, которые обычно не нужны и при этом занимают много места в внутренней памяти устройства. Именно благодаря root-доступу, пользователь может получить «безграничный» доступ ко всем файлам на устройстве под управление Android OS. Так как iOS тоже является UNIX-подобной системой, на устройствах Apple есть схожий процесс, который называется джейлбрейк (с  «jailbreak» — побег из тюрьмы).

На некоторых устройствах root-доступ уже предустановлен (часто на устройствах китайской фирмы)

У этого процесса есть свои плюсы а также минусы.

  • Не все пользователи смогут получить безграничные права доступа ко всем файлам на устройстве, однако это в то же время это плюс, так как неопытный пользователь тем самым не сможет легко сломать устройство, что убережёт его от необходимости перепрошивки (переустановки ОС);
  • Если пользователь Android не обладает достаточной информационной базой, то он вероятнее всего испортит свой гаджет (на жаргоне компьютерщиков это называется «кирпич», «окирпичить» — убить свой гаджет необдуманными действиями над операционной системой, затронув системные файлы, при этом телефон либо не включится, либо он войдёт в «бутлуп» (цикличная перезагрузка)), чем добьётся получения повышенных прав;
  • Безопасность устройства, скорее всего, снизится;
  • Любые программы, в том числе и вредоносные, могут получить root-доступ и причинить вред устройству (однако если установить специальный менеджер, например, SuperSU или Magisk, то программы, не имеющие разрешения, не смогут получить root-доступ);
  • root-доступ действителен до следующей перепрошивки или сброса (на большинстве устройств root-доступ удаляется только полной перепрошивкой) есть также Temporary Root, действующий до первой перезагрузки;
  • Гарантия от производителя теряет свою силу уже на этапе разблокировки загрузчика, в устройствах с разблокированным загрузчиком любое изменение заводских программных компонентов (не только получение root-доступа, но и установка пользовательского Recovery или сторонней сборки Android, а также любое изменение системных файлов) точно так же приводит к автоматическому аннулированию гарантии.[источник не указан 162 дня] При этом не обязательно иметь модификации на момент обращения в сервисный центр, достаточно оставить следы модификаций. Так, например, на устройствах Samsung начиная с определённого момента даже после отката изменений, счетчик Knox будет иметь значение 0x1, что является поводом для отказа в обслуживании;
  • Пользователь лишится технической поддержки от производителя устройства.
  • Некоторые приложения перестанут работать например приложения банков.

  • Получив доступ ко всем файлам системы, вы можете производить любые манипуляции связанные с вашим устройством, вплоть до удаления и изменения системных файлов, а также «неудаляемых» и «неизменяемых» без прав суперпользователя программ, таких как встроенные Сервисы и Службы Google;
  • Появляется возможность создавать, переименовывать, менять дату и время создания и переименования, редактировать и всяческим образом изменять файлы системы[2].
  • Можно настраивать гаджет как угодно пользователю, увеличивать громкость динамика, проводить системную настройку камеры, редактировать чувствительность микрофона, редактировать диски файловой системы, сменить системный шрифт, boot-анимацию и т. д.;
  • Возможность тонкой настройки и разгона/посадки процессора;
  • Редактирование системных файлов (включая vold.fstab);
  • Изменение содержимого директории /system (только Full Root);
  • Кардинальная очистка встроенной памяти (скрытый кэш, или dalvik cache) с помощью recovery или программ наподобие SDMaid Pro;
  • Использование всех функций программ, требующих root для полноценной работы (для некоторых или всех функций);
  • Полная блокировка рекламы;
  • Все возможности для взлома приложений;
  • Возможность повысить уровень безопасности приложений путём тонкого контроля доступа к различным компонентам системы — аккаунтам, файлам, календарям, телефону, смс и т. д.

  • Определение root на The Linux Information Project (англ.)

Дополнительно:  Камера для Скайпа. Не работает камера в Скайпе

  1. Анна. Что Такое Рут-Права На Андроид? AndroidMir.org (8 октября 2017). Дата обращения: 31 января 2019. Архивировано 1 февраля 2019 года.
  2. Что такое Root-права на android и как их получить (рус.). ESET NOD32. Дата обращения: 28 октября 2022. Архивировано 28 октября 2022 года.

Всякое-разное о многопользовательской Linux и администраторском аккаунте Root

1. Многопользовательская система
Итак, еще раз. является многозадачной многопользовательской (сколько много мног’ов :)) операционной системой. Это означает, что одновременно с системой могут работать несколько пользователей, да и каждый из них может запускать несколько приложений. И при этом, например, Вы можете зайти в систему локально, а другой пользователь – удаленно, воспользовавшись протоколами удаленного доступа (telnet, ssh, ftp).

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

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

Условно и «сленгово» говоря — это царь и бог :). Пользователь обладает полномочиями в системе, вплоть до её полного и безвозвратного удаления, т.е. это, так сказать, системный администратор в отдельно взятой операционной системе.

Любая команда, введенная в терминале, таки будет выполнена безоговорочно и бесповоротно. Так что работать под -ом в любых ()-системах не приветствуется и даже, можно сказать, не принято. Например, кто-то решил «подшутить» и выложил в интернете вредоносную программу, а Вы взяли и скачали её, да еще и начали устанавливать ее на своем компьютере (трудно представить себе таких экстремалов, но все же — а вдруг найдутся такие 🙂 ). Если запуск этой программы будет произведен через суперпользователя, то Ваша система может быть легко уничтожена, а вот запуск этой программы от имени простого пользователя ни к чему не приведет — система просто откажется выполнять ее, сославшись на то, что у Вас не хватает полномочий. Это лишний повод присмотреться, а нужно ли Вам вообще это устанавливать. Вот поэтому в (unix)-системах вход под именем пользователя запрещен.

Давайте начнем с . Эта команда позволяет запустить любую команду с привилегиями . Но использовать эту команду могут не все пользователи, а только те, которые внесены в файл / (в этом файле в доступной форме расписывается — каким пользователям или группам можно выполнять команду , а это значит, что рядовой пользователь, не внесенный в этот файл, даже при сильном своем желании не сможет воспользоваться правами ).

О каталоге мы поговорим в другой раз — потому что это отдельная тема. Но хочется сказать, что в этом каталоге содержатся почти все настройки системы (кроме пользовательских, пользовательские настройки хранятся в домашнем каталоге пользователя ), при этом в каталоге находится множество текстовых файлов. А поскольку файлы текстовые, то их можно редактировать любым текстовым редактором, что очень упрощает работу с системными файлами и повышает надежность системы. К слову, даже если удалить один из конфигурационных файлов каталога , система продолжит работу как ни в чем не бывало! Конечно, она будет работать не так, как до удаления этого файла, но все же она, в отличие от , будет работать.

Теория это, конечно, хорошо, но давайте немного попрактикуемся. Например, вам нужно отредактировать файл, для чего заходим в терминал и вводим:

sudo gedit /etc/sudoers

Просмотр файла sudoers linux

Откроется окно программы :

Открытие файла sudoers linux

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

nano в linux

Если мы введем без ту же команду:

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

файл sudoers linux

Видите, кнопка «» неактивна.

Теперь о команде .
Команда позволяет получить доступ к консоли (терминалу) ЛЮБОМУ пользователю (даже если этот пользователь не внесен в список файла ), но при условии, что он знает пароль . Разницу прочувствовали?

:
Команда предназначена для администраторов системы, а — для остальных пользователей, которым только иногда нужны права root.

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

Немного практики.
Давайте добавим нового пользователя в систему. Для этого нужно от суперпользователя ввести всего команды:

(задает/изменяет пароль)

Обратите внимание на знак перед командой. Таким знаком обозначается, что команду отдает суперпользователь (он же , он же бог и властелин, если перед командой стоит значок — то команда будет выполняться от простого пользователя).

Дополнительно:  Компьютер не видит карту памяти

Создание нового пользователя linux

Вот он, наш новый пользователь системы . Мы его создали и завели пароль на эту учетную запись.

Если пароль задан слишком простой, то Вам выдастся предупреждение, что пароль слишком доступный:

Изменение пароля linux

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

При создании нового пользователя для него в системе создастся каталог /home <имя пользователя>, куда скопируется содержимое каталога (в нем находится весь «джентльменский» набор, который должен быть в любом пользовательском каталоге).

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

Удалить пользователя из системы так же просто, как и завести его. Достаточно набрать команду:

удаление пользователя linux

Свойства пользователя в linux

Еще раз вернитесь к рисунку, где мы удаляли пользователя из системы. В системе остался один пользователь – Выделите его, нажмите на кнопку «» и Вы узнаете много интересного :). Например, обратите внимание на вкладку «», где можете включить пользователя в ту или иную группу, просто поставив галочку:

Менеджер пользователей в linux

С каждым новым пользователем создаются и новые группы. Если у пользователя на вкладке «» поставить галку на группе «», то у будет доступ к домашнему каталогу пользователя (а вот у таких полномочий не будет).

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

Давайте попробуем потренироваться на другом дистрибутиве (все предыдущие картинки относятся к дистрибутиву ), например, на (этот дистрибутив тоже популярен среди населения). Отвлекусь и напомню, что в каком бы дистрибутиве Вы не сидели, смысл работы будет идентичен, отличаться будут только команды. В данном конкретном случае в есть конфигуратор , и он по умолчанию не установлен в системе. Чтобы воспользоваться всеми прелестями этого конфигуратора, для начала установите его командой:

sudo apt-get install gnome-system-tools.

gnome-system-tools ubuntu

Пошел процесс установки данной утилиты:

установка утилиты в linux ubuntu

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

Потом в поиске можно набрать «группы» или «пользователи» и появится иконка утилиты

иконка linux, группы и пользователи

user-admin ubuntu linux командная строка

И нашему взору представляется графический интерфейс настроек пользователей и групп в :

ubuntu - параметры пользователей

Все современные дистрибутивы неплохо русифицированы, а поэтому более подробно останавливаться на рассмотрении этой утилиты мы не будем, но главные моменты осветим.

Понятно, что чтобы добавить нового пользователя, нужно нажать кнопку , чтобы удалить созданного пользователя – нажать кнопку . Чтобы изменить тип учетной записи – нужно щелкнуть по кнопке , напротив поля «». Существуетвида учетной записи:

  • Администратор () – пользователь может администрировать систему
  • Пользователь – пользователь может работать в системе, но не может администрировать её (использовать команду , устанавливать программы, управлять пользователями и т.д., т.п.)
  • Другое – эта учетная запись с особыми параметрами доступа, которые устанавливаются вручную. Для этого нужно воспользоваться вкладкой « ». На вкладке « » можно задать, какие операции может выполнять пользователь, а какие – нет.

привелегии пользователей в linux ubuntu

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

вкладка Дополнительно, пользователи, linux, ubuntu

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

Чтобы управлять группами – нужно воспользоваться кнопкой «».

управление группами пользователя linux ubuntu

Вы увидите список групп и кнопки «» (ну понятно же, что эта кнопка добавляет новую группу), «» (удаляет группу) и «» (с помощью этой кнопки Вы легко добавите/исключите членов группы). Все очень просто и интуитивно понятно.

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

Оцените статью
Master Hi-technology
Добавить комментарий