Как запустить файл от другого пользователя linux

Содержание
  1. Выполняю установку, настройку, сопровождение серверов. Для уточнения деталей используйте форму обратной связи
  2. Выполняем команды от другого пользователя. : 3 комментария
  3. Как запустить файл от другого пользователя linux
  4. WordPress — правильные права на файлы и папки
  5. ubuntu install php7.4
  6. Как выйти из docker контейнера
  7. Django disable CSRF for view
  8. Django — rename a model field
  9. Обновление до Ubuntu 18.04 — кривой шрифт
  10. Многопоточный RSYNC
  11. Неровный график в cacti
  12. Цели ZEN (ZenCash) на 2018 год
  13. Жеcткая перезагрузка linux
  14. Проверка жесткого диска в Ubuntu
  15. linux запуск скрипта от имени пользователя
  16. bash script pause
  17. device descriptor read/64, error -110
  18. Nvidia GTX 1080 — установка и настройка для майнинга на Ubuntu 16.04
  19. Обратный туннель ssh
  20. yii2 — миграции
  21. Работа со swap в linux (Ubuntu)
  22. linux-notes.org
  23. Запустить команду от другого пользователя в Unix/Linux
  24. Запустить команду от другого пользователя в Unix/Linux — способ 1
  25. Запустить команду от другого пользователя в Unix/Linux — способ 2
  26. Запустить команду от другого пользователя в Unix/Linux — способ 3
  27. 5 thoughts on “ Запустить команду от другого пользователя в Unix/Linux ”
  28. Добавить комментарий Отменить ответ
  29. Как запустить программу на Linux
  30. Виды программ в Linux
  31. Запуск программ в терминале
  32. Запуск программ от имени другого пользователя
  33. Как запустить программу в фоне
  34. Как запустить скрипт в Linux
  35. Запуск программ Linux в графическом интерфейсе
  36. Выводы

Выполняю установку, настройку, сопровождение серверов. Для уточнения деталей используйте форму обратной связи

Вроде бы такие простые вещи должны знать, но иногда в порыве паники всё вылетает из головы :). Как бы там не было, опишу здесь команды, которые применяются для этого, в *nix, windows системах.

Windows

Существует несколько команд, одна встроенная (runas), остальные ставятся отдельно (например, psexec из комплекта pstools).

— runas

Формат её следующий:

runas [] /user:учетная_запись_пользователя program

но для повседневного выполнения, достаточно запомнить короткую форму (полное описание параметров можно найти в справке):

runas /user:учетная_запись_пользователя program

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

Примеры использования:

runas /user:mymachine\administrator CMD
runas /user:SCOT_DOMAIN\administrator NOTEPAD
runas /user:jDoe@swest.ss64.com «NOTEPAD \»my file.txt\»»

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

Плюсы — очевидны: минимум функционала, простота в использовании.

Минусы : нельзя запустить програму в фоне.

— psexec

psexec \\computer[,computer[. ] command
psexec @run_file command

Это вообще комбайн по фонкционалу, может запускать програму на удалённом компьютере от указанного пользователя, запуск в фоне и много другого. Полный перечень можно найти в справке к программе. Нам же будет интересны только опции, отвечающие за запуск от указанного юзера. Вот опции, которые нам будут интересны:

computer На каком компьютере запускать программу. По дефолту = локальный. Для запуска на всех компьютерах домена, вводим «\\*»
@run_file Запуск на всех компьютерах, укаханных в файле run_file.
-p psswd Задаёт пароль для пользователя, указанного через ключ -u user (опционально). Пароль задаётся в виде открытого текста. Если ключ стоит, а пароль не задан, при выполнении будет запрашиваться пароль
-s Запустить процесс с системным аккаунтом (аккаунт System)
-u user Specify a user name for login to remote computer(optional).
-d Don’t wait for the application to terminate. Only use for non-interactive applications.

psexec \\workstation64 ipconfig /all
psexec \\workstation64 «c:\Program Files\test.exe»
psexec -d «c:\program files\internet explorer\iexplore.exe»

Первая и вторая — запуск программы на компьютере workstation64, третья — запуск на локальной машине в фоновом режиме.

*nix

Здесь тоже 2 команды: одна как бы стандартная (su), а вторая — устанавливается отдельно (sudo).

su -c «command» user

su -c «less /home/fred/secret» fred

Выполнили команду от имени пользователя fred.

sudo -h | -K | -k | -L | -l | -V | -v
sudo [-bEHPS] [-c class|-] [-p prompt] [-u username|#uid] [VAR=value]

Но лучше запомнить короткую форму:

sudo -u user command

sudo cat /var/log/auth.log
sudo -u fred mv /home/fred/secret /home/fred/supersecret

-pfexec (Только для Solaris)

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

«Как бы там не было, опишу здесь команды, которые применяются для этого, в *nix, windowsсистемах.»
Откуда взялся windows?

Что значит «откуда взялся»? Есть такая ОС, вот и для неё я так же привёл аналоги

Спасибо долго искал эту команду почему то все время писал run as отдельно runas оказывается вместе )))))))

