Sudo vs root; any actual differences?

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 su

is exactly the same as

sudo -s

or if that’s more like

sudo sa

doing ‘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 root

and to disable or lock root again

passwd -l root

Actually 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 sudo

If 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" | chpasswd

Actually this is looking more like the shadow file.

 python3 -c "from crypt import *; print('\n'+crypt('mypassword123', METHOD_SHA512));" | sed '/^$/d'

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 command

It 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 /etc

This 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
  1. # adduser example_user
  2. # passwd example_user
    Changing password for user example_user.
    New password:
    Retype new password:
    passwd: all authentication tokens updated successfully.
  3. # usermod -aG wheel example_user
  4. Check the sudoers file with visudo.

    # visudo
  5. Look 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) ALL
  6. Save and exit vi. Type ESC, then :WQ, then ENTER.

    Note: Never edit /etc/sudoers directly, always use visudo. 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!)
  7. # su - example_user
  8. $ 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.

  1. 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
  2. # useradd --create-home example_user
  3. # passwd example_user
  4. # usermod --append --groups wheel example_user
  5. Edit the sudoers file with visudo.

    # visudo
  6. ## Uncomment to allow members of group wheel to execute any command
    %wheel ALL=(ALL) ALL
  7. Save and exit visudo. Type ESC, then :WQ (lowercase), then ENTER.

    Note: Never edit /etc/sudoers directly, always use visudo. 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!)
  8. # su - example_user
  9. $ 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
  1. Install sudo. Some installations do not come with sudo installed. If your does not, install sudo with apt.

    # apt install sudo
  2. # 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
  3. # adduser example_user sudo
  4. # 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.

  1. Install sudo from the ports collection if it’s installed on your system. To install sudo from ports:

    # cd /usr/ports/security/sudo/
    # make install clean

    You can also install the binary sudo package using pkg:

    # pkg install sudo
  2. # adduser
  3. # pw group mod wheel -m example_user
  4. Edit the sudoers file with visudo.

    # visudo
  5. Look 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) ALL
  6. Save and exit vi. Type ESC, then :WQ, then ENTER.

    Note: Never edit /etc/sudoers directly, always use visudo. 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!)
  7. # su - example_user
  8. $ 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 doas instead of sudo.

  1. Install the binary sudo package. 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
  2. # useradd -m example_user
    # passwd example_user
    Changing password for example_user.
    New password:
    Retype new password:
  3. # user mod -G wheel example_user
  4. Check the sudoers file with visudo.

    # visudo
  5. Look 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: ALL
  6. Save and exit vi. Type ESC, then :WQ, then ENTER.

    Note: Never edit /etc/sudoers directly, always use visudo. 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!)
  7. # 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.

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

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.d
root ALL=(ALL:ALL)ALL
%sudo ALL=(ALL:ALL)ALL

Allows 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 root

Do not attempt to edit the sudoers file directly. Use the visudo command with root privileges.

Начало путешествия в Linux может быть несколько запутанным. Есть множество новых функций и терминов, которые вы, вероятно, никогда не слышали раньше. Два таких термина — это Root и Sudo.

Что такое Sudo и Root? Эти два термина являются одними из самых важных, которые вы ожидаете найти, когда речь заходит о более популярных дистрибутивах Linux. Конечно, понимание того, чем они являются, и их использование имеет первостепенное значение.

Являетесь ли вы новичком, впервые использующим Linux, или вернувшимся пользователем, который нуждается в обновлении, мы постараемся помочь вам начать правильный путь. Мы объясним, что именно представляет собой каждый из них, как они используются и почему они важны.

Каждый из двух терминов в первую очередь важен для доступа к определенным разрешениям. Точно такие же разрешения. В чем они отличаются — как получить доступ.

Дополнительно:  Силер bjm root canal sealer bjm rcs эндоканальный композитный набор шпр 5мл аксесс

Сначала мы начнем с 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 крайне ограничены. Он может управлять только своим каталогом и открывать для чтения определенные файлы из корня. Доступ для их изменения или установки программ отсутствует, что делает привилегии суперпользователя крайне важными при настройке ОС и решении разных проблем. Обычный пользователь ограничивается следующим набором прав:

  • чтение, запись и изменение любых атрибутов пользовательской папки;
  • то же самое и для каталога
  • выполнение программ в любом месте, где нет ограничений;
  • чтение файлов с соответствующим атрибутом для всех пользователей.
Дополнительно:  16 plants that take root and grow in water, without soil

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

Комьюнити теперь в Телеграм

Подпишитесь и будьте в курсе последних IT-новостей

Безопасность использования прав суперпользователя

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

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

Команда sudo и примеры ее использования

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

Использование команды sudo в Linux

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

 sudo program \\  program – название приложения, которое вы хотите запустить

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

sudo apt install program

В следующем разделе статьи речь пойдет о передаче прав суперпользователя, что тоже реализуемо при помощи . Я рассмотрю два полезных аргумента. Советую ознакомиться с ними, если хотите упростить выполнение действий через Терминал.

VDS Timeweb арендовать

Переключение на суперпользователя

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

Примерно так же работает и команда , но она обладает дополнительными аргументами, которые следует уточнить:

  • -c – позволяет выполнить команду;
  • -g – устанавливает группу для пользователя;
  • -G – дополнительные группы для юзера;
  • -l —login – один из режимов входа, при котором происходит переключение домашнего каталога;
  • -p – сохранение переменных окружения;
  • -s – выбор оболочки для выхода.

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

Предоставление и отзыв прав суперпользователя

Каждому пользователю в Linux можно предоставить root-права, добавив его в соответствующую группу. Точно так же их можно и отнять, если вдруг это понадобится. Рассмотрю три варианта действий.

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

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

sudo Linux

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

Для существующей учетной записи

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

Предоставление прав суперпользователя существующей учетной записи в Linux

Используйте предыдущую инструкцию для проверки внесенных изменений.

Откат прав суперпользователя

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

Откат прав суперпользователя в Linux

Это была вся основная информация о правах суперпользователя в 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/example

Switching 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) ALL

Additional 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.

Оцените статью
Master Hi-technology