Я есть root. разбираемся в повышении привилегий оs linux

Configuration

This article or section needs expansion.

Defaults skeleton

lists all the options that can be used with the command in the file.

See for more information, such as configuring the password timeout.

Using visudo

The configuration file for sudo is . It should always be edited with the command. visudo locks the file, saves edits to a temporary file, and checks it for syntax errors before copying it to .

Warning:

  • It is imperative that be free of syntax errors! Any error makes sudo unusable. Always edit it with visudo to prevent errors.
  • warns that configuring visudo to honor the user environment variables for their editor of choice may be a security hole, since it allows the user with visudo privileges to run arbitrary commands as root without logging simply by setting that variable to something else.

The default editor for visudo is vi. The package is compiled with and honors the use of the , and variables. is not used when is set.

To establish nano as the visudo editor for the duration of the current shell session, export ; to use a different editor just once simply set the variable before calling visudo:

# EDITOR=nano visudo

Alternatively you may edit a copy of the file and check it using . This might come in handy in case you want to circumvent locking the file with visudo.

To change the editor permanently, see . To change the editor of choice permanently system-wide only for visudo, add the following to (assuming nano is your preferred editor):

# Reset environment by default
Defaults      env_reset
# Set default EDITOR to nano, and do not allow visudo to use EDITOR/VISUAL.
Defaults      editor=/usr/bin/nano, !env_editor

Example entries

To allow a user to gain full root privileges when they precede a command with , add the following line:

USER_NAME   ALL=(ALL) ALL

To allow a user to run all commands as any user but only on the machine with hostname :

USER_NAME   HOST_NAME=(ALL) ALL

To allow members of group wheel sudo access:

%wheel      ALL=(ALL) ALL

Tip: When creating new administrators, it is often desirable to enable sudo access for the group and , since by default treats the members of the group as administrators. If the user is not a member of , software using Polkit may ask to authenticate using the root password instead of the user password.

To disable asking for a password for user :

Warning: This will allow any process running with your user name to use sudo without asking for permission.

Defaults:USER_NAME      !authenticate

Enable explicitly defined commands only for user on host :

USER_NAME HOST_NAME=/usr/bin/halt,/usr/bin/poweroff,/usr/bin/reboot,/usr/bin/pacman -Syu

Note: The most customized option should go at the end of the file, as the later lines overrides the previous ones. In particular such a line should be after the line if your user is in this group.

Enable explicitly defined commands only for user on host without password:

USER_NAME HOST_NAME= NOPASSWD: /usr/bin/halt,/usr/bin/poweroff,/usr/bin/reboot,/usr/bin/pacman -Syu

A detailed example is available at . Otherwise, see the for detailed information.

Sudoers default file permissions

The owner and group for the file must both be 0. The file permissions must be set to 0440. These permissions are set by default, but if you accidentally change them, they should be changed back immediately or sudo will fail.

# chown -c root:root /etc/sudoers
# chmod -c 0440 /etc/sudoers

Host Aliases

A host alias is a list of hostname, ip addresses, networks and netgroups (prefixed with a +). If you do not specify a netmask with a network the netmask of the hosts ethernet interface(s) will be used when matching.

 # This is all the servers
 Host_Alias SERVERS = 192.168.0.1, 192.168.0.2, server1
 # This is the whole network
 Host_Alias NETWORK = 192.168.0.0/255.255.255.0
 # And this is every machine in the network that is not a server
 Host_Alias WORKSTATIONS = NETWORK, !SERVER
 # This could have been done in one step with 
 # Host_Alias WORKSTATIONS = 192.168.0.0/255.255.255.0, !SERVERS
 # but I think this method is clearer.

Что такое man?

Команда man позволяет получить доступ к общей базе справки по команде, функции или программе. Обычно для просмотра справки программе надо передать название команды или другого объекта в системе. Синтаксис у неё такой:

$ man раздел название_страницы

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

  • 1 — команды оболочки или программы;
  • 2 — системные вызовы;
  • 3 — функции библиотек;
  • 4 — файлы из каталога /dev;
  • 5 — форматы файлов;
  • 6 — игры;
  • 7 — разное;
  • 8 — команды администрирования системы;
  • 9 — процедуры ядра.

Давайте рассмотрим несколько примеров. Для того чтобы посмотреть справку по команде man достаточно выполнить такую команду:

Для команды ls справка вызывается так:

