It strongly depends on how you call your program with sudo or su.
E.g. on the system on which I am in this moment:
.bashrc COMMAND $HOME $USER Env. $PATH 1. sudo -i (root) root root [1] 2. sudo -s (USER) root USER /home/${USER}/bin:[1] 3. sudo /bin/bash (USER) root USER /home/${USER}/bin:[1] 4. sudo su (root) root USER [1]:/usr/games:/usr/local/games 5. sudo su - (root) root root [1] You can run the program under sudo -i as you were logged as root with su -,
but you can have different behaviour if you run it with sudo MyCommand or with su -c MyCommand.
From man su:
From man sudo
I was wonder if
sudo suis exactly the same as
sudo -sor if that’s more like
sudo sadoing ‘su’ directly is not possible as you need the root password but the account is disabled by default.
here’s how to enable
sudo su
passwd root
passwd -u rootand to disable or lock root again
passwd -l rootActually root still cant use SSH to login directly by default anyway so it is added security if you eventually disable the original login account from sudoers.
gpasswd -d username sudoIf you also double up the length of the passwords (for both accounts) other then an obvious guessable plain doubling so say 16 characters then it’s pretty secure. Actually to this point it may still be untrue since man crypt shows ‘By taking the lowest 7 bits of each of the first eight characters of the key, a 56-bit key is obtained.’ may still only use the first 8 chars anyway, my tests say otherwise so maybe that’s another good question about password lengths.
MasterJames Lesson of the day and every day for many things is: old school was always better, changing perfection is normal but it doesn’t make it right.
Only thing different from way back is you can’t SSH directly to root.
If FTP is not as secure maybe don’t use it anyway. use rsync over SSH etc.
echo "root:newword1" | chpasswdActually this is looking more like the shadow file.
python3 -c "from crypt import *; print('\n'+crypt('mypassword123', METHOD_SHA512));" | sed '/^$/d'- What is Root?
- What is Sudo?
- Run Commands as Sudo
- Sudo Vs. Root
- Create a Sudo User on AlmaLinux, CentOS, Fedora, Rocky Linux, and VzLinux
- Create a Sudo User on Arch Linux
- Create a Sudo User on Debian & Ubuntu
- Create a Sudo User on FreeBSD
- Create a Sudo User on OpenBSD
- More about the sudoers File
- Почему Sudo — лучшая альтернатива Root (/)
- Sudoers
- Предназначение root-прав в Linux
- Безопасность использования прав суперпользователя
- Команда sudo и примеры ее использования
- Переключение на суперпользователя
- Предоставление и отзыв прав суперпользователя
- Создание нового пользователя с root
- Для существующей учетной записи
- Откат прав суперпользователя
- What is sudo / root?
- Using Sudo
- Switching to the root user
- Giving yourself root rights
- Additional steps with Debian
What is Root?
When logged in as root, the terminal command prompt symbol changes from $ to #. For example:
$ echo 'This is a normal user shell'
# echo 'This is a root shell'What is Sudo?
- Grant users or groups of users the ability to run certain commands with elevated or root privileges.
- View a log of the user ID of each user that uses sudo.
- Control what command a user can use on a host system.
Sudo keeps a log of all commands and arguments executed in the /var/log/auth.log file, which can be analyzed in the event something breaks.
Run Commands as Sudo
To run commands as sudo, prepend the command with sudo:
$ sudo commandIt will prompt you for a password, enter your account password, and click ENTER:
$ sudo command
[sudo] password for user:Now, command is going to run with elevated privileges.
Sudo Vs. Root
$ rm -rf /etcThis flaw also extends to running code or applications as root; a small bug in the application could erase some system files because the application is running under the highest privileges.
Create a Sudo User on AlmaLinux, CentOS, Fedora, Rocky Linux, and VzLinux
This section applies to:
- AlmaLinux
- CentOS 7 and later
- Fedora 31 and later
- Rocky Linux
- VzLinux
# adduser example_user# passwd example_user Changing password for user example_user. New password: Retype new password: passwd: all authentication tokens updated successfully.# usermod -aG wheel example_userCheck the sudoers file with
visudo.# visudoLook for the wheel group. Remove the comment if the line is disabled. It should look like this when you are ready to save the file.
## Allows people in group wheel to run all commands %wheel ALL=(ALL) ALLSave and exit vi. Type ESC, then :WQ, then ENTER.
Note: Never edit
/etc/sudoersdirectly, always usevisudo. The visudo utility performs syntax checking before committing your edits to the file, because a malformed sudoers file can break your system. If you make an error, you’ll see this when exiting visudo.visudo: >>> /etc/sudoers: syntax error near line 64 <<< What now? Options are: (e)dit sudoers file again e(x)it without saving changes to sudoers file (Q)uit and save changes to sudoers file (DANGER!)# su - example_user$ whoami example_user $ sudo whoami [sudo] password for example_user: root
Create a Sudo User on Arch Linux
This section applies to any recent version of Arch Linux.
Install
sudo, because it’s not included as part of the base installation. If you haven’t done an update for a while, remember to update your local repository databases first.# pacman --sync sudo# useradd --create-home example_user# passwd example_user# usermod --append --groups wheel example_userEdit the sudoers file with
visudo.# visudo## Uncomment to allow members of group wheel to execute any command %wheel ALL=(ALL) ALLSave and exit visudo. Type ESC, then :WQ (lowercase), then ENTER.
Note: Never edit
/etc/sudoersdirectly, always usevisudo. The visudo utility performs syntax checking before committing your edits to the file, because a malformed sudoers file can break your system. If you make an error, you’ll see this when exiting visudo.visudo: >>> /etc/sudoers: syntax error near line 64 <<< What now? Options are: (e)dit sudoers file again e(x)it without saving changes to sudoers file (Q)uit and save changes to sudoers file (DANGER!)# su - example_user$ whoami example_user $ sudo whoami We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things: #1) Respect the privacy of others. #2) Think before you type. #3) With great power comes great responsibility. [sudo] password for example_user: root
Create a Sudo User on Debian & Ubuntu
This section applies to:
- Debian 9 «Stretch» and later
- Ubuntu 16.04 and later
Install sudo. Some installations do not come with sudo installed. If your does not, install sudo with apt.
# apt install sudo# adduser example_user Adding user `example_user' ... Adding new group `example_user' (1001) ... Adding new user `example_user' (1001) with group `example_user' ... Creating home directory `/home/example_user' ... Copying files from `/etc/skel' ... New password: Retype new password: passwd: password updated successfully Changing the user information for example_user Enter the new value, or press ENTER for the default Full Name []: Example User Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] y# adduser example_user sudo# su - example_user$ whoami example_user $ sudo whoami [sudo] password for example_user: root
Create a Sudo User on FreeBSD
This section applies to FreeBSD 11 and later.
Install
sudofrom the ports collection if it’s installed on your system. To install sudo from ports:# cd /usr/ports/security/sudo/ # make install cleanYou can also install the binary
sudopackage using pkg:# pkg install sudo# adduser# pw group mod wheel -m example_userEdit the sudoers file with
visudo.# visudoLook for the wheel group. Remove the comment if the line is disabled. It should look like this when you are ready to save the file.
## Allows people in group wheel to run all commands %wheel ALL=(ALL) ALLSave and exit vi. Type ESC, then :WQ, then ENTER.
Note: Never edit
/etc/sudoersdirectly, always usevisudo. The visudo utility performs syntax checking before committing your edits to the file, because a malformed sudoers file can break your system. If you make an error, you’ll see this when exiting visudo.visudo: >>> /etc/sudoers: syntax error near line 64 <<< What now? Options are: (e)dit sudoers file again e(x)it without saving changes to sudoers file (Q)uit and save changes to sudoers file (DANGER!)# su - example_user$ whoami example_user $ sudo whoami [sudo] password for example_user: root
Create a Sudo User on OpenBSD
This section applies to OpenBSD 6.6 and later.
Please see Introduction to doas on OpenBSD if you prefer to use
doasinstead ofsudo.
Install the binary
sudopackage. Choose option 1 unless you know why you need another package.# pkg_add sudo quirks-3.187 signed on 2020-05-19T14:41:48Z Ambiguous: choose package for sudo a 0: <None> 1: sudo-1.8.31 2: sudo-1.8.31-gettext 3: sudo-1.8.31-gettext-ldap Your choice: 1 sudo-1.8.31: ok# useradd -m example_user # passwd example_user Changing password for example_user. New password: Retype new password:# user mod -G wheel example_userCheck the sudoers file with
visudo.# visudoLook for the wheel group. Remove the comment if the line is disabled. It should look like this when you are ready to save the file.
# Uncomment to allow people in group wheel to run all commands # and set environment variables. %wheel ALL=(ALL) SETENV: ALLSave and exit vi. Type ESC, then :WQ, then ENTER.
Note: Never edit
/etc/sudoersdirectly, always usevisudo. The visudo utility performs syntax checking before committing your edits to the file, because a malformed sudoers file can break your system. If you make an error, you’ll see this when exiting visudo.visudo: >>> /etc/sudoers: syntax error near line 64 <<< What now? Options are: (e)dit sudoers file again e(x)it without saving changes to sudoers file (Q)uit and save changes to sudoers file (DANGER!)# su - example_user
More about the sudoers File
Sudo uses the default sudoers security policy and keeps a special configuration file /etc/sudoers. This file can be used to control access rights and password prompt timeouts.
Note: You must have elevated privileges to view the sudoers file
Open the /etc/sudoers file; it should look like this:
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/
sbin:/bin"
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL:ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
# See sudoers(5) for more information on "@include" directives:
@includedir /etc/sudoers.droot ALL=(ALL:ALL)ALL%sudo ALL=(ALL:ALL)ALLAllows all members of group sudo to execute any command.
Note: ‘%’ in the sudoers file represents a group
As you can see from the first line in the /etc/sudoers file:
# This file MUST be edited with the 'visudo' command as rootDo not attempt to edit the sudoers file directly. Use the visudo command with root privileges.
Начало путешествия в Linux может быть несколько запутанным. Есть множество новых функций и терминов, которые вы, вероятно, никогда не слышали раньше. Два таких термина — это Root и Sudo.
Что такое Sudo и Root? Эти два термина являются одними из самых важных, которые вы ожидаете найти, когда речь заходит о более популярных дистрибутивах Linux. Конечно, понимание того, чем они являются, и их использование имеет первостепенное значение.
Являетесь ли вы новичком, впервые использующим Linux, или вернувшимся пользователем, который нуждается в обновлении, мы постараемся помочь вам начать правильный путь. Мы объясним, что именно представляет собой каждый из них, как они используются и почему они важны.
Каждый из двух терминов в первую очередь важен для доступа к определенным разрешениям. Точно такие же разрешения. В чем они отличаются — как получить доступ.
Сначала мы начнем с Root, что это такое и почему это важно.
Что такое корень?
Корень, часто называемый «суперпользователем», представляет собой специальный каталог, представленный косой чертой (/). Root имеет доступ ко всем файлам и командам в любой Unix-подобной операционной системе.
Не путать с домашним каталогом пользователя root, который представлен как / root, Root (/) является отправной точкой для всего каталога, иерархия которого выстроена аналогично иерархии дерева, из которого разветвляются все остальные каталоги. от.
Доступ к корневым разрешениям
Те, кто имеет необходимые разрешения для доступа к Root, имеют специальные привилегии, которые позволяют им изменять систему по своему усмотрению. Эти привилегии также предоставляют возможность предоставлять другим пользователям определенные права доступа. Глупое и безрассудное использование такой силы может привести к катастрофическим последствиям для системы. Вы можете наблюдать полный и полный сбой системы или, по крайней мере, поврежденную систему.
Это иллюстрирует важность такой системы, как Root. Это в значительной степени является система. Слишком сильное вмешательство может привести к неблагоприятным результатам, поэтому Root следует использовать только для включения других привилегий суперпользователя на определенных учетных записях.
Используя команду visudo для редактирования / etc / sudoers, вы можете предоставить минимальные привилегии другим типам учетных записей, например супервизору, где они могут добавлять новых пользователей и изменять свои учетные записи без необходимости входа в сам Root.
С этого момента эти учетные записи больше не будут нуждаться в доступе к Root и вместо этого могут использовать команду sudo для выполнения задач управления пользователями. Другие задачи по-прежнему требуют разрешений суперпользователя, которые может предоставить только пользователь root. Если вам когда-либо понадобится предоставить дополнительные разрешения, вы можете повторить шаги, описанные выше, предоставить их, а затем использовать команду выхода для немедленного возврата к текущей учетной записи пользователя.
Избегайте использования Root для изменения чего-либо на уровне аккаунта. Root должен быть зарезервирован только для системных изменений. За исключением пользователя root, доступ к другим учетным записям запрещен. Добавьте разрешения на основе потребностей для других пользователей и групп, чтобы они могли получить доступ к тому, что необходимо, с помощью команды sudo.
Что такое судо?
Команда Sudo может помочь вам обойти надоедливую подсказку «Отказано в доступе», с которой вы, возможно, столкнулись при попытке запустить что-либо в командном терминале. Добавьте префикс sudo к любой команде Linux, и он запустит указанную команду с повышенными привилегиями, которые необходимы для выполнения определенных административных задач.
Вы можете сравнить sudo с менее дружественной версией диалогового окна контроля учетных записей пользователей Windows, которое появляется всякий раз, когда вы пытаетесь что-то важное. Вы знаете, тот, который спрашивает, хотите ли вы продолжить то, что вы делаете, требует нажатия YES или OK, а затем продвигается с запросом. Судо такой, но немного более драматичный на практике.
Без соответствующих разрешений в Linux все очень быстро становится неуклюжим. Важные файлы, которые вы думали, что сохранили, возможно, не сохранены правильно. Исходный код, который вы пытаетесь скомпилировать, не делает. Возможно, недавно установленная программа больше не будет работать. В других случаях вы можете просто получить штамп «Отказано в доступе», который не позволит вам двигаться дальше. Вы можете избежать всего этого, сначала запросив разрешение, используя sudo в качестве префикса к своим командам.
Что-то такое простое, как перезагрузка вашей системы, потребует привилегий суперпользователя. Если вы введете перезагрузку без sudo, вы получите приглашение «Отказано в доступе». Вместо этого, чтобы обойти надоедливую подсказку, введите
Вы должны получить совсем другое приглашение. Тот, который позволяет вам знать, что ваша система теперь будет перезагружаться.
После использования sudo может потребоваться ввести пароль учетной записи. Убедитесь, что вы вводите пароль своей учетной записи, а не пароль учетной записи root. До тех пор, пока пароль правильный, команда должна быть введена.
Почему Sudo — лучшая альтернатива Root (/)
Использование sudo намного безопаснее для вашей системы, чем вход в root и попытки выполнения команд. Вы рискуете что-то испортить, находясь в режиме root, что возможность выполнять повышенные команды без риска — не проблема.
Сделайте себе одолжение и используйте sudo. Опечатки, кошка, прыгающая на ваших коленях, и даже гнев Божий представляют меньшую угрозу для вашей системы. Судо также является наиболее предпочтительным способом работы в дистрибутиве Ubuntu. Так что, если вы используете именно это, вам следует хорошо ознакомиться с командой.
Sudoers
Мы уже затрагивали эту тему ранее, но никогда не обсуждали, что это такое. Sudoers — это файл, который контролирует, какие учетные записи имеют доступ к команде sudo. По умолчанию вы можете найти файл, расположенный в / etc / sudoers. Вы можете безопасно редактировать этот файл с помощью команды visudo, поскольку vi является редактором с повышенными привилегиями.
Visudo позволит вам отредактировать файл sudoers и сохранить изменения. Он также заблокирует файл, не позволяя другим лицам вносить в него изменения. Как только вы закончите редактирование файла, ошибки будут проанализированы из файла перед сохранением.
Файл sudoers содержит много различных параметров, где вы можете указать, какие пользователи каких групп могут выполнять определенные команды. Чтобы предоставить пользователю возможности команды sudo, введите имя пользователя, затем пробел и слово ALL во всех заглавных буквах.
имя пользователя ВСЕ
То же самое можно сделать для групп, добавив% перед именем группы, а затем ALL во всех заглавных буквах.
% groupname ALL
Теперь пользователи и группы, которым вы предоставили разрешения sudo, будут иметь полные права root.
В дистрибутивах Linux пользовательские привилегии предоставляются путем открытия доступа к root. Наличие таких прав позволяет использовать функциональность операционной системы более широко и выполнять необходимые действия в корневом каталоге.
Давайте детально обсудим, что может суперпользователь в Linux, как настроить root и для чего нужна команда
Предназначение root-прав в Linux
Права обычного пользователя в Linux крайне ограничены. Он может управлять только своим каталогом и открывать для чтения определенные файлы из корня. Доступ для их изменения или установки программ отсутствует, что делает привилегии суперпользователя крайне важными при настройке ОС и решении разных проблем. Обычный пользователь ограничивается следующим набором прав:
- чтение, запись и изменение любых атрибутов пользовательской папки;
- то же самое и для каталога
- выполнение программ в любом месте, где нет ограничений;
- чтение файлов с соответствующим атрибутом для всех пользователей.
При наличии рут-прав у юзера появляется гораздо больше возможностей и расширяются границы взаимодействия с операционной системой. Становятся доступными любые действия со всеми папками и файлами.
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Безопасность использования прав суперпользователя
Если с предназначением root-прав в Linux все понятно, то вот к безопасности их использования есть вопросы. В основном, относится это к серверным машинам, поскольку риск взлома домашнего компьютера очень мал, да и кому нужны файлы обычного пользователя, чтобы ради этого затевать процедуру взлома. Если вы используете Linux как обычную операционную систему, работаете с документами и стандартными программами, используйте root для установки приложений и защиты системы от случайных изменений, которые могут внести другие пользователи компьютера.
С серверной частью все гораздо сложнее, поскольку рут как таковой не предоставляет полной защиты. Часто используемые пароли взламываются путем перебора или поиском бэкдора. Поэтому не стоит полагаться исключительно на защиту паролем, если вы владеете файлами сайтов или используете сервер для других целей. Займитесь настройкой файрвола, если это повысит уровень защиты.
Команда sudo и примеры ее использования
тесно связана с root в Linux, поскольку отвечает за передачу прав суперпользователя и позволяет от его имени выполнять команды в Терминале. Существует несколько ее вариаций, использующихся при разных обстоятельствах. Подходит эта команда как для выполнения всего одного действия, так и для передачи прав на всю текущую сессию.

