SmithSE, посмотрел, ничего не понял, я в яве не разбираюсь. Вообще по идее если бы были проблемы с токеном то возвращалась бы другая ошибка, не 404, а раз 404 - делается запрос на какой-то неправильный URL.
Клиентский API (MTproto API) позволяет находить клиентов по номеру телефона. Но массовый поиск по номеру телефона легко может привести к бану (после некоторых скандалов на эту тему Телеграм стал с подобным бороться). Более того, некоторые пользователи нажмут "это спам", потому что они вообще не просили писать им в Телеграм и не давали на это согласия. Рекомендую от этой идеи отказаться.
В дальнейшем рекомендую подписку на уведомления сделать дополнительной возможностью для пользователя путём указания ссылки на бота, где можно подписаться. Для связи пользователя на сайте с пользователем в Телеграме можно использовать deep linking.
В некоторых мессенджерах (Viber, WhatsApp) есть легальные (платные) способы отправки сообщений по номеру телефона (в Viber с любым текстом, в WhatsApp - по согласованному шаблону). Но и для них от пользователя следует получать ясное мотивированное согласие на получение такой информации именно через указанный мессенджер.
В общем случае это невозможно. Бот может получить id пользователя, если тот ему напишет. Крупные широко используемые боты могут иметь приличную базу пользователей, но даже они не могут знать всех.
Сергей Карбивничий, так, что у бинарника sudo послетали права увидел не сразу. Но это от usermod не могло случиться. Это от чего-то ещё, какие-то другие косые действия.
Починить можно было бы ручным исправлением прав на бинарник sudo без переустановки..
Какие-то пользователи сами добавляют через формочку, какие-то они могут находить через репосты и всё такое. В любом случае, вряд ли они захотят просто так отдавать свою базу каналов.
Dr. Bacon, есть определённые потуги к стандартизации DE в рамках freedesktop.org, так что да, есть унифицированный механизм для меню, и устанавливаемый софт в менюшке появляется вне зависимости от того, какой DE используется пользователем.
Про пароли и переустановку sudo фигня какая-то. Надо было просто полностью перелогиниться. Для проверки групп использовать команду id -a [юзернейм], она бы показала, что до перелогина группы не поменялись.
Алексей Леонтьев, дык если каталог непустой то он не будет удалён. А в нынешних условиях каталоги с другими подкаталогами удаляться не будут - они ж на момент выполнения find непустые.
@alexbprofit
compile не защитит от внедрения произвольного кода и не позволит избежать бесконечного цикла, разрастания по памяти, обращения в сеть и прочих посторонних вещей, от которых мы пытаемся защититься.
ITpie, Docker - система запуска приложений в изолированном окружении, используя доступные в Linux технологии: namespaces и cgroups. В каком-то смысле контейнеры - это "лёгкие" виртуальные машины, которые работают на одном и том же ядре, но отделены от основной системы и друг от друга и имеют свою собственную сеть (network namespace), точки монтирования (mount namespace, развитие идеи chroot), процессы (pid namespace) и ещё некоторые другие сущности. Необязательно использовать именно докер, можно вообще создавать namespace'ы для запускаемого процесса явным образом, но докером можно сделать это довольно быстро.
В общих чертах это может выглядеть так. Сделаем образ для Docker, в котором будет python и нужные модули. Для каждого скрипта будем его вместе с тестовыми данными подсовывать в создаваемый для теста контейнер, в котором отсутствует доступ к сети (при желании можно также навертеть ограничений на использование процессора, памяти итд). Если контейнер не завершился за оговоренное время, будем гасить его принудительно.
Нужен Linux с Docker, запустить build.sh, чтобы собрать образ (он будет называться testing), затем можно запустить test.sh, который запустит скрипт script.py, внутри которого бесконечный цикл. В test.sh раз в 5 секунд идёт проверка состояния контейнера, если через 60/5=12 проверок контейнер ещё не завершился - он будет принудительно завершён. У меня скрипт устевает выполнить цикл 72 раза, это из-за того, что каждый вызов docker inspect для получения состояния контейнера тратит примерно секунду.
Даниил, можно представить себе "треды" (hyperthreading) в процессоре как имитацию полноценных процессоров без настоящего дублирования компонентов процессора в камне, в отличие от "ядер" (core). С точки же зрения софта и то, и другое - самостоятельные процессоры.
А треды в программистском смысле - это возможность исполнять код параллельно в пределах одного процесса с одной и той же общей памятью. Это совсем другое. Кстати, далеко не всегда треды исполнены в виде настоящих или псевдопроцессов, например, треды могут быть реализованы как особенности исполнения байткода в однопоточной виртуальной машине.
Threads в процессоре и threads в операционной системе/прикладном ПО - разные вещи.
Тогда почему вообще вся ОС не асинхронная
В каком-то смысле она и есть асинхронная. Реагирует на системные вызовы, на события, а в остальное время работает пользовательский софт либо всё засыпает в ожидании причин проснуться.