Каждая страница справки разделена на несколько секций. Вы можете видеть их на снимках экрана выше. Это:

  • NAME — имя программы или команды, а также краткое её описание;
  • SYNOPSIS — синтаксис команды и порядок передачи в неё опций;
  • DESCRIPTION — более подробное описание команды;
  • CONFIGURATION — настройки программы;
  • OPTIONS — опции команды;
  • EXAMPLE — примеры использования;
  • AUTHORS — авторы программы.

Конечно существуют и другие разделы, но эти самые основные. Если информации про утилиту мало, то некоторые разделы могут быть объединены вместе, а некоторых может и вовсе не быть.

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

  • стрелка вверх/вниз — прокрутка информации вверх или вниз;
  • e или j — переместиться на одну строку вверх;
  • y или h — переместиться на одну строку вниз;
  • z — переместиться на одно окно вниз;
  • w — переместиться на одно окно вверх;
  • d — переместиться на пол окна вниз;
  • u — переместиться на пол окна вверх;
  • — поиск вхождений указанных после символов вперед;
  • ? — то же самое, что и предыдущее, только поиск назад;
  • n — в режиме поиска отображение следующего вхождения;
  • N — в режиме поиска отображение предыдущего вхождения.

С перемещением по странице, скорее всего, всё понятно. Для того чтобы искать какое-либо слово на странице нажмите клавишу и начните набирать слово, которое надо искать. Оно будет отображаться внизу окна:

Затем нажмите Enter и программа подсветит все вхождения этого слова в текст. Для поиска следующего вхождения нажимайте n:

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

При запуске утилиты можно использовать несколько опций, давайте рассмотрим эти опции. Их не так уж много и самые интересные из них только несколько. Опция -f позволяет посмотреть краткое описание справочной страницы. Например:

С помощью опции -k можно выполнять поиск по кратким описаниям справочных страниц. Например, давайте найдём все страницы, в описаниях которых есть слово printf:

Опция -K позволяет выполнять поиск по самим справочным страницам. Поиск выполняется методом перебора, поэтому занимает некоторое время:

Команда будет открывать найденные страницы по очереди. Для выхода нажмите Ctrl+C. Опция -L позволяет вручную задать язык, на котором будет отображена страница. Например для вывода информации про man на английском выполните:

А чтобы отобразить man на русском Linux надо передать этой опции значение ru_RU:

Однако для того чтобы это работало нужно чтобы в системе были установлены пакеты локализации для русского языка.

Problems and tips

PATH not set

A typical error using sudo to install a package might result in:

dpkg: warning: 'ldconfig' not found in PATH or not executable.
dpkg: warning: 'start-stop-daemon' not found in PATH or not executable.
dpkg: error: 2 expected programs not found in PATH or not executable.
Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin.

The packaged /etc/sudoers file contains this line:

Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

Previous versions did not include that line. If you had a locally modified /etc/sudoers (most would) and then upgraded and kept your locally modified version then this required line is now missing. It no longer overrides your PATH when using sudo. This most likely results in PATH not being set properly and not including the system directories. The fix is to merge your local changes into the new package /etc/sudoers file. Or to put your local changes in the new /etc/sudoers.d/ location as a uniquely named file such as /etc/sudoers.d/local-sudoers. See for details.

Sorry, user jdoe is not allowed to execute …

A typical session goes like this:

$ sudo test

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.

password for jdoe:
Sorry, user jdoe is not allowed to execute ‘/usr/bin/test’ as root on localhost.

This message means what it says: the user you’re running as isn’t allowed to execute the given command on the given machine. One confusing possible reason for this is that the administrator has just added user jdoe to a privileged group — but you’re still using the old login, which doesn’t have that new group information, and therefore has no new sudo-ing rights. People in this situation are usually advised to log out completely and back in again, though you can sometimes get away with just performing a «re-login on the spot» with su - $USER

The include directive

The standard /etc/sudoers in Wheezy as of 1.8.2-1 ends with a line:

#includedir /etc/sudoers.d

This makes it possible for other packages to provide snippets in /etc/sudoers.d/<packagename> which modify the configuration of sudo. It may look as if it needs to be edited to take out the leading numbersign (a.k.a. «hash» or «pound»), but no, the ‘#’ is part of the directive!

sudoers is read-only

Yes, the file /etc/sudoers is intentionally set read-only, even for root!

