Задать вопрос
  • Как развернуть почту отдельно?

    @Drno
    Nginx reverse proxy
    Ответ написан
    Комментировать
  • /etc/network/interfaces No such file or directory Как пофиксить?

    @Drno
    не отсутствуют...
    у Вас в консоли одно написано, а в вопросе другое...)
    Ответ написан
    Комментировать
  • Как перепрошить смвртфон POCO C65?

    @Drno
    Посмотрите инфу на 4pda. это более профильный форум
    Ответ написан
    2 комментария
  • Почему ноутбук после незначительного намокания заходит в БИОС?

    Ноутбук заявлен как влагозащищённый? Намокала только внешняя часть корпуса?

    Если нет, то почему тогда "незначительное"?

    Вообще причиной такого может быть даже не намокание, а что-то другое.

    В любом случае - срочно тащи в СЦ, ибо если был залит, то внутри всё ещё может быть влага и контакты внутри могут тупо сгнить.

    "Срочно" читать как "вотпрямщас".
    Ответ написан
    1 комментарий
  • Как настроить оконный менеджер?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Собственно, примерно так и делаете: настраиваете режим киоска и далее в автозапуск ставите терминал. Пример готового скрипта:
    linux_kiosk_init.sh
    #!/bin/bash
    echo Installling kiosk mode...
    # Kiosk configuration
    userName="kiosk"
    kioskRunName="kiosk.sh"
    kioskRunPath="/home/$userName/$kioskRunName"
    kioskAppPath="/home/kiosk/kiosk/app"
    
    # SSH configuration
    localPort="5000"
    tunnelPort="5001"
    server="192.168.1.190"
    serverUser="me"
    # ssh -N -g -R 192.168.1.190:5555:127.0.0.1:22 me@192.168.1.190
    # autossh -f -o TCPKeepAlive=yes -o ServerAliveInterval=300 -o ServerAliveCountMax=3 -N -g -R 192.168.1.190:5555:127.0.0.1:22 me@192.168.1.190
    # autossh -f -o TCPKeepAlive=yes -o ServerAliveInterval=300 -o ServerAliveCountMax=3 -N -g -R $server:$serverPort:127.0.0.1:$tunnelPort $serverUser@$server
    
    # Configuring autossh
    export AUTOSSH_DEBUG=1
    export AUTOSSH_GATETIME=0
    export AUTOSSH_PORT=5100
    
    # Scripts configuration
    sessionName="kiosk.desktop"
    sessionPath="/usr/share/xsessions/$sessionName"
    defSesPath="/etc/lightdm/lightdm.conf.d/10-xubuntu.conf"
    defSesKey="user-session"
    defSesSection="[SeatDefaults]"
    # tunnelName="tunnel.sh"
    autorunPath="/etc/rc.local"
    
    
    # Internal variables
    kioskRunContent=''
    sessionContent=''
    # tunnelContent=""
    
    # Adding kiosk user
    echo Adding user: $userName
    adduser -m $userName
    
    # Installing simplest window manager, autossh and openssh-server
    echo Installing window manager...
    apt-get install ratpoison autossh openssh-server
    
    # Creating kioskRun sh script
    kioskRunContent+='#!/bin/bash\n'
    kioskRunContent+='/usr/bin/ratpoison &\n\n'
    kioskRunContent+="TERMINAL=`who | awk '{print $2}'`\n\n"
    kioskRunContent+='if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then\n'
    kioskRunContent+="\x20\x20\x20\x20eval 'dbus-launch --sh-syntax --exit-with-session'\n"
    kioskRunContent+='fi\n\n'
    kioskRunContent+='dbus-launch /home/kiosk/kiosk/app\n\n'
    kioskRunContent+="kill `ps | grep dbus-launch | grep -v grep | awk '{print $1}'`\n"
    
    # Saving script to file
    echo Creating $kioskRunPath...
    echo -e $kioskRunContent > $kioskRunPath
    echo Setting chmod +x
    chmod +x $kioskRunPath
    
    # Creating session file
    sessionContent+='[Desktop Entry]\n'
    sessionContent+='Version=1.0\n'
    sessionContent+='Name=Kiosk session\n'
    sessionContent+='Comment=Kiosk session\n'
    sessionContent+="Exec=$kioskRunPath\n"
    sessionContent+='Icon=\n'
    sessionContent+='Type=Application\n'
    
    # Saving script to file
    echo Creating $sessionPath
    echo -e $sessionContent > $sessionPath
    # chmod +x $sessionPath
    
    # Settining kiosk as default session
    echo Setting key $defSesKey=$userName in file $defSesPath
    sed -i "s/\($defSesKey *= *\).*/\1$userName/" $defSesPath
    # [SeatDefaults]
    # user-session=kiosk
    
    # Configuring ssh-server
    echo Configuring local ssh-server to port $localPort
    sed -i 's/^#?Port .*/Port $localPort/g' /etc/ssh/sshd_config
    sed -i 's/^#?PasswordAuthentication .*/PasswordAuthentication no/g' /etc/ssh/sshd_config
    
    if grep -q -e 'GatewayPorts' /etc/ssh/sshd_config
    then
        sed -i 's/^#?GatewayPorts .*/GatewayPorts clientspecified/g' /etc/ssh/sshd_config
    else
        echo "GatewayPorts clientspecified" >> /etc/ssh/sshd_config
    fi
    
    # Configuring ssh-client
    sshCmd="autossh -f -o TCPKeepAlive=yes -o ServerAliveInterval=300 -o ServerAliveCountMax=3 -N -g -R $server:$tunnelPort:127.0.0.1:$localPort $serverUser@$server"
    
    # Autorun configuring
    # grep -q -e 'autossh' || sed -i -e "\x24i \$sshCmd" /etc/rc.local
    echo Tunnel autorun configuring in file $autorunPath
    if grep -q -e 'autossh' $autorunPath
    then
        sed -i "s/^autossh .*/$sshCmd/g" $autorunPath
    else
        sed -i -e "\$i \\$sshCmd\n" $autorunPath
    fi
    
    echo kiosk mode complete
    echo "Don't forget:"
    echo -- 1. Set for user $userName permissions
    echo -- 2. Create key on server with command: ssh-keygen
    echo -- 3. Create key on client with command: ssh-keygen
    echo -- 4. Add local key to server with command: ssh-copy-id $serverUser@$server
    echo -- 5. Add your own key to server and to client(on user PC):
    echo     ssh-copy-id $serverUser@$server
    echo     ssh-copy-id $userName@client
    echo -- 6. On server in /etc/ssh/sshd_config set 'PasswordAuthentication no' and 'GatewayPorts clientspecified'
    Линк.
    А вот со вторым чуть сложнее: быстро найти терминал с режимом киоска не получилось, поэтому самым простым решением видится написать на си простейшее графическое приложение-консоль - примеров в сети должно быть куча.
    Ответ написан
    Комментировать
  • Допустимо ли хранить логи nodejs приложения в mysql бд или есть решения лучше?

    xez
    @xez
    TL Junior Roo
    Есть более элегантное решение.
    Называется Elastic Stack
    Ответ написан
    8 комментариев
  • Можно ли в корпус мАтх на материнскую плату мАтх поставить бп АТХ?

    Не существует блоков matx в природе. Это форм-фактор для материнских плат.
    Должен влезть обычный atx бп (они различаются только по длине).

    Есть формфактор itx у блоков питания - для совсем мелких корпусов, но об этом в характеристиках корпуса должно быть написано
    Ответ написан
    Комментировать
  • Можно ли в корпус мАтх на материнскую плату мАтх поставить бп АТХ?

    @aleks-th
    Блоки питания ATX и mini ATX одинаковы.
    Различаются только мощностью, чем больше мощность тем мощнее видюшку можно поставить.
    Если корпус стандартная башня там обычный блок обычного размера.

    По размеру главное посмотри чтобы влез в корпус и все.
    Есть еще плоские корпуса куда только маленькие блоки влазят, но ты скорее всего не в нем собираешь так как в такой видюшка не влезет по размеру.
    Ответ написан
    Комментировать
  • Можно ли в корпус мАтх на материнскую плату мАтх поставить бп АТХ?

    yakovlev_13
    @yakovlev_13
    Шаманство, экзорцизм и некромантия.
    Как я понимаю когда говорится что
    Я собрал себе сборку на мАтх,

    имеется в виду материнка. Так что блок туда встанет любой стандартный.
    Просто мать у вас обрезана под самый PCI-e.
    Но если в сборке присутствует видеокарта, то стоит взять корпусок по просторнее.
    Ответ написан
    Комментировать
  • Как перенести лендинг на WordPress у которого НЕТ базы данных?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    Может, сталкивались с подобным в своей практике?

    Конечно сталкивались, скорее всего заказчик "очень хотел сайт на wp" и готов был заплатить за дополнительные работы, и его не интересовало, что из админки сайт не будет редактироваться. Можно предпринять следующие шаги:
    1. Скопировать текущую лендинг-тему.
    2. Развернуть нулевый wp в нужном месте.
    3. Перенести п1. на п2. и активировать тему.
    НО у сайта банально нет базы данных, та база, которая указана у него в wp-config, не числится среди баз данных на нашем хостинге, да и лендингу без разницы, если вписать что-то другое. При этом, если после юрла прописать что-либо ещё, например wp-admin или даже index.php, то сайт всё-таки вспоминает про отсутствие БД и закономерно выдаёт ошибку. CSS и картинки подтягиваются из /wp-content/themes/имясайта, плагины из /wp-content/plugins/, как положено. Странно, ну да ладно. Работает и работает.

    Скорее всего тема сверстана не классическим образом, а как обычный html (php) шаблон без wp-специфичного кода, соответственно запросов к бд так же не формируется.
    Ответ написан
    Комментировать
  • Потянет ли блок питания PicoPSU 4 штуки 3,5" HDD?

    @SunTechnik
    Вы долго расписываете свои опасения, но так и не написали модель блока питания.
    PicoPSU это всего лишь форм-фактор, в котором выполняются блоки питания разной мощности с разными характеристиками.

    Особенность большинства этих блоков, что на входе у них не 220В, а 12В. Именно это напряжение используется, для питания двигателя диска 3.5", и оно проходит просто сквозь блок питания.
    Поэтому, становятся важны характеристики первичного блока.

    Без конкретных моделей и без спецификации что ещё стоит в компе - говорить не о чем..
    Ответ написан
    7 комментариев
  • Потянет ли блок питания PicoPSU 4 штуки 3,5" HDD?

    @tictac17
    Как тут верно указали, хотелось бы узнать для начала модель блока питания. Но и без этого могу сказать следующее - на каждый диск закладывайте примерно 20 Вт мощности (прям с запасом) Если ваш БП более 100 ватт и процессор энергоэффективный типа Intel N100 - то наверно все будет хорошо. Тем более будет хорошо, если в БП формирование напряжений 3.3 и 5 вольт идет отдельным конвертером. Если при включении ПК диски раскручиваются сразу, без писка, "странных" звуков, звука сброса скорости/рестарта шпинделя - значит пик потребления мощности пройден успешно и дальше все будет работать нормально.
    Ответ написан
    4 комментария
  • Можно ли использовать кулер который идет в комплекте с процессором р5 5600, или будет лучше купить другой?

    @aleks-th
    Поставь, если в твоих задачах греться больше нормы не будет то почему бы и нет .
    В штатных режимах должно работать.
    Ответ написан
    Комментировать
  • Как правильно организовать уведомление выбранных пользователей с подтверждением?

    Ну во-первых это задание, а не вопрос.
    А во вторых - просто сохрани в базе данных соответствующий флаг и проверяй его.
    После прочтения полных условий на сайте и нажатия кнопки, что новые условия приняты и прочитаны - позволяй пользоваться.
    Ответ написан
    3 комментария
  • Как на postfix сделать 2 домена для 1 ящика?

    @q2digger
    никого не трогаю, починяю примус
    и какие проблемы?
    решение зависит от конфигурации компонентов, я буду предполагать, что там по классике - postfix + dovecot + какая-то база данных. Пути к клиентским майлбоксам в этом случае в базе. Надо посмотреть каким запросом они оттуда выдергиваются и накостылить для какого домена где искать ящики.

    но проще все по красивому настроить на новый домен, а содержимое ящиков просто перенести.
    Ответ написан
    1 комментарий
  • Как генерировать пароль по кодовой фразе и восстанавливать обратно?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Это вообще задача не техническая а организационная. Сделайте участкового
    админа
    и дайте ему все прививлегии. Зачем играть в эту игру с придумыванием
    запутанных схем? Опыт инфо-безопасности показывает что все эти схемы просто
    не работают. Про это Керхкофс писал.

    Если политика сложности пароля недостаточная - придумайте политику. Обучите
    людей чтоб не было совсем уже явных проколов на участках.
    Ответ написан
    Комментировать
  • Как установить основную ОС на другой жесткий диск на уже запущенной машине?

    AshBlade
    @AshBlade Автор вопроса
    Просто хочу быть счастливым
    Все оказалось куда проще. Я накатил линукс с помощью qemu, но когда вставил не помогло.

    Но потом заметил, что там стояли 2 плашки озу, причем разные. Я на шару вынул одну и О ЧУДО о запустился. Вместе с VGA портом.
    Ответ написан
    Комментировать
  • Возможно ли реализовать TCP на Delphi?

    CityCat4
    @CityCat4
    Жил да был черный кот за углом...
    как можно реализовать то, что я хочу?

    Поставить линух и перестать пытаться сделать что-то неестественное в системе предназначенной для игрушки-кинушки-порнушки :)
    Ответ написан
    7 комментариев
  • Скрипт для передачи данных, в поисках простого решения. кто может помочь?

    @rPman
    ТЗ дано, в целях - простое, про авторизацию не заикнулись...

    Реализация будет состоять из 3 частей:
    1. интерфейс - frontend
    2. серверная часть backend
    3. из-за особенности реализации backend большинством инструментов и веб серверов, регулярные операции делают сторонним скриптом, обычно его запускают средствами ОС (его шедулером), в linux это cron

    Итак, интерфейс из одного окна - окно запроса текста с кнопкой отправки с сообщением о результате, на основе html forms:
    spoiler
    <!DOCTYPE html>
    <html>
    <head>
        <title>Текстовая форма</title>
    </head>
    <body>
        <form action="script.php" method="post">
            <textarea name="text" rows="10" cols="50"></textarea>
            <br>
            <input type="submit" value="Отправить">
        </form>
    </body>
    </html>

    Бакэнд на php это эта же самая страница, но в местах где нужно менять содержимое по логике (где нужно вывести сообщение о результате) ставится <?php ... код ... ?>. Вот пример сохранения введенного сообщения пользователем в файл, имя которого будет содержать номер сессии пользователя и время (timestamp, это сделано намеренно что бы показать проблему именования файла в данной задаче при многопользовательском доступе, если использовать просто timestamp, т.е. время в секундах, то несколько одновременно посланных сообщений заменят друг друга и останется только последнее, в приведенном примере эта проблема сохранится только для одного 'пользователя' т.е. сессии браузера - открытой страницы что даже локально сложно добиться, естественно правильно делать индекс со списком файлов но зачем, задача то простая):
    spoiler
    <?php
    define("STOREPATH","/my_cool_file_database");
    
    session_start();
    
    if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["text"])) {
        // Получаем текст из POST запроса
        $text = $_POST["text"];
        
        // Создаем имя файла: session_id + _ + timestamp
        $filename = STOREPATH . "/" . session_id() . "_" . time() . ".txt";
        
        try {
            // Пытаемся записать файл
            if (file_put_contents($filename, $text) !== false) {
                echo "Успешно";
            } else {
                throw new Exception("Ошибка при записи файла");
            }
        } catch (Exception $e) {
            echo "Ошибка: " . $e->getMessage();
        }
    } else {
        echo "Ошибка: Неверный запрос или отсутствуют данные";
    }
    ?>


    И соответственно скрипт удаления старых сообщений
    spoiler
    <?php
    define("STOREPATH","/my_cool_file_database");
    define("REMOVE_INTERVAL",3600); // интервал в секундах для старых сообщений
    
    // Получаем все txt файлы из директории
    foreach (glob(STOREPATH . "/*.txt") as $file) {
        // Извлекаем timestamp из имени файла
        if (preg_match('/_([0-9]+(?:\.[0-9]+)?)\.txt$/', $file, $matches)) {
            $fileTimestamp = (int)$matches[1];
            
            // Если файл старше часа - удаляем
            if (time() - $fileTimestamp > REMOVE_INTERVAL) {
                unlink($file);
            }
        }
    }
    ?>

    Само собой права доступа на каталог должны быть выставлены корректно, никаких ошибок не логируется.

    Никаких лимитов, никакой авторизации и защиты от ддос... в данном примере любой пользователь может забить содержимое диска на сервере, отсылая бессмысленно гиганские запросы с пустым текстом (пробелы например, они буду эффективно сжаты браузером)
    Ответ написан
    2 комментария
  • Как пробросить порт с vps на домашний cервер?

    @Drno
    на сервере включить NAT в ядре
    далее itables пробросить нужный порт а так же сделать masquerade для wan интерфейса и впн интерфейса
    на роутере сделать так же проброс нужного порта
    Ответ написан
    Комментировать