Ответы пользователя по тегу Linux
  • Архивирование и сжатие в линукс?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    tar изначально был сделан для упаковывания файлов и каталогов в ленточный архив (одним потоком).

    gzip это потоковый архиватор, он не знает про файлы, он пакует поток. На ходу. Быстро. Он не анализирует файл целиком, поэтому алгоритм, который используется в gzip, сейчас используется практически везде (в модемах, в сетевых карточках и так далее).

    исторически сложилось так, что для упаковки с компрессией нескольких файлов, использовали связку tar+gzip, что стало стандартом де-факто.
    В современном мире, стандарт бывает важнее нескольких процентов сжатия, поэтому .tgz - вполне популярное и надежное решение, которое будет работать на любом линукс. А вот zip есть далеко не везде. Вы видимо не сталкивались с урезанными версиями линуксов в embedded, да и даже в RHEL7 в стандартную поставку он не входит, надо ставить отдельно.

    Ну и напоследок - tar умеет хранить posix права доступа, а zip или rar - нет. Поэтому .tgz формат еще надолго останется с нами.
    Ответ написан
    Комментировать
  • Стоит ли раздел /boot и swap запихивать в LVM?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Я бы boot в LVM не переносил. Основное удобство LVM - удобное расширение/смена устройств онлайн. Для boot раздела это некритично, расширять его обычно не требуется. Я бы вообще всю операционку оставил бы на обычном рейде, а в LVM заносил только /opt или /var/lib/

    SWAP да, вполне можно сделать в LVM.
    Ответ написан
    Комментировать
  • Виртуальные папки в Linux возможно ли такое?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Для вашей задачи будет достаточно символических ссылок.
    делаются командой ln с опцией -s
    man ln
    Ответ написан
    Комментировать
  • Как обработать данный текст на bash?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Можно так:

    sed -rn '/\[keys2\]/,/^\[/p' file.txt

    Ищем и выводим строки начиная с той, где нашли "[keys2]" и до начала следующего блока.
    Ответ написан
    4 комментария
  • Как зафиксировать права файлов и папок, чтобы не изменялись при копании от рута?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    А зачем колупаться именно от рута?
    Делайте su www-data или su и работайте с файлами.
    Ответ написан
    Комментировать
  • Что необходимо настроить, чтобы не прописывать sudo для системных команд?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Правильный ответ заключается в том, что для sudo без аргументов, переменная PATH захардкожена

    * sudo по дефолту не использует PATH от вашего юзера или от root
    * sudo также игнорирует глобальные переменные из /etc/environment или /etc/profile.d/*.sh.
    * PATH для sudo захардкожен и равен /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

    Если нужно сделать свой PATH в судо, то можно сделать или так: "sudo bash" и уже в открытом bash настроить PATH или другие переменные.
    Или можно прописать то, что вам нужно в глобальный конфиг /etc/profile.d/name_anything.sh используя export, и запустить
    sudo su -

    Для справки, можно почитать man sudo, искать env_reset
    Ответ написан
    Комментировать
  • Не могу почему-то создать пользователя для папке, в чем может быть причина?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    chown: неверный пользователь: «user1001:1000»

    Ну так вам пишет, что пользователя user1001 нет в системе.
    какие юзера есть в /etc/passwd?

    Может забыли самого пользователя создать?
    Ответ написан
    2 комментария
  • Как сложить в bash?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    echo "$(ps h -u $ID  -o rss| tr '\n' '+'|tr -d ' ')0"|bc


    Но полагаю, что решение через awk от Skyrimus более понятное.

    Можно вообще
    echo "$(($(ps h -u $ID  -o rss| tr '\n' '+'|tr -d ' ')0))"
    Ответ написан
    2 комментария
  • Что представляет из себя директория /proc, /tmp?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    1) Если /proc не хранит информация не на диске, не в рам - то где вообще? Не понимаю(

    /proc это вообще абстракция. Ядро системы знает какие процессы сейчас запущены и хранит это в памяти. А в /proc визуализирует это, предоставляя некий интерфейс в виде "все есть файл". Просто нужно понимать, что это не ext2/ext3/ext4 эмулируемый в памяти, это именно procfs

    2) Например я в bash. Возможно ли как-то получить мой вывод, смотря в папку /proc процесса bash?

    да, можете подключиться к вашему stdout, который собственно/proc/<PID>/fd/1
    можно посмотреть как вы подключились и куда смотрит ваш /proc/<PID>/fd/1 (скорее всего в какой-нить /dev/pts/0) и оттуда тоже смотреть.

    3) Если папка /tmp хранится в ОЗУ, могу ли я там хранить свои временные файлы для мгновенного доступа?

    Да. Только нужно помнить, что tmpfs не ограничен, то есть чем больше туда кладешь, тем меньше свободного ОЗУ остается

    4) Как можно реализовать подобное: Есть файл, в который постоянно пишется информация, чтобы он не занимал много места, я ставлю условный лимит в 10000кб, когда файл начинает весить больше, то разница будет стёрта из начала файла.

    Нужно понимать, что стереть 10 байт из начала файла нельзя, потому что нужно сдвинуть содержимое всего файла. Другими словами - файл целиком придется перезаписать.
    Поэтому применяют другой способ - log rotate - когда идет запись в файл, проверяется его размер. Если он превысил значение, файл переименовывается (например в file.log.1) и открывается новый файл file.log
    Можно контролировать сколько файлов может быть в списке и не забывать переименовываьт все файлы, чтобы они соответствовали порядку. Но этим нужно заниматься тому, кто пишет в файл.
    Ответ написан
    9 комментариев
  • Как заставить Photoshop работать на Linux?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    ps в 99.99% работает у всех корректно. Например вот:

    $ ps
      PID TTY          TIME CMD
      792 pts/0    00:00:00 bash
      814 pts/0    00:00:00 ps
    Ответ написан
    1 комментарий
  • Первый дистр linux для изучения?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Уважаемые линуксоиды! Обращаюсь к вам. Сегодня я твердо решил, что пора завязывать с злоупотреблением винды и надо адаптироваться по линь.

    Как только перестанете злоупотреблять ОС, может быть начнете пользоваться.
    Пока что видно, что вы хотите начать злоупотреблять Линуксом.

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

    Ну вы же даже в винде не разобрались, раз ее хейтите.
    Вам нужно действительно ковыряться в самой OS, или в конкретных программах?

    Из опыта на Лине у меня только Kali для тролла дноклассников, и все. Но мне надоело сидеть на уровне msf + ngrok, и я хочу всерьёз начать познавать linux.

    Если нужны сети, идите сразу в циско.

    Но я не знаю, какой дистр лучше поставить! Все говорят, что лучший выбор для новичков - это mint, но мне не хочется идти лёгким путем, поэтому это не мой вариант (могу заблуждаться). Про Ubuntu я слышал, что это что-то "среднее" между Шindows и macOS, но говорят, что она уж очень не стабильная.

    RHEL и Ubuntu это сейчас самые актуальные дистрибутивы.

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

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    1. Можно подхимичить на коленке, создав двух юзеров с одинаковым UID/GID

    правим /etc/passwd
    testuser:x:1003:1003:,,,:/home/testuser:/bin/bash
    testuser1:x:1003:1003:,,,:/home/testuser:/bin/bash

    Пароли делаем разные, все остальное одинаковое.
    При логине обоими юзерами линукс будет везде отображать имя только первого (testuser), так как UID совпадает, HOME совпадает, все совпадает.

    Затем запрещаем одному из юзеров удаленный логин:
    В /etc/ssh/sshd_config
    DenyUsers testuser1
    Перегружаем sshd и все.

    2. Можно замутить почти тоже самое, добавив к pam_unix еще авторизацию по ldap, настроить лдап, и второго юзера завести в LDAP (тоже прописать одинаковый UID/GID).

    3. Лучше всего конечно настроить сложный пароль и ssh ключи, и не париться.
    Ответ написан
    2 комментария
  • Как увеличить ФС Ext4 внутри файла с 2 до 50 МБ?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Если на этой файловой системе ничего нет, то просто пересоздайте новый файл
    отмонтировать файл
    fallocate -l 50mb myfile
    resize2fs myfile
    примонтировать файл
    Ответ написан
    Комментировать
  • Как контролировать работу скриптов-воркеров? Что лучше Crontab?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Если вам нужно запускать их последовательно, зачем вы каждый сервис запускаете в крон отдельно от других?

    Сделайте скрипт, впишите в него все сервисы по очереди и запускайте скрипт раз в 10 минут?
    Ответ написан
    Комментировать
  • Base64 и Active Directory: почему не всегда правильно декодируется поле Должность (title)?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Попробуйте добавить -o ldif-wrap=no

    title=$(ldapsearch -o ldif-wrap=no -x -D user@domain.ru -w "(SAMAccountName=${SAM})" title | grep "title::" | cut -d " " -f2 | base64 -d);
    Ответ написан
    Комментировать
  • Как определить, завис ли процесс?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    процесс должен отвечать на что-либо, либо писать логи.
    Иначе вы не определите чем конкретно он занят.
    bash скрипты ничего решить не могут, можно просто при помощи баш скриптов отправлять сигналы в процесс или смотреть его параметры, но это можно делать и другими способами. Просто баш скрипты обычно самые доступные для пользователя.
    Можете пробовать смотреть что-то в /proc/, или через top
    или посмотреть как именно работают те bash скрипты, про которые вы упоминаете.
    Ответ написан
    3 комментария
  • Почему именно "root"?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Варианта два.
    1) Файловая система - древовидная, начинается с корня, и права на все есть только у суперпользователя. Вроде как у совсем старых юниксов, для суперпользователя даже не было отдельной домашней папки - использовался корень.

    2) Дерево процессов начинается с ядра системы (процесс init), который запущен от суперпользователя (root), который имеет доступ ко всем процессам.
    Ответ написан
    Комментировать
  • Как подсветить ключевое слово в терминале Ubuntu?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Юзайте регексп

    grep -P "^|нужный текст"
    Ответ написан
    Комментировать
  • Как в bash для strace программы аргументы в строке разделять?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    У вас перебор с кавычками
    exePath="path_to_program";
    exeArgs="--param1=sdfsdf --param2=sdfdf"
    strace -xf -o path $exePath $exeArgs
    Ответ написан
    Комментировать
  • Как в команде time задать на проверку длинную команду с другими параметрами?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    /usr/bin/time [-timeoptions] command [-commandoptions]

    Аргументы, которые следуют после команды будут относиться к команде, а не к time
    Ответ написан
    Комментировать