The explanation usually offered is that it was set up this way to ensure that admins only ever edit it via the command visudo. However, this theory doesn’t quite hold water. Being mode 0440 does nothing to impede sudo nano /etc/sudoers — most text editors will let you edit the file without complaining about the read-only bit. Besides, any time you do mangle /etc/sudoers, the fix may be as simple as su -c visudo, which is nothing compared to the kind of recovery procedure you’d have to go through if you broke something like /etc/inittab (mode 0644). So if there’s a good reason for the unorthodox permissions, it’s a mystery — contributions welcome.

Wrong HOME (and profile settings) behavior

If you are having problems when you sudo to your shell and your $HOME (and profile settings) doesn’t work as expected because your new HOME is /root, you need to know that the default sudo configuration in Squeeze resets all environmental variables. To restore the old behavior of preserving the user’s $HOME environment variable you can add this to your /etc/sudoers configuration file:

If you want to require the root password for use of sudo, rather than the user password, add the line:

If you want sudo group members to execute commands without password, add the line:

For more information read the .

Customize credentials cache timeout

As default, after asking a password, your credentials are cached by sudo and last for 15 minutes. You can change this behavior using the command visudo and customizing the timeout for a specific user:

bash: useradd: command not found

Use

to start the root shell with an environment similar to a normal ‘login’ shell. This includes initializing the environment variable $PATH for user root instead of simply inheriting it from the normal (non-sudo) user who does not have /sbin on her/his $PATH. See

This is how to enable sudo after a fresh install of Debian 10:

Then, log out of the desktop environment and log in again. You can check the success of the above by entering

Что такое Visudo?

Команда настраивается с помощью файла, расположенного в каталоге .

Предупреждение. Никогда не редактируйте этот файл в обычном текстовом редакторе! Всегда используйте для этой цели только команду !

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

Это не даст ошибкам конфигурации возможности блокировать операции , что может быть единственным способом получить привилегии root

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

Обычно открывает файл в текстовом редакторе . Однако в Ubuntu команда настроена на использование текстового редактора .

Если вы захотите изменить его обратно на , используйте следующую команду:

Выберите число, соответствующее желаемому варианту выбора.

В CentOS для изменения этого значения можно добавить следующую строку в :

Исходный файл для внесения изменений:

После настройки выполните эту команду для доступа к файлу :

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

Очень долго перечислять чего не может обычный пользователь Linux, проще сказать на что у него есть право, а именно при стандартной настройке полномочий для файлов в Linux, обычный пользователь может:

  • Читать, писать и изменять атрибуты файлов в своем каталоге
  • Читать, писать, изменять атрибуты файлов в каталоге /tmp
  • Выполнять программы там, где это не запрещено с помощью флага noexec
  • Читать файлы, для которых установлен флаг чтения для всех пользователей.

Если же нужно сделать что-то большее нам понадобятся права root пользователя linux. У root есть право делать все в вашей файловой системе независимо от того какие права установлены на файл.

Установка и настройка

В ОС Ubuntu sudo включена по умолчанию, а в Debian, если в процессе установки не был выбран соответствующий пакет, скорее всего будет следующая картина:

Значит, требуется установить недостающий пакет. Обновляем информацию о репозиториях и устанавливаем sudo:

Дожидаемся окончания процесса:

Скриншот №1. Процесс установки sudo

После успешной установки потребуется сконфигурировать sudo, определив, какие пользователи или группы смогут использовать повышение привилегий и в каком объеме. Все эти настройки хранятся в конфигурационном файле /etc/sudoers, однако вносить в него изменения напрямую настоятельно не рекомендуется. Для этих целей используется специальная команда:

которая запускает текстовый редактор с конфигурационным файлом:

Скриншот №2. Текстовый редактор

За предоставление прав здесь отвечают две строки:

Первая строка назначает права для учетной записи root, вторая устанавливает права для членов группы sudo, которая была создана при установке пакета (знак % перед названием означает, что имя относится к группе пользователей). Соответственно, у нас есть два основных способа предоставить пользовательской учетной записи право использовать sudo:

Добавить учетную запись пользователя (например, user) в группу sudo на сервере:

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

Создать в файле новую запись, например, для учетной записи user. Мы добавляем строку по аналогии с root:

Добавлять новую запись рекомендуется в тех случаях, когда список привилегий будет корректироваться (об этом чуть позднее). Если мы внесли изменения в файл, нужно их сохранить нажатием сочетания клавиш Ctrl-O и выйти из редактора — Ctrl-X.

