Как запустить программу от имени пользователя linux

К оманда sudo позволяет запускать программы от имени другого пользователя, по умолчанию пользователь root. Если вы проводите много времени в командной строке, sudo — одна из команд, которую вы будете использовать довольно часто.

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

В этой статье мы объясним, как использовать команду sudo.

Установка Sudo (sudo command not found)

Пакет sudo предустановлен в большинстве дистрибутивов Linux.

Чтобы проверить, установлен ли пакет sudo в вашей системе, откройте консоль, введите sudoи нажмите Enter. Если у вас установлен sudo, система отобразит краткое справочное сообщение, в противном случае вы увидите что-то вроде sudo command not found.

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

Установите Sudo на Ubuntu и Debian

apt install sudo

Установите Sudo на CentOS и Fedora

yum install sudo

Добавление пользователя в Sudoers

По умолчанию в большинстве дистрибутивов Linux предоставление доступа к sudo так же просто, как добавление пользователя в группу sudo, определенную в файл sudoers.

Создание пользователей Linux

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

В дистрибутивах на основе RedHat, таких как CentOS и Fedora, имя группы sudo wheel. Чтобы добавить пользователя в группу, выполните:

Читайте также:
Как сделать фон в программе gimp

usermod -aG wheel username

В Debian, Ubuntu и их производных членам группы sudo предоставляется доступ sudo:

usermod -aG sudo username

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

Если вы хотите разрешить определенному пользователю запускать только определенные программы как sudo, вместо добавления пользователя в группу sudo добавьте пользователей в файл sudoers.

sudo visudo

и добавьте следующую строку:

andreyex ALL=/bin/mkdir

В большинстве систем команда visudo открывает файл /etc/sudoers в текстовом редакторе vim. Если у вас нет опыта работы с vim, проверьте нашу статью о том, как сохранить файл и выйти из редактора vim.

Вы также можете разрешить пользователям запускать команды sudo без аутентификации:

andreyex ALL=(ALL) NOPASSWD: ALL

Как использовать sudo

Синтаксис sudoкоманды следующий:

sudo OPTION.. COMMAND

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

Чтобы использовать sudo, просто добавьте к команде префикс sudo:

Создание и управление пользователями в Linux | Разделяй и властвуй


sudo command

Где command — команда, для которой вы хотите использовать sudo.

Sudo прочитает файл /etc/sudoers и проверит, предоставляется ли пользователю, вызывающему программу, с помощью команды sudo. При первом использовании sudo в сеансе вам будет предложено ввести пароль пользователя, и команда будет выполнена от имени пользователя root.

Например, чтобы перечислить все файлы в каталоге /root, вы бы использовали:

Читайте также:
Как написать программу на python для excel

sudo ls /root
[sudo] password for andreyex: . .. .bashrc .cache .config .local .profile

Тайм-аут пароля

По умолчанию sudo попросит вас ввести пароль еще раз через пять минут бездействия sudo. Вы можете изменить время ожидания по умолчанию, отредактировав файл sudoers. Откройте файл с помощью visudo:

sudo visudo

Установите время ожидания по умолчанию, добавив строку ниже, где 10 время ожидания указано в минутах:

Defaults timestamp_timeout=10

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

Defaults:user_name timestamp_timeout=10

Запустите команду как пользователь, отличный от Root

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

Опция -u позволяет выполнить команду в качестве указанного пользователя.

В следующем примере мы используем sudo для запуска команды whoami от имени пользователя «destroyer»:

sudo -u destroyer whoami

Команда whoami выведет имя пользователя, запустившего команду:

destroyer

Как перенаправить с Sudo

Если вы попытаетесь перенаправить вывод команды в файл, у которого у пользователя нет прав на запись, вы получите ошибку “Permission denied”.

sudo echo «test» > /root/file.txt
bash: /root/file.txt: Permission denied

Это происходит потому, что перенаправление >вывода выполняется под пользователем, в котором вы вошли, а не пользователем, указанным в sudo. Перенаправление происходит до вызова команды sudo.

Одним из решений является вызов новой оболочки от имени пользователя root с помощью sudo sh -c:

sudo sh -c ‘echo «test» > /root/file.txt’
echo «test» | sudo tee /root/file.txt

Заключение

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

Если у вас есть какие-либо вопросы, не стесняйтесь оставлять комментарии.

Читайте также:
Как сохранить файлы и закрыть программу перед перезагрузкой

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник: andreyex.ru

Как запустить команду от другого пользователя Linux?

Добрый день.
Есть линукс (CentOS 7). На этом линуксе есть два обычных пользователя — «user1» и «user2».
Есть скрипт, который находится тут: «/home/user2/scripts/script1.sh».
User1 может запустить этот скрипт выполнив команду: «su user2 /home/user2/scripts/script1.sh», при этом консоль запросит пароль от user2.
Пароль я знаю, но как мне добавить этот пароль в команду, чтобы она выполнялась сразу, без запроса пароля?
Нашёл вариант «su user2:password /home/user2/scripts/script1.sh», но он не работает, говорит вот так «su: user user2:password does not exist».
Подскажите как побороть?

  • Вопрос задан более трёх лет назад
  • 5851 просмотр

Источник: qna.habr.com

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

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

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

Пользователи Linux используют оболочку для взаимодействия с операционными системами. Где Bash (Born Shell) является наиболее используемой оболочкой и доступна по умолчанию в большинстве систем. Сейчас Zsh (Z Shell) также становится популярным среди пользователей благодаря своим возможностям.

В этом руководстве вы узнаете, как запустить команду от имени другого пользователя в системах Linux/Unix.

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

Команда su (сменить пользователя) используется для запуска оболочки от имени другого пользователя. Эта команда переключается на нового пользователя и загружает его среду.

Источник: noviello.it

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru