Повышаем пользовательские привилегии в Linux

Команда sudo предлагает механизм предоставления доверенным пользователям административного доступа к системе без совместного использования пароля пользователя root.

Prefase

Как ты помнишь (и как должен помнить каждый адекватный администратор), работать в линуксе под рутом категорически не рекомендуется. В идеальном мире ты должен использовать его только для конфигурирования сервера, установки и обновления ПО и прочих чисто административных задач. Вся беда в том, что мы живем в обычном мире, который очень далек от идеального. Поэтому такая ситуация все же иногда бывает. Правда, в большинстве случаев чисто из-за халатности, ибо так уж исторически сложилось, что пользователям линукса приходилось разбираться в том, как работает их операционная система. А хоть немного разбираясь в системе и ее механизмах безопасности, под рутом уже сидеть не будешь. Поэтому сегодня, в отличие от Windows, где мы говорили о получении системных привилегий из-под админа, будем рассматривать только варианты повышения привилегий от непривилегированного пользователя до рута. Итак, приступим.

Метаданные пользователя Linux

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

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

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

Как узнать, являетесь ли вы администратором

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

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

Выберите свою операционную систему.

Windows 10 Windows 8.1 Windows 7  Компьютер не присоединен к домену

  1. Нажмите кнопку Пуск и введите словосочетание Панель управления.

  2. В окне панели управления откройте раздел Учетные записи пользователей и щелкните ссылку Изменение типа учетной записи.

  3. Выберите вариант Администратор. Если вы не можете выбрать этот вариант, обратитесь к обладателю прав администратора на компьютере и попросите назначить вам привилегии администратора или ввести свое имя администратора и пароль при запросе во время установки Office.

Читайте также:  Команды терминала Linux для начинающих. Часть первая

Компьютер присоединен к домену

  1. Нажмите кнопку Пуск и введите словосочетание Панель управления.

  2. В окне панели управления откройте раздел Учетные записи пользователей и щелкните ссылку Изменение типа учетной записи.

  3. В окне «Учетные записи пользователей» нажмите кнопку Свойства и откройте вкладку Членство в группах.

  4. Выберите вариант Администратор. Если вы не можете выбрать этот вариант, обратитесь к обладателю прав администратора на компьютере и попросите назначить вам привилегии администратора или ввести свое имя администратора и пароль при запросе во время установки Office.

Компьютер не присоединен к домену

  1. Нажмите кнопку Пуск и выберите пункт Панель управления.

  2. В окне панели управления выберите пункты Учетные записи пользователей и семейная безопасность >Учетные записи пользователей > Изменить тип учетной записи.

  3. Выберите вариант Администратор. Если вы не можете выбрать этот вариант, обратитесь к обладателю прав администратора на компьютере и попросите назначить вам привилегии администратора или ввести свое имя администратора и пароль при запросе во время установки Office.

Компьютер присоединен к домену

  1. Нажмите кнопку Пуск и выберите пункт Панель управления.

  2. В окне панели управления выберите пункты Учетные записи пользователей и семейная безопасность >Учетные записи пользователей > Изменить тип учетной записи.

  3. В окне «Учетные записи пользователей» нажмите кнопку Свойства и откройте вкладку Членство в группах.

  4. Выберите вариант Администратор. Если вы не можете выбрать этот вариант, обратитесь к обладателю прав администратора на компьютере и попросите назначить вам привилегии администратора или ввести свое имя администратора и пароль при запросе во время установки Office.

Компьютер не присоединен к домену

  1. Нажмите кнопку Пуск и выберите пункт Панель управления.

  2. В окне панели управления выберите пункты Учетные записи пользователей и семейная безопасность > Изменить тип учетной записи.

  3. Выберите вариант Администратор. Если вы не можете выбрать этот вариант, обратитесь к обладателю прав администратора на компьютере и попросите назначить вам привилегии администратора или ввести свое имя администратора и пароль при запросе во время установки Office.

