You need to be root to run this script linux что делать

Как проверить, работает ли с правами root в bash script

Я пишу script, который требует прав на уровне корневого уровня, и я хочу сделать так, чтобы, если script не запущен как root, он просто перекликается с “Пожалуйста, запустите от имени пользователя root”. и выходы.

Здесь некоторый псевдокод для того, что я ищу:

Как я могу (чище и безопасно) справиться с этим? Спасибо!

А, просто для того, чтобы уточнить: часть (сделайте что-то) будет включать в себя запуск команд, которые сами по себе требуют root. Так что запуск его, как обычный пользователь, просто придумал бы ошибку. Это просто предназначено для чистого запуска script, для которого требуются корневые команды, без использования sudo внутри script, я просто ищу какой-то синтаксический сахар.

Было дано несколько ответов, но, по-видимому, лучшим способом является использование:

В bash script у вас есть несколько способов проверить, является ли текущий пользователь root.

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

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

Если ваш script всегда должен быть запущен root, просто установите права соответственно ( 0500 ).

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

Существует простая проверка для пользователя, являющегося пользователем root.

Синтаксис [[ stuff ]] – это стандартный способ запуска проверки в bash.

Это также предполагает, что вы хотите выйти с 1, если вы терпите неудачу. Функция error – это некоторое чутье, которое устанавливает выходной текст в красный (не нужен, но довольно классный, если вы меня спрашиваете).

0- Прочитайте официальную документацию GNU Linux, есть много способов сделать это правильно.

1- убедитесь, что вы помещаете подпись оболочки, чтобы избежать ошибок в интерпретации:

Очень простой способ просто поставить:

Преимущество использования этого вместо id заключается в том, что вы можете проверить, не работает ли какой-либо пользователь, не являющийся пользователем root; например.

Я полагаю, что здесь мало что можно объяснить, потому что ответы с большим количеством голосов объясняют многое из этого.

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

Оптимизированное bash решение для производительности и надежности

Объяснение

Почему я публикую это решение после стольких лет, когда ОП спросил

Что ж, если я правильно вижу, кажется, что выше отсутствует фрагмент кода.

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

Портативное решение POSIX solution

Заключение

попробуйте следующий код:

Один простой способ сделать скрипт доступным только для пользователя root – запустить скрипт со строкой:

Насколько я знаю, правильный способ проверить это:

Смотрите раздел “Тестирование на корень” здесь:

Проверьте, являетесь ли вы пользователем root, и выйдите из системы, если вы не:

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

Проверьте, являетесь ли вы пользователем root и, если возможно, не повышать его:

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

Источник

unixforum.org

Форум для пользователей UNIX-подобных систем

запуск скрипта от имени root

Модератор: Bizdelnick

запуск скрипта от имени root

Сообщение safronowmax » 13.12.2012 20:08

Re: запуск скрипта от имени root

Сообщение allez » 13.12.2012 20:35

Re: запуск скрипта от имени root

Сообщение safronowmax » 13.12.2012 22:05

allez, вы имеете в виду например так:
#!bin/bash
sudo mkdir test

Re: запуск скрипта от имени root

Сообщение allez » 13.12.2012 22:23

Re: запуск скрипта от имени root

Сообщение safronowmax » 13.12.2012 22:33

Проблема в том, что данный скрипт будет отдавать данные в zabbix, и такой вариант не подойдет, попробовал в /etc/sudoerc прописать пользователя с правами root: vbox ALL=(ALL) ALL, но что-то все равно не работает

You need to be root to run this script linux что делать. Смотреть фото You need to be root to run this script linux что делать. Смотреть картинку You need to be root to run this script linux что делать. Картинка про You need to be root to run this script linux что делать. Фото You need to be root to run this script linux что делать

Re: запуск скрипта от имени root

Сообщение Bizdelnick » 13.12.2012 23:43

в консол и
вку́пе (с чем-либо)
в общем
в ообще
в течени е (часа)
нович ок
нюанс
п о умолчанию
приемл емо
пробле ма
проб овать
тра фик

You need to be root to run this script linux что делать. Смотреть фото You need to be root to run this script linux что делать. Смотреть картинку You need to be root to run this script linux что делать. Картинка про You need to be root to run this script linux что делать. Фото You need to be root to run this script linux что делать

Re: запуск скрипта от имени root

Сообщение Vascom » 14.12.2012 09:06

Re: запуск скрипта от имени root

Сообщение allez » 14.12.2012 12:23

