Задать вопрос
  • Как скрыть разделы жесткого диска для разных пользователей?

    @rPman
    Не администраторы (пользователи ОС не с правами администратора) не могут 'видеть разделы', им доступны только диски и каталоги, на которые выданы соответствующие права (по умолчанию на чтение доступ есть)

    Можно убрать все буквы дисков (останется только системный C:) а диски примонтировать на каталоги (в управление дисками можно удалить букву у диска и добавить каталог), настроив на них соответствующие права.

    p.s. для минимальной (не идеальной, можно обойти, заразив машину трояном) защиты данных от пользователей 'администраторов' можно воспользоваться встроенным шифрованием файлов (в свойствах каталога или файла можно указать что он зашифрован). Такие файлы будут доступны только из под аккаунта, создавшего их (внимание, без резервного копирования пользовательского профиля, там есть специальные встроенные методы для этого, его потеря будет означать потерю доступа ко всем зашифрованным файлам без возможности восстановления)
    Ответ написан
    2 комментария
  • Поможет ли переустановка Windows при bad блоках на жестком диске?

    @rPman
    BAD блоки это - диск в мусорку.

    Существует мизерный шанс, что новые сбойные сектора не будут появляться (повторяю, этот вариант почти нереален), в этом случае необходимо протестировать диск chkdsk с ключом /r (проверка поверхности), например из консоли восстановления (доступна на установочном диске, выбирай восстановление системы и выбирай запуск консоли), сбойные сектора будут помечены.

    Затем при установке системы нужно выбрать этот диск и не форматировать его.

    p.s. не занимайся садомаза, выброси сломаный диск и купи новый, время, нервы и потерянные данные этот диск тебе не сэкономит
    Ответ написан
    Комментировать
  • Как сделать стабильный загрузчик видео?

    @rPman
    yt-dlp

    И бодаться с гугловскими системами противодействия автоматизаций.

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

    p.s. почти наверняка есть официально платные услуги по доступу к данным, но наверное задорого и не доступно публично. Компания не зря тратила годами сотни миллионов баксов убытков чтобы стать монополистом по хранению и доступу к видеоконтенту, а на фоне последних веяний 'данные - новое золото' с целью обучения ИИ, отдавать данные просто так гугл точно не будет.
    Ответ написан
    4 комментария
  • Какую бесплатную глобальную базу данных вы порекомендуете для хранения данных пользователей (логин, имя, дата авторизации и т. п.)?

    @rPman
    комп будет выключаться и сервер соответственно тоже,

    к ней всегда будет доступ

    Сервер нужен так или иначе, не важно где он запущен.

    Если нужно именно бесплатно, то есть сложный вариант - реализовать p2p, когда серверами выступают все или часть клиентов, подключившихся на текущий момент. Этот вариант подразумевает наличие достаточного количества клиентов постоянно онлайн, что наступает обычно далеко не сразу (и скорее придется как то стимулировать клиентов работать за вас сервером)

    Точно помню был шуточный проект вики-справочника, как пример работы с webrtc (технология peer-to-peer подключений для веб приложений, на его основе к примеру работает webtorrent), где странички хранились исключительно в памяти пользовательских браузеров, пока на них кто то смотрит.
    Ответ написан
    Комментировать
  • Как узнать, был ли изменен файл?

    @rPman
    два направления:
    * первый периодические опросы 'времени последнего изменения' с помощью os.path.getctime(path), если время изменилось - значит файл был изменен (речь о командах на запись но содержимое не проверяется).
    Достоинства - простота, высокая скорость, если количество отслеживаемых файлов мало (до сотни).
    Недостаток - низкая оперативность изменений, определяется интервалом опроса

    * второй, подписаться на события изменений файла в файловой системе средствами ОС, они отличаются в каждой свои (например для linux гугли библиотеки python inotify). Можно вместо своей реализации использовать готовые утилиты (в linux inotify/inoticoming/incron/...)
    Достоинства - высокая оперативность и скорость реакции на изменения, можно отслеживать изменения в огромном количестве файлов, очень подробная информация о действиях (например можно получить события о том что файл кем то был открыт и его читают)
    Недостатки - сложность реализации, зависимость реализации от операционной системы.

    p.s. Внимание, в зависимости от выбранного метода и операционной системы возможны неожиданные последствия попыток отслеживания файлов по символическим и жестким ссылкам (можно пропускать события изменений, вопрос не изучал но нужны тесты)
    Ответ написан
    Комментировать
  • Собственное облачное хранилище с прямыми ссылками на файлы?

    @rPman
    Про требования ни слова конечно

    Собственное облачное хранилище со публичными ссылками - это обычный веб сервер (nginx/apache), файлы заливать любым удобным способом, начиная с ssh/scp и кончая webdav (это штатный плагин веб сервера, папку можно смонтировать в windows как обычную сетевую).

    Хранилище физически организовать на софтовом рейде (1/5/6) и настроить копирование либо локально к себе либо в какое-либо облако (да, бакапы никто не отменяет), настроить оповещения хоть в тот же телеграм (да еще одно облако, но куда уж без них) и расслабиться.

    Сверху можно добавить какой-нибудь syncthing если нужна синхронизация файлов с юбзерфрендли интерфейсом (к сожалению в этом интерфейсе не будет кнопки - получить ссылку на файл, скорее настроить нужно будет отдельную папка, все что туда попадает будет опубликовано в вебе)

    p.s. дешевле описанной схемы сделать не получится, любые другие механизмы - дороже либо не надежные.
    Ответ написан
    2 комментария
  • Почему некорректно работает квота на папку?

    @rPman
    с высокой вероятностью это глюк, они неверно определяют символические ссылки, считая их каталогами, т.е. один и тот же файл могут посчитать несколько раз (а есть еще циклические, там один и тот же каталог будет бесконечно считать до лимита длины пути)

    в каталоге \users размещаются профили пользователей windows, там символические ссылки используются активно, удалить их нельзя
    Ответ написан
    Комментировать
  • Возможна ли sql инъекция?

    @rPman
    почти наверняка будут глюки при использовании utf8 или любой другой мультибайтовой кодировки, и формировании строки с неправильной комбинацией символов, так как mysql_escape_string не будет их считать опасными (она вообще только для однобайтовых кодировок).

    Чтобы воспользоваться уязвимостью нужно серьезно зарыться в исходники php или mysql и понимать как обрабатываются ими мультибайтовые кодировки.

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

    @rPman
    в твоем случае просто - делать i--, само собой, если условие пропуска содержит учет номера шага, то для этого завести дополнительный счетчик настоящих шагов

    Если что под твою задачу лучше делать цикл while и считать количество 'новых слов' а не количество шагов, зачем тебе эти шаги
    Ответ написан
    Комментировать
  • Как пробросить порты системы за nat сетью?

    @rPman
    Либо гнать данные через vps-ку, используя ее как сервер посредник, либо настроить upnp и работать как обычно (upnp позволяет настраивать перенаправления портов на роутере автоматически).

    Либо воспользоваться технологией STUN, в ней машины за NAT открывают udp соединения с третьей машиной (твоя vps) а затем, имея на руках порты на роутере, подключаться к ним напрямую минуя vps-ку (udp это позволяет)
    Ответ написан
    Комментировать
  • Как работает NFC на физическом и программном уровнях?

    @rPman
    Да, если nfc использовать по назначению - для передачи метаинформации и как буквально метку. Сами же данные передавать можно по wifi или другим беспроводным технологиям (например мобильные 3g/4g/5g/...).

    nfc метка должна содержать информацию о подключении, к роутеру (который в твоем устройстве или рядом, это же не важно где физически он будет размещен) а устройство должно уметь это считывать и реагировать соответственно.

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

    Протоколы на компьютере будут сетевые, т.е. это либо сетевой диск либо к примеру webdav, к сожалению красиво автоматически мало что поможет настраивать подключение, но можно и на компьютере держать небольшое приложение, которое будет мониторить наличие устройства и подключать его автоматически.

    p.s. делать так бессмысленно, с появления таких приложений как syncthing, все это не нужно. Настраивать подключение через qr кодо дело на 1 минуту, софт опенсорс на любое железо и ос, не требует сторонние сервера и не копирует туда данные (по умолчанию используется сервер для подключения устройств за nat но можно свой установить)
    Ответ написан
  • Почему мой компьютер не может установить соединение с игровыми серверами?

    @rPman
    Как проверяешь наличие интернета?
    Работают ли ping? tracert и mtr?

    Что из себя у тебя представляет интернет? серый ли ip? что за настройки на роутере? можешь ли ты без него подключиться (если медь заходит в дом то это обычно реально).

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

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

    @rPman
    В другом ответе все необходимое уже сказано, добавлю

    - организационный, вы пускаете за один и тот же компьютер людей по очереди, определяя следующего человека вручную.
    Развиваем идею:
    * добавить удаленный доступ по rdp/vnc/rustdesk/... чтобы пользователям не требовалось физически подходить к компьютеру
    * добавить автоматическое управление правами у пользователей (для rdp это штатные пользователи ОС, скрипты будут по нескольку строчек хоть на батниках), отбирая права у всех и выдавая право очередному пользователю по списку
    Ответ написан
    Комментировать
  • Как открывать много TCP соединений и поддерживать их?

    @rPman
    Назначают несколько ip адресов на один интерфейс, и при открытии слушающего сокета, указывают разные ip адреса (обычно указывают 0.0.0.0 - слушать все интерфейсы, но можно указать конкретный). ОС это переваривают корректно.

    Подводные камни - большое количество слушающих сокетов тратят ресурсы (ram).

    У тебя неправильная архитектура - не нужно делать подключение 'все со всеми', делай граф - 'каждый с некоторыми', уведомления передавай через соседей, а для передачи самих данных уже открывай прямое соединение на это время и отключайся. Таких сетей полно, например dht, bitcoin p2p,...
    Ответ написан
    Комментировать
  • Возможно ли установить Windows XP на внешний жесткий диск?

    @rPman
    Невозможно, ни winnt, ни win2k и никакую другую win нельзя поставить на внешний носитель, это специальное ограничение от майкрософт. Начиная с win7 можно ставить на usb (windows 7 to go, гуглить easyuefi) Теоретически это из-за того что своп файл не может находиться на removable drive, отключить своп невозможно (в gui отключение фиктивное, windows создает его в c:\windows).

    Есть winpe сборки от сообщества (основаны на той windows в которой запускается установщик) для запуска приложений, вполне функциональные, на их основе делают всякие реаниматоры. Но на них большая проблема установки драйверов, мало какие могут работать (gpu например нет, только штатный vga)

    p.s. если прямо очень надо старые приложения запускать, ставь linux, запускай виртуалку и в ней уже windows. При должном красноглазии виртуалка qemu влезает в initramfs (т.е. установка будет что то типа десяток мегабайт с загрузчиком grub). А это значит система запустится практически на любой машине, с минимальными затратами ресурсов на виртуализацию. И да, нормальных драйверов на 3d графику не будет

    upd. есть способ, загрузка winxp с ramdisk, который в систему загружает grub, который в свою очередь запущен с флешки (собственно там уже пофиг, хоть по http загружай и вообще всю установку по сети pxe).
    В общем случае сначала систему устанавливают (только pro ревизии), затем клонируют на .vhd диск, и настраивают запуск с ramdisk с помощью драйвера https://github.com/Sha0/winvblock который нужно изначально интегрировать в установку

    Подробных инструкций мало, гугли, они 'почти все протухли', читай github.

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

    Заявлена поддержка 64-битных ревизий winxp/2k и даже vista что очень неплохо
    Ответ написан
  • Как визуализировать магнитное поле?

    @rPman
    Попробуй phet interactive simulation, судя по видеодемонстрациям это очень простая и в то же время функциональная система для обучения, как я понял магнитные поля там есть для постоянных токов в проводниках (собирай из сегментов свою конфигурацию)

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

    @rPman
    Если у тебя 'устаревший' http rest подход с функционалом server side only (т.е. браузер не будет требовать javascript) то лучшим решением в твоем случае будет использование фреймов. Размести каждую или эту конкретную форму в своем фрейме - тег IFRAME

    В этом случае, если нужно будет из одного фрейма по ссылкам менять адрес всей страницы, то у тега A нужно будет установить атрибут target=_top

    p.s. альтернатива, сделать единую форму, и по нажатию разных кнопок отправлять содержимое всех полей, устанавливая их значение при следующем открытии страницы. Определить, какую кнопку нажал можно по ее имени (в $_POST будет установлено значение name для той кнопки, которая была нажата).
    Ответ написан
    Комментировать
  • Как включить JavaScript в макросе на VBA?

    @rPman
    Если говорить универсально, то для этого требуется не конкретно javascript а полноценный браузер.

    Посмотри, нет ли там компонента WebBrowser (я давно не лез в эти адовые дебри ископаемых технологий майкрософта), он использует штатный internet explorer сейчас это 11 версия, и он будет ругаться что переходите на edge (придется удалить эту компоненту-уведомление в панели управления в свойства браузера и это не просто, она будет возвращаться сама).

    Но нужно понимать что если владелец сайта поставит проверку на IE да и банально использует несовместимые фичи современных браузеров, что вероятнее, то работать как ожидается не будет.

    Но сам браузер можно использовать как запускалку javascript, формируя страницу самостоятельно (сформировав ссылку через data uri например) либо использовать функционал добавления скрипта.

    p.s. excell и vba самый худший способ решать твою задачу.
    Сейчас такие задачи решают с помощью selenium и современных языков программирования
    Ответ написан