Задать вопрос
Ответы пользователя по тегу Linux
  • Как зайти под root в Alt Linux?

    @AlexanderKomarchouk
    программист PHP, embedded atmega/stm32
    На самом деле, первое что нужно было сделать - задать нормальный пароль для root при установке системы ALT Linux.
    Далее почитать ссылки в ALT Linux Wiki.
    1) Получение прав root: https://www.altlinux.org/Получение_прав_root
    2) команда su: https://www.altlinux.org/Su
    3) команда sudo: https://www.altlinux.org/Sudo

    Пробуйте, и у вас всё получится.
    P.S. для изменения вашей текущей ситуации, попытайтесь прочитать вот эту статью:
    https://wiki.dieg.info/vosstanovlenie_parolja_root
    Ответ написан
    Комментировать
  • Закончились inodes как решить проблему?

    @AlexanderKomarchouk
    программист PHP, embedded atmega/stm32
    Прежде чем что то делать, нужно убедиться что проблема с inodes.
    Воспользуйтесь командой:
    [alexsystem ~]# df -i
    Filesystem            Inodes   IUsed   IFree IUse% Mounted on
    /dev/hda2            121896960  227651 121669309    1% /
    /dev/hda1              26104      44   26060    1% /boot
    tmpfs                  64417       1   64416    1% /dev/shm

    Значения IUsed, IFree, IUse% дадут вам понимание, в какой файловой системе (разделе) у вас проблема.

    Потом нужно посмотреть, в какой папке больше всего вложенных элементов (файлов и папок), а потом вывести их списком, список отсортировать в возрастающем порядке, используйте вот такой конвейер:
    find . -mindepth 2 | awk -F/ '{ print $2"/" }' | sort | uniq -c | sort -n | tail -10


    mindepth 2 или 3 потому, что достаточно просмотреть/посчитать файлы в папках 2/3 уровней вложенности. tail -10 это значит будет показан топ 10 папок с наибольшим количеством элементов.

    На самом деле, когда в системе все сделано правильно, то такой проблемы как недостаток inodes не возникает.
    Как минимум это подтверждает мой опыт использования SCO UNIX 3.2v4.2 на промышленном предприятии, SCO Open Desktop 3, OpenServer 5 в банке для работы банковской системы, RedHat Linux, CentOS в разных "диспетчерских" (колл-центрах). Не было проблем с инодами.
    Ответ написан
    Комментировать
  • Нужно простое решение. Как мониторить почту, и в зависимости от сообщения, выполнять какие то действия?

    @AlexanderKomarchouk
    программист PHP, embedded atmega/stm32
    В наше время, когда каналы интернета были не такими широкими, мы иногда использовали сервисы типа FTPmail и ряд других, где можно было команды/запросы подавать по email.
    Обратите внимание на ftpmail скрипт:

    https://linux.die.net/man/1/ftpmail
    ftpmail(1) - Linux man page
    Name
    
    ftpmail - FIFO-based Perl script for sending email based on proftpd TransferLog
    Synopsis
    
    ftpmail [ --help ] [ --fifo fifo-path ] [ --from email-address ] [ --log xferlog-file ] [ --recipient email-address ] [ --subject email-subject ] [ --smtp-server server-address ] [ --attach-file ] [ --auth smtp-auth-info-file ] [ --ignore-users regex-pattern ] [ --watch-users regex-pattern ]
    Description
    
    ftpmail is a Perl script designed to read ProFTPD's TransferLog log entries, watching for uploads, and to send an automatic email notification when uploads occur. To use ftpmail , you configure your proftpd daemon to write its TransferLog to a FIFO; the ftpmail program is a FIFO reading program which then processes those log messages.

    Скачать на github
    https://github.com/proftpd/proftpd/blob/master/contrib/ftpmail
    #!/usr/bin/env perl
    # ---------------------------------------------------------------------------
    # Copyright (C) 2008-2017 TJ Saunders <tj@castaglia.org>
    #
    # This program is free software; you can redistribute it and/or modify
    # it under the terms of the GNU General Public License as published by
    # the Free Software Foundation; either version 2 of the License, or
    # (at your option) any later version.
    #
    # This program is distributed in the hope that it will be useful,
    # but WITHOUT ANY WARRANTY; without even the implied warranty of
    # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    # GNU General Public License for more details.
    #
    # You should have received a copy of the GNU General Public License
    # along with this program; if not, write to the Free Software
    # Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA.
    # ---------------------------------------------------------------------------
    
    use strict;
    
    use File::Basename qw(basename);
    use Getopt::Long;
    use Mail::Sendmail;
    use MIME::Base64 qw(encode_base64);
    use Time::HiRes qw(usleep);
    
    my $program = basename($0);
    
    my $opts = {};
    GetOptions($opts, 'attach-file', 'fifo=s', 'from=s', 'help', 'ignore-users=s',
      'log=s', 'recipient=s@', 'upload-recipient=s@', 'download-recipient=s@',
      'sleep=s', 'smtp-server=s', 'subject=s', 'watch-users=s', 'auth=s');
    ...

    Думаю вы сами скачаете скрипт, разберетесь, перепишете, и будете не общаться с FTP сервером посредством email, а делать то что нужно по условию вашей задачи.
    Еще ссылочку ftpmail: Automated Email Notifications of Uploads
    Ответ написан
    Комментировать
  • Какую версию linux, выбрать для обучения?

    @AlexanderKomarchouk
    программист PHP, embedded atmega/stm32
    Используйте CentOS, ибо в промышленном (VoIP и многое другое) применении используется именно она.
    Ниже пишут варианты для десктопа, предлагают Linux Mint, потому что желательно все время работать с Linux.
    Можно было бы согласиться, но какой смысл использовать для enterprise решений CentOS, а для себя что то другое? Нет никакого смысла, CentOS прекрасно подходит и для десктопа, и для промышленной эксплуатации.
    Ответ написан
    Комментировать
  • Как получить доступ к файлу в пользовательской папке внутри рутовой в Ubuntu?

    @AlexanderKomarchouk
    программист PHP, embedded atmega/stm32
    Здравствуйте.
    Вам коллеги уже сказали, что не нужно ничего такого делать, потому что нарушается безопасность. Но если очень нужно, подумав десять раз, то можно сделать то что вы хотите.

    В 199затертом году тоже возникала похожая задача. Нужно было "что то" делать, но обычные пользователи не должны были знать некоторую информацию, доступную только для root.
    Вы можете использовать возможности операционной системы Unix/Linux, setuid - "установка ID пользователя во время выполнения".
    Создайте тестовую программу, назовем её startuid.c:
    // startuid.c
    #include <stdio.h>
    #include <stdlib.h>
    #include <sys/types.h>
    #include <unistd.h>
    #include <sys/wait.h>
    
    int main(void)
    {
       pid_t child_pid;
    
        printf("Real UID\t= %d\n", getuid());
        printf("Effective UID\t= %d\n", geteuid());
        printf("Real GID\t= %d\n", getgid());
        printf("Effective GID\t= %d\n", getegid());
       
       if((child_pid = fork()) < 0 )
       {
          perror("fork failure");
          exit(1);
       }
    
       if(child_pid == 0)
       {
          execl("/bin/ls", "ls", "-l", "/root", (char*)0);
          perror("execl() failure!\n\n");
          _exit(1);
       }
        return EXIT_SUCCESS;
    }

    Скомпилируйте startuid.c, и скопируйте результат в домашнюю директорию обычного пользователя, например alex, который должен будет выполнить нужную вам команду с идентификатором uid=0(root).
    [Unix]# ls -l
    -rwxr-xr-x 1 root root 7348 Jul  2 18:19 startuid

    используйте chmod для установки атрибута setuid
    [Unix]# chmod u+s startuid
    [Unix]# ls -l
    -rwsr-xr-x 1 root root 7348 Jul  2 18:19 startuid

    До установки атрибута setuid, и запуска startuid от пользователя alex, выполняющий "ls -l /root" (листинг домашнего каталога пользователя root ) выдавал ошибку "Permission denied". После установки атрибута setuid, и запуска startuid вы получали список файлов в каталоге пользователя root.
    Само собой запуск "ls -l /root" это просто пример, вместо этого вы можете написать ту команду, которую вам надо выполнить обычным пользователем от рута.
    Кроме того, возможно вам пригодится почитать про Sticky bit
    Удачи, и будьте осторожны.
    Ответ написан
    Комментировать
  • Нужна помощь с перенаправлением в bash. Куда копать?

    @AlexanderKomarchouk
    программист PHP, embedded atmega/stm32
    Ярослав, когда вы выполняете команду
    wget -qO- http://192.168.240.47/ussdkstregexp.txt
    то программа wget (GNU Wget is a free utility for non-interactive download of files from the Web) загружает указанный файл с веб сервера, и с учетом ключа -O- выводит его содержимое на стандартный вывод (stdout).
    Поэтому, если вы хотите полученные данные, загруженные из файла на веб сервере, и выведенные на stdout, использовать далее, то просто через конвейер передайте вывод wget на следующую команду:
    wget -qO- http://192.168.240.47/ussdkstregexp.txt | next_command
    Ответ написан
    Комментировать