Ответы пользователя по тегу 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 в разных "диспетчерских" (колл-центрах). Не было проблем с инодами.
    Ответ написан
    Комментировать
  • Как заставить винду 7 видеть ide винт с линухой?

    @AlexanderKomarchouk
    программист PHP, embedded atmega/stm32
    Еще с времен Windows 2000 что бы видеть подключенные диски систем Unix/Linux приходилось устанавливать драйвер.

    Вот например ссылка:

    Linux has been one of the most popular operating system that powers various NAS (Network Attached Storage), routers, gateways, IoT (Internet of Things), computers and etc. Some users may also dual-boot Windows and Linux. If a volume or partition of a storage media is formatted as a Linux filesystem, such as ext2 (second extended filesystem), ext3 (third extended filesystem) or ext4 (fourth extended filesystem), then you may have problem accessing and reading the Linux partitions in Windows system.

    Even though Linux has built-in support for Windows FAT32 and NTFS partitions, but Windows does not have built-in capability to access, read and/or write to Linux partitions without third-party software. Thus whenever you plug in or connect a disk drive formatted as Linux partition to Windows, it won’t recognize it, instead asking you to delete and recreate the volume or format the volume.

    In order to access and connect to Linux volumes in Windows operating system, try one of the following applications, which add support to Windows so that it can access, open, read, and possibly write to partitions configured with Linux filesystem.

    Ext2Fsd

    Ext2Fsd (short for Ext2 File System Driver) is a free open source file system driver for Windows that adds support for ext3, ext3 and ext4 file systems. With Ext2Fsd, users can have native read and write access to the ext2, ext3 and ext4 file systems through an automatically assigned drive letter that any program can access, just like any NTFS or FAT32 volumes. The advantage is that you can access the files and folders on the Linux volumes without having to copy them to Windows volume prior to accessing them.

    Ext2Fsd
    Features of Ext2Fsd:

    ext2/ext3 volume reading & writing
    ext3 journal replay when mounting
    various codepage: utf8, cp936, cp950…
    mountpoint automatic assignment
    large inode size: 128, 256…
    large file size bigger than 4G
    CIFS sharing over network
    htree directory indexing
    ext4 extent read-only, no size truncating and expanding support
    Fast fsck (uninit_bg) and group block checksum support
    64k block-size, support compatible to Linux ext4 and e2fsprogs
    auto start during Windows boot

    Ext2Fsd supports Windows 2000, Windows XP, Windows Vista, Windows Server 2003, Windows Server 2008, Windows 7, Windows 8, Windows 8.1, Windows 10, Windows Server 2012, Windows Server 2016 or later.

    Download Ext2Fsd from sourceforge.net.
    ...


    Возможно вам поможет вот эта ссылка "How to read ext4 partition in Windows 10/8/7?"

    Хотя обычно оба компьютера с Linux и Windows находятся в общей сети и на Linux достаточно установить Samba, и это избавляет от разных ненужных ухищрений.
    Ответ написан
    Комментировать
  • Нужно простое решение. Как мониторить почту, и в зависимости от сообщения, выполнять какие то действия?

    @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
    Ответ написан
    Комментировать