LinuxForum.Fans
Тема

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

Автор: vitabios 10 сообщений 3105 просмотров
#287903

целый день бьюсь не могу понять как.
Мне нужно написать скрипт, который я планирую запускать по расписанию (cron)
скрипт должен выполнить несколько комманд от пользователя db2inst
затем переключиться в root и выполнить команды под root
например mount

покажите пожалуйста на примере как это должно выглядеть?

#287907

Выполнять команды от root можно с помощью утилиты sudo. Примеры использования и настройки подробно разобраны на многих веб-ресурсах. Но если что-то не получится, можете задавать вопросы =)

#287908

а нельзя ли скрипт запустить от root
а там сделать что то типо ?
su db2inst
команда 1
команда 2
su root
команда 3
команда 4

собственно на команде su - скрипт останавливается.
посоветуйте где можно почитать инфо именно о написании таких скриптов (командных файлов)

#287909
"vitabios" написал:
а нельзя ли скрипт запустить от root
а там сделать что то типо ?
su db2inst
команда 1
команда 2
su root
команда 3
команда 4

sudo -u db2inst команда_1
sudo -u db2inst команда_2
команда 3
команда 4

#287910

огромное спасибо!

#287911

sudo u- db2inst db2start
Пишет команда не найдена. Дело в том что это команда может выполняться только после ввода su db2inst. Как мне решить проблему?

#287917

команда1 && команда2

#287950
"vitabios" написал:

sudo u- db2inst db2start

Не u-, а -u
Если не поможет, то видимо надо указать полный путь к db2start

#287957

И зачем такая свистопляска? Настройте sudo на беспарольный запуск необходимых программ, и запускайте из скрипта. У меня, например, в /etc/sudoers

text
yars ALL=(ALL) NOPASSWD: /bin/mount ,/bin/umount

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

#288293

меня не сильно волнует безопасность в linux (из-за отсутствия потенциальных ломателей) поэтому если Вы немного подробнее опишите про эту настройку - мне бы очень помогло.

Войдите или зарегистрируйтесь, чтобы ответить.