- Команда Sudo в Linux
- Установка Sudo (команда sudo не найдена)
- Установите Sudo в Ubuntu и Debian
- Установите Sudo на CentOS и Fedora
- Добавление пользователя в Sudoers
- Как использовать судо
- Тайм-аут пароля
- Выполнить команду от имени пользователя, отличного от root
- Как перенаправить с помощью Sudo
- Выводы
- Команда Sudo в Linux
- Sudo Command in Linux
- В этом уроке мы объясним, как использовать sudo команду.
- Установка Sudo (команда sudo не найдена)
- Установите Sudo на Ubuntu и Debian
- Установите Sudo на CentOS и Fedora
- Добавление пользователя в Sudoers
- Как использовать sudo
- Тайм-аут пароля
- Запустите команду как пользователь, отличный от Root
- Как перенаправить с Sudo
- Вывод
- Урок 16. Права sudo пользователя — команды sudo, su
Команда Sudo в Linux
Команда sudo позволяет запускать программы от имени другого пользователя, по умолчанию root. Если вы проводите много времени в командной строке, sudo — одна из команд, которую вы будете использовать довольно часто.
Использование sudo вместо входа в систему с правами root более безопасно, поскольку вы можете предоставлять ограниченные административные привилегии отдельным пользователям, не зная их пароля root.
В этом руководстве мы объясним, как использовать команду sudo .
Установка Sudo (команда sudo не найдена)
Пакет sudo предустановлен в большинстве дистрибутивов Linux.
Чтобы проверить, установлен ли пакет sudo в вашей системе, откройте консоль, введите sudo и нажмите Enter . Если вы установили sudo в систему, отобразится короткое справочное сообщение. В противном случае вы увидите что-то вроде sudo command not found .
Если sudo не установлен, вы можете легко установить его с помощью диспетчера пакетов вашего дистрибутива.
Установите Sudo в Ubuntu и Debian
Установите Sudo на CentOS и Fedora
Добавление пользователя в Sudoers
По умолчанию в большинстве дистрибутивов Linux предоставить доступ sudo так же просто, как добавить пользователя в группу sudo, определенную в файле sudoers . Члены этой группы смогут выполнять любую команду от имени пользователя root. Название группы может отличаться от рассылки к рассылке.
В дистрибутивах на основе RedHat, таких как CentOS и Fedora, группа sudo называется wheel . Чтобы добавить пользователя в группу , запустите:
В Debian, Ubuntu и их производных членам группы sudo предоставляется доступ sudo:
Учетная запись пользователя root в Ubuntu по умолчанию отключена из соображений безопасности, и пользователям рекомендуется выполнять системные административные задачи с помощью sudo. Первоначальный пользователь, созданный установщиком Ubuntu, уже является членом группы sudo, поэтому, если вы используете Ubuntu, есть вероятность, что пользователь, с которым вы вошли в систему, уже получил права sudo.
Чтобы разрешить конкретному пользователю запускать только определенные программы как sudo, вместо добавления пользователя в группу sudo добавьте пользователей в файл sudoers .
Например, чтобы позволить пользователю linuxize запускать только команду mkdir как sudo, введите:
и добавьте следующую строку:
В большинстве систем команда visudo открывает файл /etc/sudoers с помощью текстового редактора vim. Если у вас нет опыта работы с vim, ознакомьтесь с нашей статьей о том, как сохранить файл и выйти из редактора vim .
Вы также можете разрешить пользователям запускать команды sudo без ввода пароля :
Как использовать судо
Синтаксис команды sudo следующий:
Команда sudo имеет множество параметров, которые управляют ее поведением, но обычно она используется в самой простой форме, без каких-либо параметров.
Чтобы использовать sudo, просто добавьте к команде префикс sudo :
Где command — это команда, для которой вы хотите использовать sudo.
Sudo прочитает файл /etc/sudoers и проверит, есть ли у вызывающего пользователя sudo Assessment. При первом использовании sudo в сеансе вам будет предложено ввести пароль пользователя, и команда будет выполнена от имени пользователя root.
Например, чтобы перечислить все файлы в /root каталоге /, вы должны использовать:
Тайм-аут пароля
По умолчанию sudo попросит вас снова ввести пароль после пяти минут бездействия sudo. Вы можете изменить время ожидания по умолчанию, отредактировав файл sudoers . Откройте файл с помощью visudo :
Установите тайм-аут по умолчанию, добавив строку ниже, где 10 — это время ожидания в минутах:
Если вы хотите изменить метку времени только для определенного пользователя, добавьте следующую строку, где user_name — это соответствующий пользователь.
Выполнить команду от имени пользователя, отличного от root
Существует ошибочное мнение, что sudo используется только для предоставления прав root обычному пользователю. Фактически, вы можете использовать sudo для запуска команды от имени любого пользователя.
Параметр -u позволяет запускать команду от имени указанного пользователя.
В следующем примере мы используем sudo для запуска команды whoami от имени пользователя «richard»:
Команда whoami напечатает имя пользователя, запустившего команду:
Как перенаправить с помощью Sudo
Если вы попытаетесь перенаправить вывод команды в файл, для которого у вашего пользователя нет прав на запись, вы получите ошибку «Permission denied».
Это происходит потому, что перенаправление вывода « > » выполняется под пользователем, в который вы вошли, а не под пользователем, указанным с помощью sudo. Перенаправление происходит до вызова команды sudo .
Одно из решений — вызвать новую оболочку как root с помощью sudo sh -c :
Другой вариант — передать вывод как обычный пользователь команде tee , как показано ниже:
Выводы
Вы узнали, как использовать команду sudo и как создавать новых пользователей с привилегиями sudo.
Если у вас есть вопросы, не стесняйтесь оставлять комментарии.
Источник
Команда Sudo в Linux
Sudo Command in Linux
В этом уроке мы объясним, как использовать sudo команду.
Команда sudo позволяет запускать программы от имени другого пользователя, по умолчанию пользователь root. Если вы проводите много времени в командной строке, sudo — одна из команд, которую вы будете использовать довольно часто.
Использование sudo вместо входа в систему в качестве пользователя root более безопасно, поскольку вы можете предоставлять ограниченные административные привилегии отдельным пользователям, не зная пароля root.
Установка Sudo (команда sudo не найдена)
Пакет sudo предустановлен в большинстве дистрибутивов Linux.
Чтобы проверить, установлен ли пакет sudo в вашей системе, откройте консоль, введите sudo и нажмите Enter . Если у вас установлен sudo, система отобразит краткое справочное сообщение, в противном случае вы увидите что-то вроде sudo command not found .
Если sudo не установлен, вы можете легко установить его с помощью менеджера пакетов вашего дистрибутива.
Установите Sudo на Ubuntu и Debian
Установите Sudo на CentOS и Fedora
Добавление пользователя в Sudoers
По умолчанию в большинстве дистрибутивов Linux предоставление доступа к sudo так же просто, как добавление пользователя в группу sudo, определенную в sudoers . Члены этой группы смогут запускать любую команду от имени пользователя root. Название группы может отличаться от рассылки к рассылке.
В дистрибутивах на основе RedHat, таких как CentOS и Fedora, имя группы sudo wheel . Чтобы добавить пользователя в группу, выполните:
В Debian, Ubuntu и их производных членам группы sudo предоставляется доступ sudo:
Учетная запись суперпользователя в Ubuntu по умолчанию отключен по соображениям безопасности и пользователям рекомендуется выполнить системную задачу администрирования с использованием Sudo. Первоначальный пользователь, созданный установщиком Ubuntu, уже является членом группы sudo, поэтому, если вы работаете в Ubuntu, есть вероятность, что пользователь, вошедший в систему, уже получил права sudo.
Если вы хотите разрешить определенному пользователю запускать только определенные программы как sudo, вместо добавления пользователя в группу sudo добавьте пользователей в sudoers файл.
Например, чтобы позволить пользователю linuxize запускать только mkdir команду sudo, введите:
и добавьте следующую строку:
В большинстве систем visudo команда открывает /etc/sudoers файл в текстовом редакторе vim. Если у вас нет опыта работы с vim, проверьте нашу статью о том, как сохранить файл и выйти из редактора vim .
Вы также можете разрешить пользователям запускать команды sudo без ввода пароля :
Как использовать sudo
Синтаксис sudo команды следующий:
Чтобы использовать sudo, просто добавьте к команде префикс sudo :
Sudo прочитает /etc/sudoers файл и проверит, предоставляется ли пользователю, вызывающему программу, с помощью команды sudo. При первом использовании sudo в сеансе вам будет предложено ввести пароль пользователя, и команда будет выполнена от имени пользователя root.
Например, чтобы перечислить все файлы в /root каталоге, вы бы использовали:
Тайм-аут пароля
По умолчанию sudo попросит вас ввести пароль еще раз через пять минут бездействия sudo. Вы можете изменить время ожидания по умолчанию, отредактировав sudoers файл. Откройте файл с помощью visudo :
Установите время ожидания по умолчанию, добавив строку ниже, где 10 время ожидания указано в минутах:
Если вы хотите изменить метку времени только для конкретного пользователя, добавьте следующую строку, где user_name — это рассматриваемый пользователь.
Запустите команду как пользователь, отличный от Root
Существует неправильное восприятие, sudo которое используется только для предоставления полномочий root обычному пользователю. На самом деле, вы можете использовать sudo для запуска команды, как любой пользователь.
-u Опция позволяет выполнить команду в качестве указанного пользователя.
В следующем примере мы используем sudo для запуска whoami команды от имени пользователя «richard»:
Команда whoami выведет имя пользователя, запустившего команду:
Как перенаправить с Sudo
Если вы попытаетесь перенаправить вывод команды в файл, у которого у пользователя нет прав на запись, вы получите ошибку «Отказано в доступе».
Это происходит потому, что перенаправление > вывода выполняется под пользователем, в котором вы вошли, а не пользователем, указанным в sudo. Перенаправление происходит до sudo вызова команды.
Одним из решений является вызов новой оболочки от имени пользователя root с помощью sudo sh -c :
Другой вариант — передать вывод как обычный пользователь в tee команду, как показано ниже:
Вывод
Вы узнали, как использовать sudo команду и как создавать новых пользователей с привилегиями sudo.
Источник
Урок 16. Права sudo пользователя — команды sudo, su
Как быть обычным пользователям, которым необходимо изменить некоторые настройки или установить программы, не имея при этом соответствующих прав?
Не обращаться же им каждый раз за помощью к администратору?
Нет. Для этого они могут стать временно другими пользователями с более высокими привилегиями либо выполнить необходимые действие от имени суперпользователя.
Чтобы временно стать другим пользователем выполним команду su [-] имя_пользователя
Система запросит пароль этого пользователя и можно продолжать работать. Одновременно изменится текущий каталог, то есть перейдет в домашний каталог данного пользователя. Например, так:
Причем сеанс работы, запущенный от изначального имени все еще будет активен. Для возврата к нему выполним Ctrl + D или наберем команду exit . В работе команды su есть пара нюансов. Если ввести просто su без аргументов и опций, то вход будет осуществлен от имени суперпользователя root. Причем текущий каталог не изменится:
Этого лучше не делать, так как в процессе выполнения определенных команд некоторые файлы могут быть записаны в домашнем каталоге текущего пользователя и в дальнейшем это может привести к некоторым сложностям.
А можно войти в систему от имени другого пользователя и остаться в своем домашнем каталоге?
Да, для этого введем команду su имя_пользователя :
Однако, если ввести su — , то система перейдет в домашний каталог суперпользователя:
При выполнении команды su необходимо знать пароль другого пользователя и в этом и заключается проблема. Так как обычно люди паролями не делятся, а если и поделятся, то это может привести к нежелательным последствиям. Поэтому существует другой способ временно получить права пользователя с расширенными привилегиями. Для этого достаточно выполнить sudo [опции] команда
Система запросит пароль текущего пользователя (а не пароль указанного в команде пользователя). После этого будет выполнена запрошенная команда. Система не будет переключаться на аккаунт указанного пользователя, текущий каталог останется прежним. Если просто выполнить команду без аргументов sudo команда , то выполнение команды будет осуществлено от имени суперпользователя.
Но тогда какое отличие sudo от su ? В обоих случая можно выполнять любые действия.
Отличия есть. Во-первых, пароли суперпользователя и других администраторов скрыты от обычных пользователей. Во-вторых, не каждый пользователь может выполнять команду sudo .
В некоторых системах Linux уже по умолчанию существует специальная группа sudo , которая наделена расширенными привилегиями. Пользователи, которые состоят в данной группе могут выполнять команду sudo .
То есть, если добавить обычного пользователя в группу sudo , то с помощью команды sudo он сможет выполнять абсолютно любые команды, как и суперпользователь?
И да и нет. Данную команду можно гибко настроить под любые нужды. Можно ограничить привилегии определенным пользователями, а можно наоборот предоставить полную свободу действий.
И как это сделать?
Существует специальный файл настроек команды sudo , который находится в /etc/sudoers . Когда запускается sudo она проверяет файл sudoers , и если там имеется необходимая запись, то выполняется запрошенная пользователем команда. В противном случае выдается сообщение об отсутствии прав доступа. Вот как выглядит файл sudoers:
Теперь попробуем разобраться по порядку, что в нем указано.
User_Alias — синоним пользователей. С помощью синонима (Alias) определяют группу пользователей. Например, на рисунке уже указаны некоторые синонимы:
где синоним ADMINS обозначает перечисленных пользователей vasya, petya, admin .
Что нам это дает?
Когда определенным пользователям нужно ограничить/расширить доступ, то всегда легче это сделать, объединив их всех в одну группу, особенно когда этих пользователей очень много. Так будет проще администрировать и в этом мы убедимся позже.
Runas_Alias — синоним пользователей, от имени которых будут запускаться определенные команды. Смысл их такой же, как User_Alias :
Host_Alias — синоним компьютеров (хостов). Каждый компьютер имеет свое имя. Пользователи могут подключаться к удаленной системе (серверу) через свои или чужие компьютеру. Чтобы ограничить доступ к серверу с определенных компьютеров создается список этих компьютеров, которые объединяются в одну группу:
Cmnd_Alias — синоним команд. Объединяет в группу список команд, которые можно или нельзя выполнять:
В данном синониме необходимо указывать полный путь (не относительный) к командам, иначе ничего работать не будет. Все синонимы принято писать заглавными буквами. В описании я упомянул, что синоним по сути является группой. Однако не следует путать синоним со стандартной группой самих пользователей, которые уже имеются или могут быть созданы в Linux.
Теперь подходим к самому интересному. Чтобы ограничить или разрешить определенные действия определенным пользователям используется следующая запись:
Пользователь Компьютер = (Целевой пользователь) Команда
Что же означает эта запись. Для примера рассмотрим такую запись: vasya pc = (admin) /sbin/shutdown
Она означает следующее: пользователь vasya с компьютера pc от имени пользователя admin может выполнять только команду /sbin/shutdown , то есть выключать систему. Иными словами пользователь vasya работает на компьютере pc . Чтобы выключить систему он набирает команду sudo -u admin shutdown.
А можно просто набрать sudo shutdown?
Нет. так как в данном случае выполнение идет от имени root , что является запрещенным действием для данного пользователя. Здесь мы указали только одного пользователя. Однако, когда у нас их больше, то здесь пригодятся синонимы (alias), рассмотренные выше.
Например, ADMINS SECURITY = (root) ALL означает, что пользователи, входящие в синоним ADMINS ( petya, vasya ) с компьютеров, входящих в синоним SECURITY ( server1, server2, server3 ) могут выполнять от имени пользователя root абсолютно любые ( ALL ) команды.
Когда данные пользователи выполняют команду sudo , то система запросит их личный пароль и продолжит выполнять запрошенные действия.
Немного поменяем запись в sudoers : ADMINS SECURITY = (root) NOPASSWD: ALL
С этой записью данным пользователям вообще не нужно вводить пароль.
Рассмотрим еще пару примеров, чтобы лучше понять принцип работы.
ALL ALL = (ALL) ALL — все пользователи на любых компьютерах от имени любых пользователей могут выполнять любые команды.
ALL localhost = /sbin/shutdown -h now — все пользователям разрешается на локальном компьютере выполнять команду shutdown , то есть выключать компьютер локально.
%student ALL = !/sbin/ — пользователям, входящие в группу student (перед группой всегда стоит знак % ), запрещено выполнять все команды из каталога /sbin . Знак ! здесь означает обратное действие (отрицание не).
Чтобы подробнее ознакомиться со всеми параметрами рекомендую ознакомится с описанием man sudoers .
А как можно редактировать файл sudoers ?
Для редактирования нужно обладать правами root , само редактирование выполняется командой visudo . Она позволяет безопасно отредактировать файл и сообщит об ошибках. Поэтому крайне не рекомендуется использовать обычные редакторы вроде nano, vim, emacs и так далее.
А как узнать может ли пользователь выполнять sudo или нет?
Для этого введем команду sudo -ll . Иногда может потребоваться ввести пароль и система отобразит можно ли запускать sudo или нет:
Список команд, которые мы изучили:
su — имя_пользователя — вход в систему от имени пользователя
su — — вход в систему от имени суперпользователя
sudo команда — выполнение команды от имени суперпользователя
sudo -u имя_пользователя команда — выполнение команды от имени пользователя
visudo — запуск редактора файла sudoers
sudo -l — список разрешенных команд для sudo у текущего пользователя
sudo -ll — подробный список разрешенных команд для sudo у текущего пользователя
Источник