Теперь можно проверить корректность работы:

Команда sudo запрашивает пароль текущего пользователя (в данном случае это user) — вводим его, и, если все сделано правильно, мы увидим содержание системного конфигурационного файла.

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

Для запуска в терминале команды с правами администратора просто наберите перед ней :

sudo <команда>

У вас попросят ввести ваш пароль. Будьте внимательны, пароль при вводе никак не отображается, это нормально и сделано в целях безопасности, просто вводите до конца и нажимайте Enter. После ввода пароля указанная команда исполнится от имени root.

Система какое-то время помнит введённый пароль (сохраняет открытой sudo-сессию). Поэтому при последующих выполнениях sudo ввод пароля может не потребоваться. Для гарантированного прекращения сессии sudo наберите в терминале

sudo -K

Кроме того, часто встречаются ошибки, связанные с каналами в Linux. При исполнении команды

sudo cat test.txt | grep text > result.txt

с правами root исполнится только , поэтому файл result.txt может не записаться. Нужно либо писать перед каждой командой, либо временно переходить под суперпользователя.

Environment

sudo utilizes the following environment variables. The security policy has control over the actual content of the command’s environment.

EDITOR'                 Default editor to use in -e (sudoedit) mode ifneither SUDO_EDITOR nor VISUAL is set.
MAIL’ In -i mode or when env_reset is enabled in sudoers, set to the mail spool of the target user.

HOME’ Set to the home directory of the target user if -i or -H are specified, env_reset or always_set_home are set in
sudoers, or when the -s option is specified and set_home is set in sudoers.

PATH’ May be overridden by the security policy.

SHELL’ Used to determine shell to run with -s option.

SUDO_ASKPASS’ Specifies the path to a helper program used to read the password if no terminal is available or if the -A option is specified.

SUDO_COMMAND’ Set to the command run by sudo.

SUDO_EDITOR’ Default editor to use in -e (sudoedit) mode.

SUDO_GID’ Set to the group ID of the user who invoked sudo.

SUDO_PROMPT’ Used as the default password prompt.

SUDO_PS1′ If set, PS1 will be set to its value for the program being run.

SUDO_UID’ Set to the user ID of the user who invoked sudo.

SUDO_USER’ Set to the login name of the user who invoked sudo.

USER’ Set to the target user (root unless the -u option is specified).

VISUAL’ Default editor to use in -e (sudoedit) mode if SUDO_EDITOR is not set.

/etc/sudo.conf'                          sudo front end configuration

Examples

Note: the following examples assume a properly configured security policy.

To get a file listing of an unreadable directory:

$ sudo ls /usr/local/protected
$ sudo -u yaz ls ~yaz

index.html

$ sudo -u www vi ~www/htdocs/index.html
$ sudo -g adm view /var/log/syslog
$ sudo -u jim -g audio vi ~jim/sound.txt
$ sudo shutdown -r +15 "quick reboot"
$ sudo sh -c "cd /home ; du -s * | sort -rn > USAGE"

Authors

Many people have worked on sudo over the years; this version consists of code written primarily by:

Todd C. Miller