Источник

Как запустить файл от другого пользователя linux

Мы занимаемся разработкой, изготовлением и продажей тестеров для хеш-плат асиков Antminer S9, S9i, S9j. Готовые устройства можно приобрести лично в офисе в г. Иркутск. Если Вы попали на этот сайт — вероятнее всего Вы уже купили тестер. Скоро здесь будет информация по нему

Читайте также:  Arch linux live iso

WordPress — правильные права на файлы и папки

ubuntu install php7.4

Добавить репозиторий, обновить список пакетов, установить новые пакеты (самые популярные)

Как выйти из docker контейнера

Допустим Вы подключились к консоли запущенного docker контейнера командой

где fb15408fd3b0 — id docker контейнера, который можно узнать командой «docker ps».

Django disable CSRF for view

Можно использовать декоратор csrf_exempt (You can use decorator csrf_exempt)

Django — rename a model field

Как переименовать поле модели в django (пример команд).

Обновление до Ubuntu 18.04 — кривой шрифт

Многопоточный RSYNC

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

Неровный график в cacti

Вот такого вида график рисовал cacti после первоначальной установки и настройки. Он врядли похож на рваный график, данные все таки приходят в моменты падений, но они явно какие то некорректные. Первое что нужно сделать для исправления ситуации это установить spine

Цели ZEN (ZenCash) на 2018 год

Из публичного чата в телеграме стащил цитату планов на 2018 год у команды ZEN. Читаем, вникаем, закупаемся монеткой. Или майним и копим. Сейчас в обороте уже 2.8 млн. из 21 млн. (для сравнения в bitcoin эта цифра 16.7 млн. из 21 млн.) Continue Reading

Жеcткая перезагрузка linux

Аналог кнопки reset. Можно выполнить удаленно через ssh. Выполняет жесткую перезагрузку системы.

Проверка жесткого диска в Ubuntu

Раньше я пользовался утилитой MHDD для проверки дисков. Но оказалось, что ее функционал вполне может заменить утилита e2fsck с некоторыми ключами. Задача найти битые сектора и указать системе не использовать эти области. Continue Reading

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

Когда требуется запустить bash скрипт от имени другого пользователя, можно использовать следующую конструкцию

bash script pause

Use the sleep command.

device descriptor read/64, error -110

При попытке установить Ubuntu с флешки показывалась эта ошибка и намертво зависала установка.

Вся проблема оказалась в том, что в BIOS был отключен IOMMU. После включения проблема исчезла.

Материнская плата Gigabyte GA-990FXA-UD3

Nvidia GTX 1080 — установка и настройка для майнинга на Ubuntu 16.04

Поставил на древнее железо (LGA 775, intel 1 core, 2Gb DDR2) Ubuntu 16.04 Desktop. Однако после перезагрузки система не загрузилась. по сети была недоступна. Если загружать в recovery mode и затем выбирать resume — система загружалась.

После нескольких часов опытов я вывел формулу успеха: добавил опцию в меню grub + установил драйвера с сайта nvidia. В итоге система начала загружаться, и как ни странно успешно майнить ewbf майнером на 2 Гб оперативной памяти. Ниже распишу все по шагам.

Обратный туннель ssh

На клиенте за NAT (на который хотим попадать) связываем 22 локальный порт с портом 5444 на сервере (с белым ip):

