LINUX.ORG.RU

Варианты есть, самый простой для понимания это [ $(whoami) == "root" ] && тут_скрипт.sh

Bfgeshka ★★★★★
()

Когда же вы научитесь формулировать вопросы

Как я понимаю есть скрипт, запускающийся по крону и при заходе по root@ssh надо чтобы скрипт не запускался.

анализируй вывод w / who в скрипте и делай exit если root зашел

futurama ★★★★★
()
Ответ на: комментарий от futurama

Когда же вы научитесь формулировать вопросы

Когда же вы научитесь быть правильными в своих формулировках. Формулировать вопросы ТС умеет, просто хреновенько получается.

pavelshuvalov
()

if who | awk '{print $1}' | grep root >/dev/null ; then echo «root on board!»; fi

constin ★★★★
()

Если совсем разжевать то:


#!/usr/bin/env bash

if who | awk '{print $1}' | grep root >/dev/null ; then exit; fi

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

constin ★★★★
()
Ответ на: комментарий от futurama

ТС прошлой темой спрашивал , как ему сервак перезагрузить по кронтабу, если mysql падает, видимо сделал, и теперь его анноит, что сервак перегружается сам по себе, когда он сидит в терминале)

constin ★★★★
()
Ответ на: комментарий от constin

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

С другой стороны ты можешь там вместо grep root >/dev/null написать grep твой_юзер_нейм >/dev/null

типа двойная проверка

if who | awk '{print $1}' | grep root >/dev/null ; then exit; fi
if who | awk '{print $1}' | grep vasya_pupkin >/dev/null ; then exit; fi
constin ★★★★
()
Ответ на: комментарий от constin

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

Пальцем в небо, грепнуть выхлоп ps, вроде должно отработать.

anc ★★★★★
()
Ответ на: комментарий от anc

попал). sudo su грепается, правда сама команда «grep sudo su» тоже попадает одновременно в список, ее надо исключить.

constin ★★★★
()
Ответ на: комментарий от constin

только это не будет работать, когда юзер стал рутом через su или sudo su.

А может ТСу надо просто euid проверять, а не Вася через sudo? :)

Тогда `id -u` самый правильный вариант.

vodz ★★★★★
()
Ответ на: комментарий от anc

Ок, как поможет id -u в поставленной задаче? Можно на примерах?

А вы задачу точно читали? Не выполнять скрипт если пользователь root — id -u поможет самым прямым образом.

vodz ★★★★★
()
Ответ на: комментарий от vodz

А вы задачу точно читали?

Да читал, и constin более подробно это расшифровал.

Не выполнять скрипт если пользователь root

Если залогинен root в другом терминале, а не «не выполнять сам скрипт от рута»

anc ★★★★★
()
Ответ на: комментарий от anc

Да читал, и constin более подробно это расшифровал.

Ну так не честно. В оригинале топика шифровки нет, шифровку создали «проанализировав биг-дата» — профилировав предыдущий запрос :))

vodz ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.