Shell Ввод пароля с помощью команды [duplicate]

required является отраженным свойством (например, id, name, type и т. д.), поэтому:

element.required = true;

... где element является фактическим элементом input DOM, например:

document.getElementById("edName").required = true;

(только для полноты.)

Re:

Тогда значение атрибута не является пустой строкой или каноническим именем атрибута:

edName.attributes.required = [object Attr]
blockquote>

Это потому, что required в этом коде является объектом атрибута , а не строка; attributes является NamedNodeMap , значения которого являются Attr объектами . Чтобы получить значение одного из них, вы можете посмотреть его свойство value. Но для атрибута boolean значение не имеет значения;

Так что если required не были отражены, вы должны установить его, добавив атрибут:

element.setAttribute("required", "");

... который является эквивалентом element.required = true. Вы очистите его, полностью удалив его:

element.removeAttribute("required");

... что эквивалентно element.required = false.

Но нам не нужно делать это с помощью required, поскольку это отражено.

38
задан icedwater 5 July 2013 в 02:12
поделиться

7 ответов

Я думаю, что вы можете предоставить конкретный доступ к пользователю и команде с помощью visudo примерно так:

nobody ALL = NOPASSWD: /path/to/osascript myscript.scpt

и с помощью php:

@exec("sudo /path/to/osascript myscript.scpt ");

, предполагая nobody у пользователя работает apache.

5
ответ дан icedwater 18 August 2018 в 18:57
поделиться
  • 1
    Пробовал много решений, это работает лучше всего для меня: +1: – MitchellK 26 September 2017 в 08:39
  • 2
    Это решение работает и для меня – Abdualiym 3 April 2018 в 03:16

php: создается консоль bash и выполняется 1-й скрипт, который вызывает sudo во второй, см. ниже:

$dev = $_GET['device'];
$cmd = '/bin/bash /home/www/start.bash '.$dev;
echo $cmd;
shell_exec($cmd);
  1. /home/www/start.bash
    #!/bin/bash
    /usr/bin/sudo /home/www/myMount.bash $1
    
  2. myMount.bash:
    #!/bin/bash
    function error_exit
    {
      echo "Wrong parameter" 1>&2
      exit 1
    }
    ..........
    

oc, вы хотите запустить скрипт с корневого уровня без привилегий root, чтобы создать и изменить файл / etc /sudoers.d/mount файл:

www-data ALL=(ALL:ALL) NOPASSWD:/home/www/myMount.bash

не забудьте chmod:

sudo chmod 0440 /etc/sudoers.d/mount
4
ответ дан j0k 18 August 2018 в 18:57
поделиться

Запустите команду sudo visudo, затем установите -%sudo ALL=(ALL:ALL) на %sudo ALL=(ALL:ALL) NOPASSWD: ALL, она будет работать.

2
ответ дан Keshav Maheshwari 18 August 2018 в 18:57
поделиться

Как запустить скрипт PHP с sudo и опустить его в скрипт? Это также может заботиться о разрешениях для дочерних процессов.

-2
ответ дан Matchu 18 August 2018 в 18:57
поделиться
  • 1
    к сожалению, программа работает в Интернете, поэтому PHP выполняется командой удаленного пользователя – pop850 4 July 2010 в 00:43
  • 2
    @ pop850 - Mmkay. В этом случае запуск PHP-скрипта с sudo будет означать запуск Apache с sudo - или, скорее, просто предоставление возможностей Apache root. Это звучит опасно, но опять же, позволяя Apache вызывать sudo без пароля, точно как опасный. На самом деле, вы, вероятно, не должны делать все, что вы делаете, как вы это делаете. Можете ли вы просто дать Apache надлежащее разрешение на выполнение действия без необходимости доступа к корневому каталогу? Это должно быть определенно возможно, если Apache каким-либо образом не изменит систему, что она не должна делать . – Matchu 4 July 2010 в 02:12
  • 3
    как я могу предоставить возможности Apache root? Я пробовал %apache ALL=(ALL) NOPASSWD: ALL – pop850 4 July 2010 в 03:42
  • 4
    @ pop850 - Я не собираюсь говорить, как, поскольку я действительно думаю, что это плохая идея. Разрешить Apache для запуска с правами root only возможно, если вы эксперт по безопасности и знаете самые глубокие тонкости того, что вы делаете, с каждой отдельной строкой кода, который вы пишете. И эти люди, вероятно, просто найдут внекорневой способ выполнить свою работу. – Matchu 4 July 2010 в 06:13
  • 5
    Я согласен с вами (см. Мой комментарий на вопрос о передаче). В настоящее время я работаю над изменением разрешений самого скрипта, который, вероятно, будет намного безопаснее. – pop850 4 July 2010 в 13:21

Недавно я опубликовал проект, который позволяет PHP получать и взаимодействовать с реальной оболочкой Bash. Получите его здесь: https://github.com/merlinthemagic/MTS У оболочки есть pty (псевдотерминальное устройство, такое же, как и в ssh-сессии), и вы можете получить оболочку при необходимости, root. Не уверен, что вам нужен root для выполнения вашего скрипта, но при условии, что вы упомянули sudo, это вероятно.

После загрузки вы просто используете следующий код:

$shell    = \MTS\Factories::getDevices()->getLocalHost()->getShell('bash', true);
$return1  = $shell->exeCmd('/path/to/osascript myscript.scpt');
0
ответ дан MerlinTheMagic 18 August 2018 в 18:57
поделиться

Если кто-то все еще требует этого. Вы можете написать текстовый файл, скажем ~ ./. Sudopass / sudopass.secret, с корневым паролем. Скажем, пароль root - «12345». Вы создаете ~ ./. Sudopass / sudopass.secret только с 12345 в качестве содержимого:

12345

И затем вы делаете следующее:

exec('sudo -u root -S {{ your command }} < ~/.sudopass/sudopass.secret');

Не забудьте использовать это только в контролируемых средах.

19
ответ дан scabezas 18 August 2018 в 18:57
поделиться

Похоже, вам нужно настроить пароль sudo. Попробуйте:

%admin ALL=(ALL) NOPASSWD: ALL

Также закомментируйте следующую строку (в / etc / sudoers через visudo), если она есть:

Defaults    requiretty
15
ответ дан tomit 18 August 2018 в 18:57
поделиться
  • 1
    Я попытался добавить это к etc / sudoers, но без кубиков. Я все еще получаю «нет tty настоящего и не запрашивает пропущенную программу» – pop850 4 July 2010 в 02:18
  • 2
    Я обновил свой ответ. – tomit 4 July 2010 в 02:56
  • 3
    Удалось ли вам прокомментировать строку requiretty? – tomit 4 July 2010 в 04:50
  • 4
    Неа. он вообще не был в файле. Я начинаю соглашаться с Matchu (ниже) обо всех этих материалах безопасности. Если моя система делает это сложным, это, вероятно, хорошая причина для безопасности. – pop850 4 July 2010 в 13:19
  • 5
    Я думаю, что это мудрое решение :) Несмотря на то, что я пытаюсь ответить на ваш первоначальный вопрос, я думаю, что использование sudo в webapp может потенциально подтолкнуть множество головных болей к безопасности. – tomit 4 July 2010 в 15:35
Другие вопросы по тегам:

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