Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Изменение пользователя в ходе выполнения сценария.  (Прочитано 677 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Cxms

  • Автор темы
  • Активист
  • *
  • Сообщений: 407
    • Просмотр профиля
Вот простая задачка, но что-то не пойму как это сделать:
Нужно чтобы скрипт до определенного момента выполнялся от одного
пользователя, потом после ввода пароля продолжил выполнятся от другого
пользователя (рута). Судо и су не помогает. После су просто запускается новая
оболочка, и команды стоящие после су не выполняются от рута.
Для примера скриптик:
id -g
*ввод пароля, смена пользователя*
id -g
должен выполнится так:
$ 1000
ввод пароля
# 0

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Код: (bash) [Выделить]
#!/bin/bash
id -g
sudo id -g
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Cxms

  • Автор темы
  • Активист
  • *
  • Сообщений: 407
    • Просмотр профиля
Azure,
Нет, без судо, нужо чтобы код после команды изменения пользователя,
выполнялся просто как от рута.

symon2014

  • Гость
Цитировать
как от рута.
это и есть sudo(один в один).

Оффлайн Cxms

  • Автор темы
  • Активист
  • *
  • Сообщений: 407
    • Просмотр профиля
symon2014,
Не понятно чтоли?
Код после после команды изменения пользователя,
должен выполнялся от рута (без судо), по аналогии
sudo su.

Пользователь решил продолжить мысль 14 Сентября 2015, 15:24:19:
Т.е часть кода должна быть выполнена от одного юзера, часть от другого,
но чтобы не писать к каждой команде sudo или su. Такое возможно?
« Последнее редактирование: 14 Сентября 2015, 15:24:19 от Cxms »

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Так не пишите. Сделайте отдельный скрипт или функцию для части кода "другого юзера" и вызовите его через sudo
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Cxms

  • Автор темы
  • Активист
  • *
  • Сообщений: 407
    • Просмотр профиля
Azure,
Через отдельный скрипт работает, но нужно в одном сделать.
С функцией не получается:
Код: (bash) [Выделить]
Func() { id -g; }
id -g
sudo Func
1000
sudo: Func: command not found
« Последнее редактирование: 20 Июня 2019, 07:23:21 от zg_nico »

 

Страница сгенерирована за 0.076 секунд. Запросов: 23.