Вопрос по shell, linux, file-permissions – Проблемы с разрешениями, не удается запустить скрипт от имени пользователя root

3

Я запускаю скрипт оболочки (Script.sh), который сам вызывает другие скрипты оболочки (Script2.sh, Script3.sh ... и т. Д.) Я вошел в систему как пользователь root и дал разрешение на выполнение всех сценариев. Но когда я выполнюls -l " сценарии по-прежнему не имеют разрешений на выполнение, отображаемых в столбце атрибутов файла. "Script.sh» работает по следующему синтаксису:

[email protected] $ sh Script.sh

Но этот сценарий не может выполнять другие сценарии (Script2.sh, Script3.sh), вызываемые им. Ошибка сообщается как "Доступ запрещен"

Я уже дал разрешение на выполнение командой chmod, но тогда также не меняются права доступа и не выполняются сценарии (Script2.sh, Script3.sh ..).

Я надеюсь, что эта ошибка вызвана тем, что Script2.sh вызывается в Script3.sh как:

./Script2.sh
./Script3.sh

И если я напишу это как: sh Script2.sh Это выполняется, но не 'не в состоянии выполнить другой скрипт, который вызывается внутри Script2.sh и сообщает об ошибке "Доступ запрещен"

sh Script.sh " работает потому что ты на самом деле бежишьш» двоичный (из / usr / bin или около того) и передайте ему параметр 'Script.sh», Если вы измените строки Script.sh с './Script2.sh» кsh ./Script2.sh ' Вы также сможете запускать сценарии. Neuron
Что это былоchmod Команду вы использовали? Вам нужно установить бит выполнения для скриптов. devnull
Трудно сказать, не видя сценарии. Можешь показатьsscce.org» Anders R. Bystrup
@devnull: я использовал:chmod +rx Script.sh команда для установки своего исполняемого бита, но, как указал umlaeute, бит noexec для смонтированного раздела не был установлен, поэтому сценарий не выполнялся командой "./ "" pRAShANT

Ваш Ответ

2   ответа
6

не установлен сnoexec флаг (который, как следует из названия, препятствует выполнению любых файлов)

1

убедитесь, что разрешение и владелец файла script.sh, также попробуйте

 # chmod 755 script.sh
 # chown root.root script.sh

Благодарю.

@ Сонни: разница междуchmod u+x script.sh а такжеchmod 0755 script.sh; chown root.root В первом случае вы гарантируете, что пользователь может выполнить сценарий, в то время как последний гарантирует, что каждый может выполнить его, и только пользователь root может его изменить. Markus W Mahlberg
chmod u+x [file name] сделал трюк для меня Sonny

Похожие вопросы