Компьютер присоединен к домену

  1. Нажмите кнопку Пуск и выберите пункт Панель управления.

  2. В окне панели управления выберите пункты Учетные записи пользователей и семейная безопасность > Управление учетными записями.

  3. В окне «Учетные записи пользователей» нажмите кнопку Свойства и откройте вкладку Членство в группах.

  4. Выберите вариант Администратор. Если вы не можете выбрать этот вариант, обратитесь к обладателю прав администратора на компьютере и попросите назначить вам привилегии администратора или ввести свое имя администратора и пароль при запросе во время установки Office.

Выполнение команд в Windows от имени другого пользователя

Недавно у меня был странный случай с Windows Server 2012. Удалённо не удавалось войти в учётную запись Администратора, так как система никак не могла завершить предыдущую сессию. Такая же ситуация была и с несколькими пользователями, которые в это время работали на сервера. В общем, по непонятным причинам, Windows на серваке частично встала раком.

Выполнение команд в Windows от имени другого пользователя

Зайти на сервер удалось под одним из пользователей, но на перезагрузку у него естественно прав не было. Запустить командную строку cmd от имени администратора или выбрать такой вариант в свойствах ярлыка система тоже не давала. Тут то мне и пригодилась команда runas, предназначенная для выполнения команд под учетной записью пользователя, указанной в качестве параметра командной строки:

Выполнение команд в Windows от имени другого пользователя

runas /user:администратор «shutdown /r»

Выполнение команд в Windows от имени другого пользователя

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

Выполнение команд в Windows от имени другого пользователя

Если считаете статью полезной,не ленитесь ставить лайки и делиться с друзьями.

Выполнение команд в Windows от имени другого пользователя

Почему диски начинаются с буквы C и куда делись буквы A и B?Активация терминального сервера Windows Server 2003/2008/2008 R2[Решено] Thunderbird. Не удалось подключиться к ideapad 330: перенос системы на SSDОшибка RDP подключения: исправление шифрования CredSSPКопирует, сканирует, но не печатает. Простое решение проблемы с МФУ Canon MF 4410 в Windows 10

Выполнение команд в Windows от имени другого пользователя

Подробнее о группе администратора и группе sudo на сервере Ubuntu

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

Читайте также:  Как снять ограничение на загрузку файлов в 2 мб в phpMyAdmin на Debian

# grep -B1 -i ‘^%sudo’ /etc/sudoers

ИЛИ

$ sudo grep -B1 -i ‘^%sudo’ /etc/sudoers

Примеры возможных выводов данных:

# Allow members of group sudo to execute any command %sudo    ALL=(ALL:ALL) ALL

Давайте посмотрим на некоторые практические примеры.

Синтаксис

В синтаксисе данной команды нет ничего сложного.

sudo [параметры] [программа] [настройки]

Утилита дает возможность выполнить практически любую команду в ОС Linux. Сложностей не возникнет даже у нового пользователя.

Утилита «по умолчанию» запустит именно ту команду, которая была указана вами. Стоит отметить, что она будет запущена от имени «суперпользователя» root. Если вам требуется соблюдение определённых параметров, потребуется ввести настройки. Для этих целей в команде обязательно прописывается опция или еще ее называют аргумент.