See the CONTRIBUTORS file in the sudo distribution (http://www.sudo.ws/sudo/contributors.html) for an exhaustive list of people who have contributed
to sudo.

Caveats

There is no easy way to prevent a user from gaining a root shell if that user is allowed to run arbitrary commands via sudo. Also, many programs
(such as editors) allow the user to run commands via shell escapes, thus avoiding sudo‘s checks. However, on most systems it is possible to prevent
shell escapes with the (5) plugin’s noexec functionality.

It is not meaningful to run the cd command directly via sudo, e.g.,

$ sudo cd /usr/local/protected

EXAMPLES

Running shell scripts via sudo can expose the same kernel bugs that make setuid shell scripts unsafe on some operating systems (if your OS has a
/dev/fd/ directory, setuid shell scripts are generally safe).

Support

Limited free support is available via the sudo-users mailing list, see http://www.sudo.ws/mailman/listinfo/sudo-users to subscribe or search the
archives.

Disclaimer

sudo is provided »AS IS» and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and
fitness for a particular purpose are disclaimed. See the LICENSE file distributed with sudo or http://www.sudo.ws/sudo/license.html for complete
details.

Sudo 1.8.6p3 July 10, 2012 Sudo 1.8.6p3

Troubleshooting

SSH problem without TTY

This article or section is a candidate for merging with .

SSH does not allocate a tty by default when running a remote command. Without an allocated tty, sudo cannot prevent the password from being displayed. You can use ssh’s option to force it to allocate a tty.

The option only allows the user to run sudo if they have a tty.

# Disable "ssh hostname sudo <cmd>", because it will show the password in clear text. You have to run "ssh -t hostname sudo <cmd>".
#
#Defaults    requiretty

Permissive umask

This article or section is a candidate for merging with .

Sudo will union the user’s umask value with its own umask (which defaults to 0022). This prevents sudo from creating files with more open permissions than the user’s umask allows. While this is a sane default if no custom umask is in use, this can lead to situations where a utility run by sudo may create files with different permissions than if run by root directly. If errors arise from this, sudo provides a means to fix the umask, even if the desired umask is more permissive than the umask that the user has specified. Adding this (using ) will override sudo’s default behavior:

Defaults umask = 0022
Defaults umask_override

Root-права на Андроид и для чего они нужны

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

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

Основные цели rootaing (рутинга) состоят в получения прав «суперпользователя» или «рут» на девайсах Андроид – снятие запретов оператора связи или производителя для получения возможности манипулировать системными программами и запуска приложений, для функционирования которых необходимы права администратора.

Нужна помощь?

Не знаешь как решить проблему в работе своего гаджета и нужен совет специалиста? На вопросы отвечает Алексей, мастер по ремонту смартфонов и планшетов в сервисном центре.

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

Преимущества получения рут-прав:

  • Инсталляция приложения, которые требуют для своей работы root (драйверы, эмуляторы и пр.).
  • Доступ к программам, темам, ярлыкам, системным файлам и т.п. с возможностью их изменения.
  • Блокирование, замена или удаление предустановленного ненужного софта.
  • Установки сторонних прошивок и различных модов.
  • Активация дополнительный опций ОС Андроид.
  • Контроль работы программ (блокирование звонков, опасного ПО или оправки SMS на платные номера).
  • Возможность создания резервный копий, переноса информации.
  • Прочие привилегии.

Наличие рут-прав само по себе какие-либо преимущества не предоставляет, а дает возможность выполнять определенные действия с девайсом. Теперь рассмотрим недостатки root:

  • Отключение официальных обновлений прошивки гаджета через интернет (FOTA или OTA).
  • Лишение гарантий от производителя (не для всех устройств).
  • Отключение неразрешенного доступа и защиты от вредоносного ПО.
  • Угроза поломки девайса при неумелом использовании прав «суперпользователя».

su и sudo в разных дистрибутивах Linux

su — это традиционный (более старый) способ переключения на учетную запись root (и получение повышенных прав) в Linux.

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

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

С другой стороны, другие дистрибутивы Linux, такие как , при установке создают обе учетные записи: обычного пользователя и суперпользователя (root).

Тонкая настройка

Таким образом, обычный пользователь может запускать команды с правами учетной записи root не зная ее пароль. Это очень удобно, но может быть небезопасно — есть ли возможность ограничить круг команд, которые можно исполнять посредством sudo? Да, и поможет нам в этом тот же самый конфигурационный файл. Снова запускаем visudo и разбираемся дальше. Нас интересуют параметры, указанные после имени пользователя:


Скриншот №3. Настройки ограничения команд

Разберем их подробнее:

  • ALL=(ALL:ALL) ALL — первый параметр определяет к какому хосту применяется конфигурация. При использовании выделенного сервера параметр можно оставить без изменений;
  • ALL=(ALL:ALL) ALL — параметры в скобках определяют с полномочиями какого пользователя (первый параметр) и/или группы (второй параметр) будет выполняться команда. По умолчанию sudo выполняет команду от имени root, однако при запуске с ключом –u можно указать другую учетную запись, а с ключом –g другую группу, чьи полномочия будут использованы при запуске;
  • ALL=(ALL:ALL) ALL — третий параметр определяет к каким файлам и командам относятся данные настройки.

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

дает право пользователю user с помощью sudo осуществлять перезагрузку сервера командой sudo /sbin/shutdown –r и просматривать файлы с помощью sudo /bin/cat. Другие команды через sudo выполняться не будут. Например, при попытке выключить сервер командой sudo /sbin/shutdown –h, получим ответ:

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: