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

    gedev
    @gedev
    сисадмин-энтузиаст
    Такой вопрос уже был и не раз https://qna.habr.com/q/681178 Посмотрите, перейдите там по ссылкам, почитайте чем чревато. По первой же ссылке из гугла есть статья https://linuxconfig.org/jail-ssh-user-to-home-dire... с примером. Обычно решается такое через chroot.

    Коротко — ограничивая пользователя домашней директорией вы также отрезаете его от всей системы и программ которые в ней есть. В *NIX программы размазаны почти по всей ФС и для их корректной работы всё это придётся дублировать и следить чтобы не хардкодились пути в конфигах. Поэтому придётся копировать глобальное окружение в диру юзера.

    Много мороки и мало реальной пользы. Вместо того, чтобы пытаться загнать юзера в домашнюю диру лучше правильно расставьте права доступа к директориям и файлам за которыми хотите следить.
    Ответ написан
    Комментировать
  • Как правильно отредактировать загрузчик Grub?

    gedev
    @gedev
    сисадмин-энтузиаст
    Вообще для таких вещей есть /etc/grub.d/40_custom

    А так можно захолдить пакет, чтобы он не обновлялся.

    sudo apt-mark hold grub-rc
    Ответ написан
    1 комментарий
  • Как сделать для bash скрипта свой итерпритатор?

    gedev
    @gedev
    сисадмин-энтузиаст
    К тому что уже сказали, вот самая примитивная реализация:
    #!/usr/bin/env bash
    
    my_cmd_1() {
        echo "1st command output. Args: $*"
    }
    
    my_cmd_2() {
        echo "2nd command output. Args: $*"
    }
    
    echo 'Available commands: my_cmd_1, my_cmd_2, exit'
    while true; do
        read -erp '>>> '
        $REPLY
        if [[ "$REPLY" == "exit" ]]; then
            break
        fi
    done

    ~ $ ./cmd.sh 
    Available commands: my_cmd_1, my_cmd_2, exit
    >>> my_cmd_1 --option argument
    1st command output. Args: --option argument
    >>> exit

    read --help
    man readline
    Ответ написан
  • Как дать FTP доступ пользователю к определенной папке?

    gedev
    @gedev
    сисадмин-энтузиаст
    Чаще всего авторизация через PAM, поэтому пользователь FTP = пользователь операционной системы. Меняете домашнюю папку пользователя и готово.

    Изменение домашней папки существующего юзера может иметь последствия если какое-то ПО уже завязалось на этих путях. Поэтому рекомендую сделать нового юзера для FTP.
    Ответ написан
    2 комментария
  • Есть ли какое ПО для вывода расписания и вывода на экран?

    gedev
    @gedev
    сисадмин-энтузиаст
    Как вариант можно использовать Google Sheets. Через "Файл" --> "Поделиться" --> "Опубликовать в интернете" получаешь веб-страницу с графиком который сам обновляется каждые 5 минут.
    Ответ написан
    Комментировать
  • Почему в системе ubuntu20.04 время от времени на разных директориях появляется файл по имени 1, формат файла ASCII?

    gedev
    @gedev
    сисадмин-энтузиаст
    А вы случаем не запускете неправильное перенаправление потоков? Например, так:
    ~ $ echo Hello, World 2&>1
    ~ $ file 1
    1: ASCII text
    ~ $ cat 1
    Hello, World 2

    Должно быть 2>&1. Иногда остаются такие артефакты, если невнимательно набирать команды.
    Ответ написан
    3 комментария
  • Где найти файловый менеджер для Android с возможностью подключения по SSH?

    gedev
    @gedev
    сисадмин-энтузиаст
    Очень легко гуглятся SFTP-клиенты под Adnroid. Если графический интерфейс не принципиален, то Termux. Будет вполне себе функциальный UNIX-шелл без необходимости в root.
    Ответ написан
    Комментировать
  • Как выбрать ноутбук для Linux?

    gedev
    @gedev
    сисадмин-энтузиаст
    Подход первый:
    1. Находим ноутбук, который нравится
    2. Гуглим "модель ноутбука linux" и смотрим что пишут/спрашивают на форумах. Лучше искать в ангоязчном интернете, больше результатов получите. Сообщения типа "никак не могу завести вайфай/bluetooth/тачпад" — красный флажок.
    3. Если огорчены, то ищете другой ноутбук и гуглите.

    Подход второй:
    1. Гуглите ноутбки с предустановленным Linux.
    2. ???
    3. PROFIT

    Я присматривался к Huawei Matebook X и Honor MagicBook

    Сам имею Huawei Matebook D14 на AMD, Arch Linux (ещё на elementaryOS погонял). Ни на что не жалуюсь, кроме датчика отпечатка пальца, который кажется всё таки можно включить (система его видит), но мне не нужен. Это клон MagicBook, к слову.

    UPD: Всё же странно, что у вас были проблемы со звуком на Matebook D15, там же попсовый Realtek, с которым хорошо дружат линупсы.
    Ответ написан
    3 комментария
  • Как запретить запись на диск для определенных программ в Linux?

    gedev
    @gedev
    сисадмин-энтузиаст
    Вы можете ограничить юзера, от имени которого запускается программа. Ограничения для самих программ реализуются в контейнерах, например, такая возможность есть во Flatpack https://askubuntu.com/questions/1086529/how-to-giv...
    Ответ написан
    5 комментариев
  • Почему в Linux Mint иные шрифты?

    gedev
    @gedev
    сисадмин-энтузиаст
    1. Потому, что стандартные наборы шрифтов отличаются. Это неизбежно из-за лицензий.
    2. Разумеется можно установить дополнительные шрифты. Надо лишь найти те, что нужны вам. Смена дистрибутива это как-то очень радикально, всё равно будете доустанавливать шрифты :)

    Также есть разница в рендеринге. Один и тот же шрифт в Linux и Windows может выглядеть слегка по-разному и вы на это вряд ли повлияете.
    Ответ написан
    7 комментариев
  • Как исключить полный путь из tar?

    gedev
    @gedev
    сисадмин-энтузиаст
    В комментариях к вопросу какие-то страшные костыли :)
    Автор, видимо ты неправильно использовал -C. Пример того как работает с пояснением: Как исправить данный скрипт? -C прямо решает задачу:

    -C, --directory=DIR
                  Change to DIR before performing any operations.  This option is  order-sensitive,
                  i.e. it affects all options that follow.
    Ответ написан
  • Как установить программу tar.xz tar.bz2 tar.gz на ubuntu?

    gedev
    @gedev
    сисадмин-энтузиаст
    Похоже, что вы скачали исходные коды программ. tar.xz, tar.bz2, tar.gz это всего лишь форматы архивов. С каждым из них умеет работать утилита tar. Архивы откроются также стандартным менеджером архивов Ubuntu.

    Так как вы начинающий, то проще будет найти это программы в репозитории и установить через пакетный менеджер. Привыкайте к нему, это гораздо удобней. Например:

    sudo apt install firefox

    Узнать есть ли программа в репозитории можно на сайте: https://packages.ubuntu.com/
    Или выполнив поиск в терминале:

    apt search firefox

    Команда покажет список пакетов, если такие можно установить.

    Некоторые программы, которые распространяются в виде архивов могут работать сразу после распаковки, но чаще необходимо выполнить компиляцию программы. В таком случае ищите инструкцию на сайте откуда скачали архив с программой.
    Ответ написан
    Комментировать
  • Как выбрать версию php для композер?

    gedev
    @gedev
    сисадмин-энтузиаст
    Можно добавить в файл ~/.bash_profile (если надо для одного юзера) или в файл /etc/profile (если надо для всех пользователей на сервере):

    export PATH=/opt/php74/bin/:$PATH
    alias composer='/opt/php74/bin/php /usr/local/bin/composer'

    Затем перелогиньтесь. Готово.
    Ответ написан
    Комментировать
  • Почему сервер обрывает соединения?

    gedev
    @gedev
    сисадмин-энтузиаст
    По умолчанию SSH рвёт соединение через 3 минуты бездействия (линк). Пропишите у себя на компьютере в ~/.ssh/config:
    ServerAliveInterval 60  # период отправки сигнала keepalive в секундах
    ServerAliveCountMax 120  # количество отправок сигнала

    Таким образом соединение продержится два часа при бездействии. Если ваша проблема действительно в этом, то должно помочь.

    Авторизация по ключу не могла вызвать "падений" сервера. И что вы подразумеваете под падением? Сервер недоступен по сети, сервер MInecraft перестаёт отвечать?
    Ответ написан
  • Как сделать в линуксе скрипт который будет устанавливать нужные мне программы?

    gedev
    @gedev
    сисадмин-энтузиаст
    Можно сделать чуть-чуть удобнее — держать список пакетов в отдельном файле (ещё и комментировать строки сможете), но скрипт слегка усложнится:

    install.sh:
    #!/usr/bin/env bash
    PKG_LIST=packages.txt
    sed '/#/d' "$PKG_LIST" | xargs apt install -y

    packages.txt:
    # Python
    python3-dev
    python3-venv
    python3-pip
    python3-setuptools
    
    # Perl
    perl
    libwww-perl
    libxml-rss-perl
    Ответ написан
    3 комментария
  • Какие книги лучше подойдут новичку по bash?

    gedev
    @gedev
    сисадмин-энтузиаст
    Комментировать
  • Какой командный процессор (shell) самый продвинутый и удобный в Linux?

    gedev
    @gedev
    сисадмин-энтузиаст
    Если надо докручивать bash, то посмотрите на Oh My Bash!. Сам предпочитаю bash как он есть или sh.
    Ответ написан
    Комментировать
  • Есть сейчас смысл ставить Ubuntu для изучения backend (PHP,Python,Postgre и т.д)?

    gedev
    @gedev
    сисадмин-энтузиаст
    Если пишете серверные приложения, то *NIX специфичные вещи нужно хорошо знать. В таком случае определённо стоит ставить Ubuntu, ИМХО. Также соглашусь с Sanes.
    Ответ написан
    Комментировать
  • Как быстро заливать на сервер (Debian) большие объемы данных?

    gedev
    @gedev
    сисадмин-энтузиаст
    Я как-то для себя сохранял информацию по вопросу передачи файлов большого размера. На практике пока не приходилось заниматься, но возможно тебе, автор, эти обрывки текста помогут. Все под катом. Взято из комментариев к этому ролику. Идея сжимать файлы налету выглядит крайне хорошо.

    Паста
    Если объем данных огромен и содержит огромное количество файлов, а также нет места (времени) для создания архива, но передать нужно сейчас и очень быстро (чтобы получить более высокую скорость передачи данных), рекомендую использовать следующие команды.
    На стороне получателя данных переходим в каталог, в который необходимо разместить полученные данные, и выполняем такую команду:
    nc -l 12345 | tar xvf -
    На стороне источника данных так же переходим в каталог, в котором размещён передаваемый каталог, и выполняем такую команду:
    tar -cf - ./our_directory/ | nc target_host 12345
    вариант с выводом объема трафика
    tar -cf - ./our_directory/ | pv | nc target_host 12345
    Где:
    12345 - номер порта, по которому будет производиться обмен данными;
    target_host - ip-адрес или hostname компьютера, на который будут передаваться данные.

    ---

    ещё какие-то доки
    moo.nac.uci.edu/~hjm/HOWTO_move_data.html#tarnetcat

    ---

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

    Далее, хорошо сжимаемые данные (текстовики, образы виртуалок, дампы баз) принято гонять в сжатом виде. Жать можно на лету, либо встроенными в scp инструментами, либо жать сторонними утилитами вроде pigz и гонять данные через ssh и пайпы. Например так:
    dd bs=4M if=template.img | pv | pigz -9c | ssh user@host "unpigz -c > /vm/template.img"
    Подобным способом можно не только гонять файлы, но и переливать образ на удаленное устройство.
    sudo dd bs=4M if=/dev/ssd1/vm | pv | pigz -9c | ssh user@host "unpigz -c | sudo dd bs=4M of=/dev/ssd2/vm"

    ---

    https://www.stableit.ru/2012/03/gzip-vs-pigz.html
    Ответ написан
    Комментировать