You need to be root to run this script linux что делать. Смотреть фото You need to be root to run this script linux что делать. Смотреть картинку You need to be root to run this script linux что делать. Картинка про You need to be root to run this script linux что делать. Фото You need to be root to run this script linux что делать

Re: запуск скрипта от имени root

Сообщение eddy » 14.12.2012 13:54

You need to be root to run this script linux что делать. Смотреть фото You need to be root to run this script linux что делать. Смотреть картинку You need to be root to run this script linux что делать. Картинка про You need to be root to run this script linux что делать. Фото You need to be root to run this script linux что делать

Re: запуск скрипта от имени root

Сообщение trendix » 14.12.2012 20:52

You need to be root to run this script linux что делать. Смотреть фото You need to be root to run this script linux что делать. Смотреть картинку You need to be root to run this script linux что делать. Картинка про You need to be root to run this script linux что делать. Фото You need to be root to run this script linux что делать

Re: запуск скрипта от имени root

Сообщение drBatty » 17.12.2012 11:42

Скоро придёт
Осень

Re: запуск скрипта от имени root

Сообщение liaonau » 17.12.2012 18:27

You need to be root to run this script linux что делать. Смотреть фото You need to be root to run this script linux что делать. Смотреть картинку You need to be root to run this script linux что делать. Картинка про You need to be root to run this script linux что делать. Фото You need to be root to run this script linux что делать

Re: запуск скрипта от имени root

Сообщение drBatty » 18.12.2012 11:23

Скоро придёт
Осень

Re: запуск скрипта от имени root

Сообщение Kopilov » 18.12.2012 18:52

You need to be root to run this script linux что делать. Смотреть фото You need to be root to run this script linux что делать. Смотреть картинку You need to be root to run this script linux что делать. Картинка про You need to be root to run this script linux что делать. Фото You need to be root to run this script linux что делать

Re: запуск скрипта от имени root

Сообщение drBatty » 19.12.2012 16:31

Скоро придёт
Осень

You need to be root to run this script linux что делать. Смотреть фото You need to be root to run this script linux что делать. Смотреть картинку You need to be root to run this script linux что делать. Картинка про You need to be root to run this script linux что делать. Фото You need to be root to run this script linux что делать

Re: запуск скрипта от имени root

Сообщение Poor Fred » 19.12.2012 16:39

Как будет отдавать? Может быть, наоборот, zabbix-agent будет сам забирать? Тогда и пользователь должен быть другой. zabbix, как ни странно.

Re: запуск скрипта от имени root

Сообщение Kopilov » 19.12.2012 17:43

Re: запуск скрипта от имени root

Сообщение liaonau » 19.12.2012 19:22

You need to be root to run this script linux что делать. Смотреть фото You need to be root to run this script linux что делать. Смотреть картинку You need to be root to run this script linux что делать. Картинка про You need to be root to run this script linux что делать. Фото You need to be root to run this script linux что делать

Re: запуск скрипта от имени root

Сообщение drBatty » 20.12.2012 11:37

Источник

Thread: «This script must be run as root»

Thread Tools
Display

«This script must be run as root»

I am trying to install a program, but when I enter «./install» in the terminal, I get the message:

«This script must be run as root»

You need to be root to run this script linux что делать. Смотреть фото You need to be root to run this script linux что делать. Смотреть картинку You need to be root to run this script linux что делать. Картинка про You need to be root to run this script linux что делать. Фото You need to be root to run this script linux что делать

Re: «This script must be run as root»

root is the privileged adiminstrator’s account in Linux. It’s usually needed for example to install software outside your home folder.

Be careful what you do and run as root. Only run programs and scripts from trustworthy sources that way as the can harm your system.

Re: «This script must be run as root»

I am trying to install Avira Antivir Personal for Linux, if that helps. I unzipped the gz package to the /tmp folder in the main drive, where Linux is installed. I renamed it to «antivir» since the original name was long and complicated.

Re: «This script must be run as root»

Re: «This script must be run as root»

I quote from the Terminal with translations in bold, since it is the German version:

Re: «This script must be run as root»

It’s quite annoying that such a simple task like installing a downloaded program is so complicated under Linux. I’m not a computer illiterate, i have been working with Windows computers extensively since 1996 and some would call me a power-user with some reason. But Linux beats me.

Re: «This script must be run as root»

You need to be root to run this script linux что делать. Смотреть фото You need to be root to run this script linux что делать. Смотреть картинку You need to be root to run this script linux что делать. Картинка про You need to be root to run this script linux что делать. Фото You need to be root to run this script linux что делать

Re: «This script must be run as root»

Please post back if you have any further questions or comments.

Источник

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *