Как загрузить el6 linux без запущенного демона?

Если я правильно понял вашу проблему и вас не волнуют риски безопасности, вы можете установить sudo, добавить «www -data» (www -data — это пользователь по умолчанию, используемый nginx/apache )в файл sudoers со всеми разрешениями и без пароля, и использовать его для выполнения команды от имени другого пользователя.

Можно сделать так:

Установить судо:

apt-get install sudo

Затем добавить пользователя в конфиг:

nano /etc/sudoers

Добавьте это в последнюю строку:

www-data ALL=(ALL) NOPASSWD: ALL

И, наконец, вы можете отредактировать свой php для выполнения команды с помощью sudo:

shell_exec('sudo -u testuser /var/www/html/copy.sh');

@Редактировать

Мне удалось заставить его работать на моем сервере. Просто следуйте этим шагам, и это должно сработать и для вас.

  1. Попробуйте заменить код PHP на этот:

    <?php
    echo shell_exec('/bin/sh /var/www/html/copy.sh'); #this will display the result in your browser
    
    echo "<pre>";
    echo file_get_contents("ltylog.txt");
    echo "<pre>";
    ?>
    
  2. Затем убедитесь, что данные www -имеют доступ к файлу copy.sh:

Вы можете либо дать ему 777 chmod, как этот:

    chmod 777 /var/www/html/copy.sh

или вы можете сделать так, чтобы файл принадлежал пользователю www -data (, используемому apache):

    chown www-data:www-data /var/www/html/copy.sh

но если вы решите использовать второй вариант, убедитесь, что данные www -все еще могут выполнить файл, применив chmod следующим образом:

    chmod 755 /var/www/html/copy.sh
  1. Сделать файл исполняемым:

    chmod +x /var/www/html/copy.sh
    
  2. измените код copy.sh на этот:

    rsync -rzv -e 'ssh -p 199'  test.txt testuser@192.168.1.79:/home/testuser/txt
    ssh  testuser@192.168.1.79 -p 199 /bin/sh /home/testuser/lty.sh > ltylog.txt 2>&1
    
  3. Наконец, убедитесь, что у пользователя testuser есть доступ к следующим файлам:

    • /дом/
    • /дом/тестовый пользователь/
    • /home/testuser/lty.sh
    • /home/testuser/ltylog.txt

Если вас не волнует безопасность, вы можете просто ввести это в консоли удаленного сервера

    chmod 777 -R /home/

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

2
18.11.2019, 15:56
1 ответ

Похоже, что crondуспешно запущен :проблема может быть связана с тем, что идет после crond. Или это может быть вызвано запуском чего-то crond.

Обратите внимание, что sshdуже запущен и сетевые параметры уже установлены, поэтому вы сможете войти в систему с помощью SSH.

Если это не сработает, ядро ​​может зависнуть. Для устранения неполадок прервите автоматическую загрузку в меню GRUB и добавьте параметр загрузки (, например.single)для загрузки системы в минимальное состояние («однопользовательский режим» ), исключая такие службы, как crond.

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

Классически сценарии запуска -up в /etc/rc3.dбудут выполняться в алфавитно-цифровом порядке, и сравнение ваших загрузочных сообщений на снимке экрана с содержимым /etc/rc3.dна моей виртуальной машине RHEL выглядит так, как будто порядок совпадает... поэтому запустите ls /etc/rc3.dи посмотрите, какие сценарии идут после S90crondв вашей установке, если вам нужно знать, какие будут следующие шаги в процессе запуска -.

2
27.01.2020, 22:07

Теги

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