Самый простой пример использования – запуск программы от имени суперпользователя. Для этого вводится:
sudo program \\ program – название приложения, которое вы хотите запустить
применяется для установки софта, команда в таком случае обретает вид:
sudo apt install programВ следующем разделе статьи речь пойдет о передаче прав суперпользователя, что тоже реализуемо при помощи . Я рассмотрю два полезных аргумента. Советую ознакомиться с ними, если хотите упростить выполнение действий через Терминал.

Переключение на суперпользователя
Еще раз уточню, что команда идеально подходит для получения необходимых привилегий без переключения учетной записи. Ее можно использовать как для выполнения одного действия, так и нескольких. Если вы желаете временно получить рут-права через эту команду, введите . В первом случае домашний каталог остается текущим, а во втором меняется на /root.
Примерно так же работает и команда , но она обладает дополнительными аргументами, которые следует уточнить:
- -c – позволяет выполнить команду;
- -g – устанавливает группу для пользователя;
- -G – дополнительные группы для юзера;
- — -l —login – один из режимов входа, при котором происходит переключение домашнего каталога;
- -p – сохранение переменных окружения;
- -s – выбор оболочки для выхода.
Вы уже сами решайте, какой вариант хотите использовать, и готовы ли смириться со всеми ограничениями и недостатками, которые накладывает каждый из них.
Предоставление и отзыв прав суперпользователя
Каждому пользователю в Linux можно предоставить root-права, добавив его в соответствующую группу. Точно так же их можно и отнять, если вдруг это понадобится. Рассмотрю три варианта действий.
Создание нового пользователя с root
Допустим, что вы, единственный юзер в Linux, хотите создать еще одну учетную запись с правами суперпользователя. В таком случае алгоритм действий обретет следующий вид:

- Откройте Терминал и введите команду
- В консоли появятся инструкции по созданию нового пользователя. Присвойте пароль и подтвердите действие, чтобы завершить создание.
- Добавьте новую учетную запись в группу sudo, введя user здесь тоже понадобится заменить).
- Проверьте выполненные действия, переключившись на новую учетную запись через . Для подтверждения введите пароль (при вводе символы не отображаются на экране).
- Выполните любую команду с и убедитесь, что все прошло успешно.
Для существующей учетной записи
Если учетная запись уже добавлена, в консоли остается ввести только одну команду, чтобы добавить пользователя в группу sudo и разрешить ему получение рут-прав. Сама команда представлена ниже, вам остается только скопировать ее и поменять имя юзера.

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

Это была вся основная информация о правах суперпользователя в Linux. Вы знаете, что дают такие привилегии, как их правильно использовать и управлять пользователями. В качестве рекомендации скажу, что всегда нужно читать текст ошибок, появляющихся в Терминале, если что-то пошло не так. Это позволит вам быстрее решить проблему без траты времени на поиски в Google.
What is sudo / root?
Using Sudo
You use ‘sudo’ by placing it in front of the command you want to execute, for example:
sudo nano /var/log/exampleSwitching to the root user
- Switching to the root user and (automatically) invoking a new login shell. This resets most environment variables and is the cleanest and most secure method for switching to the root user. It is done using the command:
- Switching to the root user without invoking a new login shell. You could say that using this method, you’re faking being a root user.
CentOS 7 (or earlier) / Debian 9 (or earlier):
With Ubuntu, your account has root privileges by default and you use the command:
Giving yourself root rights
If you get a message that the sudo group does not exist, add the sudo group (if necessary). To do so, first open visudo:
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALLAdditional steps with Debian
Next, you give yourself root rights before you are actually able to use the sudo command, see the steps above.
Should you have any questions left regarding this article, do not hesitate to contact our support department. You can reach them via the ‘ContactUs’ button at the bottom of this page.






