https://losst.ru/prava-superpolzovatelya-linux
ПРАВА СУПЕРПОЛЬЗОВАТЕЛЯ В LINUXОчень долго перечислять чего не может обычный пользователь Linux, проще сказать на что у него есть право, а именно при стандартной настройке полномочий для файлов в Linux, обычный пользователь может:Читать, писать и изменять атрибуты файлов в своем каталогеЧитать, писать, изменять атрибуты файлов в каталоге /tmpВыполнять программы там, где это не запрещено с помощью флага noexecЧитать файлы, для которых установлен флаг чтения для всех пользователей.Если же нужно сделать что-то большее нам понадобятся права root пользователя linux. У root есть право делать все в вашей файловой системе независимо от того какие права установлены на файл.ВХОД ПОД СУПЕРПОЛЬЗОВАТЕЛЕМЧтобы войти под пользователем root можно переключиться в одну из виртуальных консолей, например, с помощью сочетания клавиш Ctrl+Alt+F1 и затем ввести логин root и пароль root пользователя.Вы получите полноценное окружение root с возможностью выполнять все действия, но такой способ очень непрактичный, так как вы теряете все преимущества использования графического интерфейса.Можно поступить полностью противоположным путем, ввести логин root и его пароль в графическом менеджере входа, чтобы окружение рабочего стола работало от имени root, и мы получаем все права root linux, но такой вариант крайне не рекомендованный, и очень опасный, вы можете случайно повредить всю систему. Поэтому этот способ был отключен во многих менеджерах входа.ПЕРЕКЛЮЧЕНИЕ НА СУПЕРПОЛЬЗОВАТЕЛЯ В ТЕРМИНАЛЕТеперь мы подошли к более интересному и практичному. С помощью специальных утилит вы можете переключить текущий эмулятор терминала в окружения суперпользователя и выполнять все следующие команды не от своего имени, а от его, таким образом, дав программе права root linux. Для этого существует утилита su. Вообще говоря, эта утилита позволяет не только переключаться на пользователя root но и на любого другого пользователя, но по умолчанию используется именно root. Рассмотрим ее подробнее. Команда su linux имеет следующий синтаксис:$ su опции пользовательВот ее основные опции:-c, —command — выполнить команду-g, —group — установить основную группу пользователя (только для root)-G —supp-group — дополнительные группы пользователя (только для root)-, -l, —login — режим входа, будут очищены и инициализированы с учетом нового пользователя все переменные окружения, а также изменен домашний каталог-p, —preserve-environment — сохранить переменные окружения-s, —shell — задать оболочку для входа—version — отобразить версию программы.Теперь немного поэкспериментируем, чтобы понять как работает команда su linux.Сначала выполним su без параметров, но для начала создадим переменную окружения, чтобы проверить как с ними обходится эта команда: export VAR=1Теперь выполняем: suТеперь смотрим что получилось: whoami$ pwd$ echo $VAR$ echo $PATH$ exit sudoИз этих команд мы видим, что теперь мы пользователь root, но домашней директорией считается директория нашего предыдущего пользователя и наша переменная не сохранилась также изменилась переменная PATH, теперь там добавлен путь /sbin.Теперь используем вход в режиме логина: su -И повторим ту же комбинацию: whoami$ pwd$ echo $VAR$ echo $PATH$ exitsudo1Та же ситуация, только на этот раз изменена ко всему еще и домашняя директория на директорию root. Но мы можем сохранить наши переменные окружения, если это нужно, для этого есть опция -p: su -psudo2Как видите, наша переменная осталась. Вы также можете переключится на любого другого пользователя. Например: su — testsudo3Получение прав суперпользователя таким способом используется во многих дистрибутивах, например, Debian, OpenSUSE, ArchLInux, Gentoo и т д. Но в Ubuntu, как дистрибутиве для начинающих вход под пользователем root отключен. Это сделано потому, что это тоже не очень безопасно, вы можете забыть что выполняете команду от root и что-то натворить в системе. Поэтому переходим к следующей программе.ПОЛУЧЕНИЕ ПРАВ ROOT БЕЗ ПЕРЕКЛЮЧЕНИЯЧтобы реализовать максимально безопасный интерфейс для работы с правами суперпользователя в Linux была разработана команда sudo. Давайте рассмотрим что такое sudo. Эта команда пишется перед каждой командой, которую нужно выполнить от имени суперпользователя, и для ее выполнения нужно ввести пароль уже не root, а всего лишь вашего пользователя. Так же, как и в предыдущей, в этой утилиты есть свои опции. Сначала рассмотрим синтаксис:$ sudo опции командаОпции программы:-b — выполнять запускаемую утилиту в фоне-E — сохранить переменные окружения-g — запустить команду от группы-H — использовать домашний каталог-l — показать список полномочий в sudo для текущего пользователя-r — использовать для команды роль SELinux-s — использовать оболочку-u — запустить команду от имени пользователя, если не задано используется root-i — не выполнять команду, а войти в оболочку, эквивалентно su -Вы можете выполнить те же эксперименты, только для этой команды, чтобы понять как использовать команду sudo. Например: sudo lsИли: sudo -u test lsИспользование sudo — это рекомендованный способ выполнять команды от имени суперпользователя в Linux. Так вы не забудете с чем имеете дело и меньше всего рискуете повредить систему. Но остался еще один нерешенный вопрос — как быть с графическими утилитами? Ведь команда sudo их не запускает, а запускать графическую оболочку от имени root небезопасно. Это мы и рассмотрим далее.ГРАФИЧЕСКИ ПРИЛОЖЕНИЯ ОТ ИМЕНИ СУПЕРПОЛЬЗОВАТЕЛЯДля запуска графических приложений от имени суперпользователя существуют специальные утилиты. Они сохраняют все необходимые переменные окружения и полномочия. В KDE это команда kdesu, а в Gnome команда gksu.Просто наберите gksu или kdesu, а затем нужную команду: kdesu dolphinЭта команда запустит файловый менеджер KDE с правами суперпользователя. В Gnome это будет выглядеть вот так: gksu nautilusПрограмма запросит пароль, уже в графическом окне, а потом откроется файловый менеджер.