Ответы пользователя по тегу Linux
  • Файл /etc/passwd в linux?

    @Karpion
    Изначальный /etc/passwd появляется при инсталляции системы - так же, как программы и прочие файлы. Очевидно, он такой, какой посчитали нужным авторы дистрибутива.

    А зачем авторы дистрибутива сделали именно так - ответил Alexey Dmitriev .
    Ответ написан
    Комментировать
  • Что требуется знать Системному Администратору Linux систем?

    @Karpion
    В этой теме много раз задавали этот вопрос. Например.
    Ответ написан
    Комментировать
  • Использование Linux-сервера как межсетевой экран. Информация?

    @Karpion
    Как правило, в таком случае в Linux-компьютер вставляют два сетевых интерфейса (например, один встроенный, второй в PCI-слот).
    Можно обойтись одним сетевым интерфейсом - но только если провайдер не использует DHCP.

    Далее надо развести сеть. Обычно для этого нужен свич; также можно использовать WiFi-ротуер в режиме свича или в режиме NAT.

    На Linux надо будет поднять NAT. Вероятно, нужен DHCP-сервер. Ну и программы для обслуживания внутренней сети - это по выбору. Хорошо бы закрыть через FireWall доступ к программам (к их портам) снаружи; кроме тех программ, которые д.б. доступны снаружи (это имеет смысл если провайдер позволяет доступ снаружи - из своей сети или со всего мира).

    Смысл слова "DMZ" в данном контексте - мне неясен.

    Upd: Ниже советуют использовать "аппаратный роутер". Это хорошая идея.
    Ответ написан
    Комментировать
  • Как правильно сделать сим.ссылку?

    @Karpion
    Если это "два домена, с одним и тем же содержимым" - то разместить их в одной директории, тогда они будут просто идентичны.
    Ответ написан
  • В чем профит использования Linux для программирования?

    @Karpion
    Как правило, предполагается работа программы на конкретной архитектуре - и на этой архитектуре их надо тестировать. Серверные программы чаще работают под Linux.

    Кроме того, подсистема Linux есть в Windows. А на большинство остальных систем - программа, написанная под Linux, портируется проще, чем программа, написанная под Windows, ибо остальные операционки принадлежат к семейству Unix/POSIX.

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

    @Karpion
    Можно написать скрипт на shell (sh, csh, bash). Он запускает программу; дожидается её завершения (тут вообще ничего делать не нужно, это штатное поведение); проверяет код завершения процесса и логи; и принимает решение - перезапустить программу или нет.

    Есть программы, которые "заныривают в background" - процесс делает fork, родитель завершается, чилдрёнок работает. Это как раз против того, чтобы запустивший программу скрипт дожидался завершения.
    Как правило, так делают всякие программы-демоны типа SendMail, Apache, Squid и прочие. Но такие программы оставляют файл типа /var/run/программа.pid (путь м.б. другой; имя файла бывает иное), в котором в первой строке записан id процесса (если программа запускает несколько копий - то id главного процесса). Далее очевидно - надо дожидаться завершения этого процесса. И я не уверен, что можно получить код завершения - надо смотреть документацию.

    Если файл /var/run/программа.pid не создан - значит, процесс вообще не запустился; ну или запустился и успел сдохнуть. Хотя если процессу прислать "kill -9" - то он сдохнет, но /var/run/программа.pid останется" но записанный там id процесса, скорее всего, будет свободен. Это тоже надо учесть.
    Ответ написан
    Комментировать
  • База данных для одноплатника?

    @Karpion
    Вообще-то, все современные СУБД именно под это и заточены. В идеале - надо, чтобы данные располагались не в файловой системе, а в неотформатированном разделе, а то не все файловые системы выдерживают отключение питания.
    Ответ написан
  • Как удалить все данные с сервера без возможности восстановления?

    @Karpion
    Нормальные провайдеры хостинга - бэкапят данные юзеров. Так что там наверняка есть (должен быть) бэкап, который Вы не сотрёте в принципе.

    Как правило, на хостинге есть возможность переустановить систему с нуля. Имеет смысл так и сделать, причём установить её в маленький раздел, чтобы только она и влезла. Тогда будут перезаписаны почти все секторы этого раздела.
    Затем затираем свободное пространство диска. И на всякий случай - затираем раздел с системой.

    PS: Вот ещё одна причина ставить систему в один раздел, а данные держать в другом разделе.
    Ответ написан
    1 комментарий
  • Как становятся Linux-администраторами и что в нынешнее время требуют от Linux-админа?

    @Karpion
    Начать надо с установки Linux на домашней или рабочей машине и разных сервисов на его основе - Apache, Nginx, Squid, ISC-DHCPD, MySQL, PosgresDB, SQLite, OpenLDAP, DNS, всякие VPN-доступы, всякие извращения с SSh. Это и будет базовый набор знаний.

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

    Я в незапамятные времена (примерно 1993-й год) админил электронную почту на DOS. Затем потребовалось подключаться к Internet, провайдер выдал набор дискет с FreeBSD'1.x, и понеслось...
    Ответ написан
    Комментировать
  • Как узнать включена ли опция CHAP Challenge в pppoe у провайдера?

    @Karpion
    Если у Вас есть программа для логина в pppoe-сессию (а одна должна быть - иначе никак не воспользоваться услугами провайдера), то надо запустить эту программу, указав ей "использовать только CHAP Challenge".

    А можно позвонить в поддержку провайдера.
    Ответ написан
    Комментировать
  • Какие есть варианты переустановки ОС на сервере в продакшене?

    @Karpion
    Я не понял ситуации, в которой это всё требуется.

    В идеале - на сервере ставится операционка, которая выступает в роли хозяйской; или вообще операционка, предназначенная быть Dom0. Её не переустанавливают без совсем уж крайней необходимости.
    А внутрь вирт.машин уже заливают образы нужных вирт.машин.

    PS: Вроде, все драйверы д.б. в комплекте операционки; и даже - жёстко вкомпилены в ядро. ПО кр.мере, во FreeBSD - именно так.
    Ответ написан
  • Как правильно сделать read-only пользователя для Linux?

    @Karpion
    Ну, я бы решил задачу путём запуска шелла. Т.е. юзер попадает не в командную строку, а в оболочку, где есть только такие команды. Оболочка бывает менюшная, с выбором из предложенного.

    Вроде, есть шеллы, в которых можно тупо задать набор команд, доступных пациенту. И ничего больше он запустить не может.

    Ещё хороший способ упаковать пациента - это chroot. Но там ему надо обеспечить окружение - набор нужных ему программ и библиотек. Сложно, муторно и защищает так себе.
    Ответ написан
    Комментировать
  • Какой метод атаки MITM лучше?

    @Karpion
    То, что Вы перечислили - это не виды атаки, а технологии атаки. В реальной атаке обычно используются несколько технологий сразу.

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

    Аналогично сети защищены несколькими слоями. А перечисленные Вами методы используются для разных слоёв защиты.

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

    PS: Я напоминаю, что взлом сетей и перехват чужих данных карается уголовно. А в тюрьме Вам не понравится.
    Ответ написан
    Комментировать
  • Что представляет из себя директория /proc, /tmp?

    @Karpion
    tmpfs обычно хранится в оперативке, но при нехватке памяти может свопиться на диск. Главное её свойство - это отсутствие транзакционных методов работы, необходимых нормальной файловой системе - это даёт скорость, а надёжность там не нужна, ибо при ребуте она чистится.
    Хранить там свои файлы - можно и нужно. Но надо помнить: "при ребуте она чистится".

    procfs не хранится нигде, а генерится на лету. Поясняю очень приблизительно:

    Когда команда ls смотрит обычную файловую систему (обращается в директории, которую обслуживает обычная файловая система), то драйвер файловой системы читает некое хранилище - обычно HDD/SSD. И там лежат имена файлов - их можно найти программой типа diskedit (если Вы заете, что это такое).

    Когда команда ls смотрит корень procfs - то драйвер procfs не читает никаких носителей, а запускает внутри себя команду ps (любители корректных формулировок сейчас закидают меня тапками). ps читает список запущенных процессов (который, вообще-то, хранится в памяти - в данных ядра) и передаёт его драйверу procfs. А драйвер procfs на основе этой информации формирует список номеров процессов.

    Если команда ls смотрит в поддиректорию procfs - то драйвер procfs берёт информацию из данных ядра конкретно про этот процесс; эта информация тоже лежит в памяти, тоже в данных ядра.

    Собственно, разница в том, что драйвер обычной файловой системы читает данные как они лежат - потому делает это строго в монопольном режиме, никто другое не имеет права их трогать. А драйвер procfs работает с данными, которые ядро в любой момент может поменять - и потому не читает их из места хранения, а запрашивает через "кладовщика" - через того же, через кого эти данные запрашивает программа ps и её "родственники".

    А есть ещё одна интересная файловая система: devfs для директории /dev ...
    Ответ написан
    Комментировать
  • Как смонтировать виндовую шару?

    @Karpion
    При смене версии Windows - меняется протокол обмена данными. Например, меняется схема шифрования пароля. Так что указывайте версию Windows и версию Samba-клиента.
    Ответ написан
    Комментировать
  • Возможно ли перенаправить с домена на домен через файл hosts в Linux?

    @Karpion
    Файл hosts создавался тогда, когда подобная переадресация не смогла бы сработать - не было DNS-серверов (потому его и создали). А потом оказалось, что он очень неудобен - и его оставили только для совместимости.

    Я не понял, как "на роутере в настройках ДНС указано что e_e это скажем 22.22.22.22". Я вижу массу вариантов, как это можно сделать.

    Те компьютеры, которые не резолвят это имя - возможно, вообще используют другой DNS-сервер, не роутер. Программы nslookup и dig Вам помогут в диагностике.

    Совет про "суффикс net" - годный. Но не во всех случаях.
    Ответ написан
    Комментировать
  • Почему не получается законнектиться через Putty?

    @Karpion
    Больше всего похоже на изменения в IP-маршрутизации. Для начала надо посмотреть роутинг (в Windows: "route print"); также можно провести трассировку (в Windows: "tracert ..."; в Unix: "traceroute ...").
    Ответ написан
    Комментировать
  • Как создать пользователя с правами root и в таком же каталоге?

    @Karpion
    Команда "useradd" позволяет указать домашнюю директорию пользователя.

    А вообще, имеет смысл изучить устройство файлов, в которых хранится эта информация: "/etc/passwd" и "/etc/shadow" - их можно отредактировать в любом текстовом редакторе.

    Вы верно решили, что права рута даются через UID==GID==0.

    Однако, Выше Вам очень правильно указали, что для подключения по большинству протоколов запрещено использовать root - под пользователем с UID==0 просто не пустят. Для командной строки (shell) используется "sudo"; а по FTP root вообще недоступен. В принципе, это можно изменить - но это будет огромная дыра в безопасности.

    А по Вашему вопросу - вообще неясно, зачем нужен FTP-доступ в ~root ...
    Ответ написан
    Комментировать
  • Как в ARM ассемблере вывести значение числа?

    @Karpion
    Регистр у нас 32-битный, может принимать значения до 4'294'967'296, это всего десять цифр. Значит, резервируем массив из 11 байтов, последний забиваем нулём (т.е. '\0' - тут бэкслеш); по некоторым соображениям, имеет смысл взять 12 байт, тогда перед цифрами заведомо будет пробел, разделяющий числа.
    Или не надо забивать последний байт нулём, если там передаётся размер строки.

    Затем берём регистр, делим его на десять.
    Остаток отделения - это последняя цифра. Прибавляем к этому остатку от деления '0' (код цифры "ноль" - без бэкслеша) - получаем символ последней "буквы" нашей строки.
    Целую часть от деления помещаем в тот же регистр, и в цикле повторяем операцию - получаем предпоследнюю цифру и так далее.
    Когда целая часть от деления стала нулём - то всё до начала строки забиваем пробелами.

    С шестнадцатеричными цифрами и проще, и сложнее.
    Проще - делить. Остаток от деления получается операцией "AND 0x0F", целая часть деления получается сдвигом "<< 4".
    Сложнее - получать цифры. От "0" до "9" - получаются прибавлением того же '0', а вот от "A" до "F" надо прибавлять "'A'-0xA".

    А распечатать строку - мы умеем.

    PS: Старею, потихоньку забываю тонкости... А когда-то я активно любил это дело...
    Ответ написан
    Комментировать
  • Какие могут быть проблемы при переезде сервера с ARM на x86?

    @Karpion
    Ну, основные проблемы - из-за "грязных хаков" типа предположений о размере переенных в байтах, о порядке байтов в числе, о форматах чисел с плавающей точкой. Обычно вылезает в Си-программах; в языках типа Python, PHP, Perl такое бывает реже, но при старании тоже можно влететь. в проблемы. А Java изначально затачивалась на стандартное выполнение везде и всегда - правда, это не полностью удалось, но там вероятность несовместимости минимальна.

    Наиболее частые проблемы - при смене разрядности системы - 32 или 64 бита (другие разрядности бывают, но в наше время встречаются совсем редко).

    Для начала - укажите язык разработки.
    Ответ написан
    Комментировать