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


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Дать юзеру права root на выполнение скрипта  (Прочитано 11017 раз)

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

Оффлайн lyoha100

  • Автор темы
  • Любитель
  • *
  • Сообщений: 51
    • Просмотр профиля
Здравствуйте. Надо дать юзеру права root на выполнение определённого скрипта.
Выполняю:
visudoпишу в конец это:
alexey  ALL=(ALL) NOPASSWD: /home/alexey/desktop/1.shНо скрипт выполняется не с правами root, пишет, что прав не хватает.
Код скрипта:
#!/etc/bash
 
mkdir /home/dir
 
exit 0
Выполнение скрипта:
alexey@alexey:~/desktop$ bash 1.sh
mkdir: невозможно создать каталог «/home/dir»: Отказано в доступе

Оффлайн JmAbuDabi

  • Старожил
  • *
  • Сообщений: 2468
  • 나는 빅터 해요. 나는 프로그래머입니다
    • Просмотр профиля
Re: Дать юзеру права root на выполнение скрипта
« Ответ #1 : 29 Октября 2013, 19:56:36 »
А не проще дать юзеру рут права, просто вот та строка, эта дыра в системе.

т.е. добавить его в группу sudo.

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

Оффлайн lyoha100

  • Автор темы
  • Любитель
  • *
  • Сообщений: 51
    • Просмотр профиля
Re: Дать юзеру права root на выполнение скрипта
« Ответ #2 : 29 Октября 2013, 20:03:44 »
скрипт будет запускаться сервером apache, т.е. пользователем www-data.

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 7813
  • We were here
    • Просмотр профиля
Re: Дать юзеру права root на выполнение скрипта
« Ответ #3 : 29 Октября 2013, 20:04:35 »
Цитировать
Но скрипт выполняется не с правами root, пишет, что прав не хватает.

sudo /home/alexey/desktop/1.sh
То, что вы поправили в visudo - говорит о том, что когда скрипт будет запускаться через sudo - он выполнится от рута без запроса пароля.


🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Дать юзеру права root на выполнение скрипта
« Ответ #4 : 29 Октября 2013, 20:05:31 »
Надо дать юзеру права root на выполнение определённого скрипта.
Запускать надо так:
chmod +x /path/to/script.sh
sudo /path/to/script.sh

Оффлайн lyoha100

  • Автор темы
  • Любитель
  • *
  • Сообщений: 51
    • Просмотр профиля
Re: Дать юзеру права root на выполнение скрипта
« Ответ #5 : 29 Октября 2013, 20:20:29 »
То, что вы поправили в visudo - говорит о том, что когда скрипт будет запускаться через sudo - он выполнится от рута без запроса пароля.
но он всё равно спрашивает пароль.

ArcFi, при таком запуске вот что происходит:
alexey@alexey:~/desktop$ sudo /home/alexey/desktop/1.sh
sudo: unable to execute /home/alexey/desktop/1.sh: No such file or directory

Скрипт точно там!

Оффлайн svcunion

  • Активист
  • *
  • Сообщений: 565
  • Всё на самом деле не так, как на самом деле.
    • Просмотр профиля
Re: Дать юзеру права root на выполнение скрипта
« Ответ #6 : 29 Октября 2013, 20:25:31 »
мне кажется ещё вариант ( если проблема лишь в создании каталога, а не устновке прог или других root функций ), дать права
sudo chmod 777 "/home/name user/target directory" /R
Пусть в этой target directory стартует с 1.sh. На десктоп все это дать - не лучший вариант.

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 7813
  • We were here
    • Просмотр профиля
Re: Дать юзеру права root на выполнение скрипта
« Ответ #7 : 29 Октября 2013, 20:26:34 »
забыли сделать
chmod +x /home/alexey/desktop/1.sh
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн lyoha100

  • Автор темы
  • Любитель
  • *
  • Сообщений: 51
    • Просмотр профиля
Re: Дать юзеру права root на выполнение скрипта
« Ответ #8 : 29 Октября 2013, 20:31:47 »
Скрипт будет не только директории создавать, но многое другое.

Это сделал:
chmod +x /home/alexey/desktop/1.sh
Запускаю так:
sudo /home/alexey/desktop/1.sh
всё равно гад запрашивает пароль!  >:(

Оффлайн Karl500

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2267
    • Просмотр профиля
Re: Дать юзеру права root на выполнение скрипта
« Ответ #9 : 30 Октября 2013, 09:41:34 »
скрипт будет запускаться сервером apache, т.е. пользователем www-data.
вот эта фраза говорит о том, что этот скрипт будет широко распахнутыми воротами в систему снаружи (если пользователь www-data сможет выполнить скрипт с правами root).

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

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: Дать юзеру права root на выполнение скрипта
« Ответ #10 : 30 Октября 2013, 09:55:11 »
lyoha100,
echo пароль | sudo -S /home/alexey/desktop/1.sh :D
Wars ~.o

Оффлайн БТР

  • Заслуженный пользователь
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6290
    • Просмотр профиля
Re: Дать юзеру права root на выполнение скрипта
« Ответ #11 : 30 Октября 2013, 10:14:23 »
этот скрипт будет широко распахнутыми воротами в систему снаружи (если пользователь www-data сможет выполнить скрипт с правами root).

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

адназначна.

sudo: unable to execute /home/alexey/desktop/1.sh: No such file or directory


Скрипт точно там!

по дефолту нет такого каталога desktop в профиле пользователя. Регистр, если чо, имеет значение - это не венда.

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 3266
    • Просмотр профиля
Re: Дать юзеру права root на выполнение скрипта
« Ответ #12 : 30 Октября 2013, 10:37:20 »
Если скрипт из одной строки, то почему не дать право на выполнение mkdir?
А если надо именно на скрипт, то напишите его на perl. Сам я с perl незнаком.
Пётр.

Оффлайн lyoha100

  • Автор темы
  • Любитель
  • *
  • Сообщений: 51
    • Просмотр профиля
Re: Дать юзеру права root на выполнение скрипта
« Ответ #13 : 30 Октября 2013, 11:47:01 »
Да, точно  дело было в регистре. Но он всё равно запрашивает пароль((

Так, если я дам права на выполнение только конкретного скрипта, где же тут дыра? Хотите сказать, что скрипт могут подменить? Так на скрипт будут стоять соответствующие права!

Пользователь решил продолжить мысль 30 Октября 2013, 11:50:31:
lyoha100,
echo пароль | sudo -S /home/alexey/desktop/1.sh :D
Спасибо, работает! Я такой способ уже видел, но что-то не мог его реализовать))

Но с sudoers всё же хочется разобраться до конца, на будущее.

Пользователь решил продолжить мысль 30 Октября 2013, 12:06:45:
echo password | sudo -S mkdir /home/dirтак работает в терминале, а когда это запускает apache, то не работает((
« Последнее редактирование: 30 Октября 2013, 12:06:45 от lyoha100 »

Оффлайн JmAbuDabi

  • Старожил
  • *
  • Сообщений: 2468
  • 나는 빅터 해요. 나는 프로그래머입니다
    • Просмотр профиля
Re: Дать юзеру права root на выполнение скрипта
« Ответ #14 : 30 Октября 2013, 12:16:49 »
а ты его в скобки возьми))

(echo password | sudo -S mkdir /home/dir)
Покой – это не место, где тихо и мирно, где нет шума и беспокойства.
Покой – это когда при всем этом, вы сохраняете мир и спокойствие в своем сердце.

 

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