*Подставьте свой user и server, например root@80.47.143.56

yii2 — миграции

В Yii 2 есть механизм миграций. По сути миграции в БД это изменение структуры.
Пример использования:

Работа со swap в linux (Ubuntu)

Основные команды для управления swap файлом.

Выгрузить содержимое swap в оперативную память

Источник

linux-notes.org

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

Иногда, просто необходимо запустить команду от другого пользователя. И существует несколько способов, как это можно сделать. Я расскажу о них в своей статья «Запустить команду от другого пользователя в Unix/Linux».

Запустить команду от другого пользователя в Unix/Linux — способ 1

И так, можно использовать утилиту SUDO. Рассмотрим пример:

  • -H YOUR_HOME: Задает HOME (Переменное окружение для хома конкретного юзера) и по умолчанию — это root.
  • -u YOUR_USER: Задаем пользователя от которого будет выполнена команда.
  • -c YOUR_COMMAND: Служит опцией для ввода команды.

Запустить команду от другого пользователя в Unix/Linux — способ 2

Можно использовать утилиту SU. И сейчас приведу несколько примеров.

Логин в root юзера

Чтобы получить рута, выполните:

Запустить команду как root юзер

Вот пример команды:

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

И так, вот пример:

Рассмотрим другой пример:

  • — — Будет имитировать логин указанного пользователя.
  • -c — Служит для указания команды для выполнения (для указанного юзверя).

Запустить команду от другого пользователя в Unix/Linux — способ 3

И так, можно использовать утилиту runuser. Команда runuser запускает оболочку с заменяющими идентификаторами пользователей и групп. Эта команда полезна только когда вы залогинены как пользователь root. Синтаксис выглядит следующим образом:

Читайте также:  Отключить автооткрытие флешки windows 10

Как пример, я покажу следующую строку:

PS: Для использования команды runuser пароль не требуется, и он должен запускаться только пользователем root.

  • -l: Создаст оболочку для входа в систему, используя файл runuser-l PAM вместо стандартного.
  • -g: Указывает на основную группу.
  • -G: Указывает на дополнительную группу.
  • -c: Собственно, служит для указания команды.
  • –session-command=COMMAND: Передает одну команду в оболочку с опцией «-c» и не создает новый сеанс.
  • -m: Не сбрасывайте переменные среды (ENV).

Вот и все, тема «Запустить команду от другого пользователя в Unix/Linux» завершена.

5 thoughts on “ Запустить команду от другого пользователя в Unix/Linux ”

> $ sudo -H -u Your_another_user bash -c ‘ping linux-notes.org’

Смешались sudo и bash:

$ sudo -u user echo a
a

$ bash -c ‘echo a’
a

Да, уже поправил. Моя опечатки. Спасибо)

su asterisk -c «xxx»
This account is currently not available.

У меня вот проблема. Надо, чтобы звук из одной сессии (x2go)
Было слышно в другой сессии. Наверное даже не так.
Некоторые программы запускаются при загрузке ПК от user1.
Когда входишь через x2go тем же user1 звук (сигнализация) от этих демонов не слышно. Всю башку сломал. Подскажите пож как решить.

sudo -u www-data pwd

Добавить комментарий Отменить ответ

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Источник

Как запустить программу на Linux

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

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

Виды программ в Linux

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

Все программы можно поделить на несколько типов:

  • Бинарные программы — содержат инструкции процессору уже готовые к выполнению, большинство программ находятся в таком формате, они быстрые и выполняются сразу же системой;
  • Программы на байт-коде — это уже не процессорные инструкции, а инструкции определенной виртуальной машины, которая может их выполнять, без виртуальной машины такие команды не могут быть выполнены. Такие программы потребляют больше ресурсов, но тоже достаточно быстрые, их преимущество в том, что они могут выполняться без изменения везде где может работать виртуальная машина. К таким программам можно отнести программы на Java.
  • Скриптовые программы — эти программы состоят из набора команд в виде обычного текста, которые выполняет специальный интерпретатор. Такие программы более медленные, но зато они проще в разработке и их код можно легко и быстро изменить.

А теперь перейдем к запуску программ.

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

Изначально в операционных системах Unix и Linux не было графического интерфейса, поэтому программы запускались командами из терминала. Сейчас это тоже возможно и достаточно активно используется опытными пользователями. Синтаксис запуска программы выглядит таким образом:

/путь/к/файлу/программы параметры

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

Разработчики придумали обходной путь. Была создана переменная PATH, в которой хранятся все пути к папкам где обычно находятся программы — /bin, /sbin, /usr/bin, /usr/sbin и так далее. Вы можете посмотреть ее содержимое командой:

Когда вы набираете имя программы система ищет исполняемый файл с таким именем по всем папкам из PATH и если находит — то выполняет. Если же такого файла нет, то выдается сообщение — command not found. Таким образом, чтобы запустить одну из системных программ достаточно набрать имя ее исполняемого файла, например:

И можно передать параметры после пробела:

Когда программа находится не в этих каталогах, нужно указать к ней полный путь:

Читайте также:  System ест много оперативной памяти windows 10

Если же вы хотите запустить программу через терминал ubuntu, которая находится в текущей папке, то ситуация будет немного другой. Система выполняет только поиск по папкам из переменной PATH, в текущей директории она не ищет. Поэтому, если вы наберете имя исполняемого файла, то получите ошибку. Нужно указывать полный путь, как вы помните путь к текущей папке будет ./:

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

имя_переменной = значение команда

По умолчанию эта команда открывает настройки утилиты sudo в редакторе Vim, но с этой переменной окружения настройки откроются в редакторе nano.

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

Вы уже знаете как запустить программу в терминале linux, а что насчет других пользователей? В Windows достаточно часто используется запуск программ от имени администратора чтобы программа могла получить больше прав доступа в системе. В Linux для этого используется утилита sudo. Ее имя можно расшифровать как switchuserdo — изменить пользователя и выполнить. По умолчанию утилита выполняет команду от имени суперпользователя root:

sudo команда
sudo whoami

Но с помощью опции -u можно выполнить программу от имени любого пользователя, зарегистрированного в системе:

sudo -u имя_пользователя команда
sudo -u postgres whoami

Команда whoami (кто я) выводит имя текущего пользователя.

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

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

dd if=/dev/zero of=

Система выведет PID, уникальный идентификатор программы, который вы потом можете использовать чтобы закрыть ее командой kill:

Как запустить скрипт в Linux

Мы уже говорили, что программы делятся на бинарные и интерпретируемые. Раньше мы говорили только про бинарные программы. Для запуска интерпретируемых нужен непосредственно интерпретатор, к таким программам относятся написанные на таких языках, как Java, Python, Perl, Ruby, PHP, NodeJS и многих других. Синтаксис запуска такой программы отличается:

интерпретатор /путь/к/файлу/программы параметры

Разные интерпретаторы ведут себя по разному, поэтому лучше сразу указывать полный путь к программе. Python обычно подхватывает скрипты из текущей папки без указания полного пути:

А Java программы нужно запускать так:

java -jar program.jar

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

Или же просто набрать путь к скрипту:

Оболочка сама определяет свои скрипты по флагу исполняемости и выполняет их. Если флаг исполняемости не установлен, то его стоит добавить:

sudo chmod u+x ./script.sh

Поэтому то и для большинства интерпретируемых программ созданы простые sh скрипты которыми их можно быстро запустить.

Запуск программ Linux в графическом интерфейсе

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

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

Точно так же работает запуск скриптов в графическом интерфейсе. Вы можете найти все ярлыки из меню в каталоге /usr/share/applications/. Любую программу можно запустить двойным щелчком отсюда. Но давайте посмотрим что находится внутри ярлыка, для этого откройте его в текстовом редакторе:

Кроме всего прочего, в строке Exec указана команда, которая выполняет запуск программы linux, когда вы делаете двойной клик на ярлыке. Вы можете взять один из существующих ярлыков и сделать на его основе свой. Здесь указано просто имя программы. Но важно заметить, что лучше указывать полный путь в таких местах, как ярлыки, скрипты, cron и так далее это уменьшит количество ошибок, поскольку вы не можете знать проверяет ли система в этом случае PATH или ищет программу только в текущем каталоге. Теперь вы знаете все о том как запустить программу на linux.

Выводы

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

Источник

Оцените статью