Основные параметры:

  • «-A» (—askpass). В ОС «Линукс» согласно первоначальным настройкам запрашивается пароль от терминала. Если воспользоваться данной опцией, утилита предложит графическое введение параметров.
  • «-b» (—background). В этом случае будет запущена требуемая программа в фоновом режиме.
  • «-C» (—close-from). Здесь потребуется передать опции численное значение, которое будет более трех. С помощью такого функционала задаются файловые дескрипторы, которые распространяются на программу. Исключена вероятность классического вывода и ввода информации.
  • «-E» (—preserve-env). Эта функция передает переменное окружение, которое имеется у текущего пользователя, запускаемой программе. Опции дополнительно можно передавать определённый перечень переменных, которым разрешается доступ.
  • «-e» (—edit). С использованием опции появляется возможность редактирования обрабатываемого файла вместо запуска определённой команды. Этот файл помещается в созданный временно каталог, где корректируется через специальную программу. Стоит отметить, она установлена в ОС «по умолчанию». Если вы внесли изменения в файл, он будет сохранен с теми же правами.
  • «-g». В этом случае отображается указываемая вами группа вместо группы, присущей иному владельцу.
  • «-h». Опция даёт возможность запустить команду от иного имени, чаще всего, от имени иного хоста.
  • «-H» (—set-home). Появляется возможность создать свой каталог.
  • «-i» (—login). Такая опция дает возможность пройти авторизацию в определенной консоли от имени стороннего пользователя. Здесь определяется адрес домашней папки, загружается весь перечень переменных из окружения пользователя.
  • «-k». После введения опции sudo не сохраняет данные пароля. Спустя определенный промежуток времени повторно можно пользоваться утилитой, но обязательно нужно вводить пароль.
  • «-l» (—list). дает возможность посмотреть список команд, которые распространяются на удаленных пользователей.
  • «-n» (—non-interactive). Здесь запускается неинтеррактивный режим. При необходимости введения пароля на экране монитора появится ошибка.
  • «-p» (—prompt). позволяет использовать свои приглашения при вводе пароля.
  • «-r» (—role). Программа выполняется с контекстом SE Линукс. У него уже прописана первоначальная роль.
  • «-S». Опция дает возможность применить стандартный поток ошибок. Это осуществляется при запросе данных пароля.
  • «-s» (—shell). Есть возможность включить командный интерпретатор.
  • «-U» (—User). Такая команда применяется совместно с функцией «-l», дает возможность изучить имеющие привилегии у пользователя.
  • «-T» (—timeout). У пользователя появляется возможность настроить время осуществления определённой команды. Если оно закончится до того, как команда завершится, она закроется в принудительном порядке.
  • «-u». Такая опция дает возможность прописать имя пользователя.
  • «—». Эта функция исключит вероятность обработки последующих опций.
Читайте также:  TestDisk Review: программа для восстановления данных и разделов

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

Примеры

Стоит рассмотреть наиболее популярные примеры применения команды.

Весьма часто пользователям требуется запустить определённую программу с правами root. Для этих целей потребуется прописать «sudo». К примеру, поменяем пароль для пользователя «user».

sudo passwd user

Запуск программы от имени другого пользователя. В данном случае потребуется использовать опцию «-u».

sudo -u user nano

sudo –i localnet

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

sudo -e /etc/group

Запуск программы в фоне. Для этого нужна опция «-b», которая позволит выполнить задачу.

sudo -b программа -с /путь_к_файлу_с_конфигурацией.

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

Блокировка правил

Существует ряд способов контроля поведения и реакции sudo на вызов.

К примеру, команда updatedb в сочетании с пакетом mlocate относительно безвредна. Чтобы обычный пользователь мог выполнять её с привилегиями суперпользователя, не вводя пароль, можно создать такое правило:

GROUPONE ALL = NOPASSWD: /usr/bin/updatedb

Команда NOPASSWD значит, что система не будет запрашивать пароль. Также существует команда PASSWD, которая отвечает за противоположное поведение и используется по умолчанию.

NOPASSWD распространяется на всё правило, если команда PASSWD не отменяет его. Например, строка может выглядеть так:

GROUPTWO ALL = NOPASSWD: /usr/bin/updatedb, PASSWD: /bin/kill

Ещё одна удобная команда – NOEXEC, которая используется для предотвращения опасного поведения определенных программ. К примеру, некоторые команды, такие как less, могут вызывать другие команды:

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

Чтобы запретить такое поведение, можно использовать следующую строку:

username ALL = NOEXEC: /usr/bin/less