Задать вопрос
Ответы пользователя по тегу Linux
  • Что представляет из себя директория /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
    Ответ написан
    Комментировать
  • Посoветуйте дистрибутив Linux для маломощного ноутбука с сенсорным экраном?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Как раз свеженькая статья со списком легковесных линуксов
    https://habr.com/ru/post/458088/
    Ответ написан
    Комментировать
  • Почему сценарий выдаёт ошибку?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    #!/bin/bash
    
    echo -n "Enter a folder name: "
    read way 
    
    eval "ls $way"
    Ответ написан
    Комментировать
  • Как изменить системные виндовские файлы из под линукса?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Потому что ntfs это проприетарная файловая система, и написанный ntfs драйвер под линукс не поддерживает все возможности.
    Указанные файлы могут быть например скомпрессированы или даже закриптованы.
    Попробуйте загрузиться из другой винды, как минимум будет адекватная поддержка ntfs
    Ответ написан
    Комментировать
  • Как выполнить INSERT в таблицу со спец символами через bash скрипт?

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

    Вы не привели примера строки, которая у вас не работает, но на самом деле там несложно.
    Можно выносить в отдельный файл, можно делать перенаправление через <
    Ответ написан
  • Разница командных строк?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Вам нужно почитать что такое переменная PATH и как ее настроить в Линукс и в Windows - в ней перечислены каталоги, в которых происходит поиск команд-программ.

    Если вы пишете команду в строке, то
    в Windows:
    * Проверяется является ли эта команда внутренней командой (echo, set)
    * Есть ли такая программа в текущем каталоге (если указана без расширения, то ищется CMD.bat, CMD.cmd, CMD.exe, CMD.com
    * Есть ли такая программа в каталогах, перечисленных в PATH

    в Linux:
    * Проверяется является ли эта команда внутренней командой шелла (echo, set)
    * Есть ли такая программа в каталогах, перечисленных в PATH (у файла должен быть аттрибут executable)
    Ответ написан
    Комментировать
  • Как решить проблему с if..else в bash?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    По умолчанию баш создает все переменные текстовыми, следовательно
    res=$a+$b у вас получается контакенация строк, а не сложение чисел.

    Используйте явное арифметическое сложение через res=$(( $a + $b ))
    либо заранее все переменные задекларируйте как integer через
    declare -i a
    declare -i b
    declare -i res
    declare -i path

    А в идеале и сравнение вместо [[ "$path" = "$res" ]] делайте числовым [[ $path -eq $res ]]
    Ответ написан
    1 комментарий
  • Использование прокси из PAC файла для curl apt и тд?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Никак. curl не поддерживает javascript, на котором обычно написан PAC файл, это только для браузеров.

    Так что вам нужно реализовывать второй вариант - VPN
    Ответ написан
    Комментировать
  • Как низкоуровневый код использующий стек узнает откуда он начинается?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Обычно для работы со стеком процессор использует регистр стека (Stack Pointer register).

    Следовательно операционная система устанавливает этот регистр для процесса при его запуске и инициализации.
    В современных процессорах регистров стека может быть несколько (я могу ошибаться, но возможно даже несколько на каждое ядро).
    Ответ написан
    Комментировать