Network File System (NFS) — протокол сетевого доступа к файловым системам, первоначально разработан Sun Microsystems в 1984 году. За основу взят протокол вызова удалённых процедур. Позволяет подключать (монтировать) удалённые файловые системы через сеть.
NFS предоставляет клиентам прозрачный доступ к файлам и файловой системе сервера. В отличие от FTP, протокол NFS осуществляет доступ только к тем частям файла, к которым обратился процесс, и основное достоинство его в том, что он делает этот доступ прозрачным. Это означает, что любое приложение клиента, которое может работать с локальным файлом, с таким же успехом может работать и с NFS-файлом, без каких-либо модификаций самой программы.
Установка и настройка NFS-сервера
Устанавливаем утилиту (возможно по-умолчанию уже стоит)
$ sudo yum install nfs-utils
Добавляем правила в файерволл
$ sudo firewall-cmd —permanent —zone=public —add-service=nfs $ sudo firewall-cmd —permanent —zone=public —add-service=mountd $ sudo firewall-cmd —permanent —zone=public —add-service=rpc-bind $ sudo firewall-cmd —reload $ sudo firewall-cmd —list-all
Устанавливаем права на директорию, к которой будет доступ
$ sudo chown -R nfsnobody:nfsnobody /mnt/storage $ sudo chmod -R 777 /mnt/storage
Отредактируем файл с настройками доступа к NFS-серверу
$ sudo nano /etc/exports /mnt/storage 192.168.1.25(rw,sync,no_root_squash,no_subtree_check) 192.168.1.9(ro,sync,no_root_squash,no_subtree_check)
Пример настроек доступа к разным директориям
$ sudo nano /etc/exports /srv/nfs4 192.168.33.0/24(rw,sync,no_subtree_check,crossmnt,fsid=0) /srv/nfs4/backups 192.168.33.0/24(ro,sync,no_subtree_check) 192.168.33.3(rw,sync,no_subtree_check) /srv/nfs4/www 192.168.33.110(rw,sync,no_subtree_check) /data 192.168.1.100/24(rw,insecure,nohide,all_squash,anonuid=1000,anongid=1000,no_subtree_check)
- rw – разрешение на запись
- ro – только чтение
- sync – синхронный режим доступа. sync (async) – указывает, что сервер должен отвечать на запросы только после записи на диск изменений, выполненных этими запросами. Опция async указывает серверу не ждать записи информации на диск, что повышает производительность, но понижает надежность
- no_root_squash – по умолчанию пользователь root на клиентской машине не будет иметь доступа к разделяемой директории сервера. Этой опцией мы снимаем это ограничение.
- no_all_squash – включение пользовательской авторизации
- all_squash – все подключения будут выполнятся от анонимного пользователя
- subtree_check (no_subtree_check) – в некоторых случаях приходится экспортировать не весь раздел, а лишь его часть. При этом сервер NFS должен выполнять дополнительную проверку обращений клиентов, чтобы убедиться в том, что они предпринимают попытку доступа лишь к файлам, находящимся в соответствующих подкаталогах. Такой контроль поддерева (subtree checks) несколько замедляет взаимодействие с клиентами, но если отказаться от него, могут возникнуть проблемы с безопасностью системы. Отменить контроль поддерева можно с помощью опции no_subtree_check. Опция subtree_check, включающая такой контроль, предполагается по умолчанию. Контроль поддерева можно не выполнять в том случае, если экспортируемый каталог совпадает с разделом диска;
- anonuid=1000 – привязывает анонимного пользователя к «местному» пользователю;
- anongid=1000 – привязывает анонимного пользователя к группе «местного» пользователя.
Добавляем службы rpcbind и nfs в автозагрузку и запускаем их
Структура файлов и каталогов в Linux
Linux — худшая операционная система
$ sudo systemctl enable rpcbind nfs-server $ sudo systemctl start rpcbind nfs-server
Демон nfs-server автоматически перечитывает файл /etc/exports, но бывает, что надо вручную запустить перечитывание конфига
$ sudo exportfs -r
Команда exportfs показывает какие ресурс опубликованы
$ sudo exportfs /mnt/storage 192.168.1.25 /mnt/storage 192.168.1.9
Если при вводе появляется ошибка – Function not implemented, значит, не запущены службы rpcbind и nfs-server
Установка и настройка NFS-клиента
$ sudo yum install nfs-utils
Включаем и запускаем включаем службы rpcbind
$ sudo systemctl start rpcbind $ sudo systemctl enable rpcbind
Создаем каталог, в который будет смонтирована шара и монтируем ее
$ sudo mkdir /mnt/nfs-share $ sudo mount -t nfs 192.168.1.12:/mnt/storage /mnt/nfs-share
где 192.168.1.12 – ip-адрес NFS-сервера
Настраиваем автоматическое монтирование при перезагрузки сервера
$ sudo nano /etc/fstab . 192.168.1.12:/mnt/storage /mnt/nfs-share nfs defaults 0 0
Метки записи: # centos # nfs
Максим Макаров
У блога появился хостинг, его любезно предоставила компания Облакотека. Облакотека — облачные сервисы для создания и управления виртуальной ИТ-инфраструктурой.
Если вам понравился мой блог и вы хотели бы видеть на нем еще больше полезных статей, большая просьба поддержать этот ресурс. Если вы размещаете материалы этого сайта в своем блоге, соц. сетях, и т.д., убедительная просьба публиковать обратную ссылку на оригинал
Источник: itdraft.ru
CentOS

CentOS от англ. Community ENTerprise Operating System — дистрибутив Linux, основанный на коммерческом Red Hat Enterprise Linux компании Red Hat и совместимый с ним.
Согласно жизненному циклу Red Hat Enterprise Linux (RHEL) , CentOS 5, 6 и 7 будут поддерживаться «до 10 лет», поскольку они основаны на RHEL.
Ранее версия CentOS 4 поддерживалась семь лет.
Red Hat Enterprise Linux состоит из свободного ПО с открытым кодом, но доступен в виде дисков с бинарными пакетами только для платных подписчиков.
Как требуется в лицензии GPL и других, Red Hat предоставляет все исходные коды.
Разработчики CentOS используют данный исходный код для создания окончательного продукта, очень близкого к Red Hat Enterprise Linux и доступного для загрузки.
Установка программ
Для начала неплохо обновить пакетный менеджер. В CentOS он называется yum
Для тихой установки используйте флаг -y
yum install -y redhat-lsb-core net-tools epel-release kernel-headers kernel-devel
yum groupinstall -y «Development Tools»
Для установки графической оболочки используйте команду
yum groupinstall -y «X Window System» «MATE Desktop»
Добавить пользователя в группу sudo
У всех пользователей из группы wheel есть возможность выполнять команду sudo поэтому нужно стать root.
И из-под root добавить пользователя в группу wheel командой
usermod -aG wheel andrei
Снова стать пользователем можно выполнив
Установка Go
Скачать Golang можно с сайта golang.org
После скачивания проверьте, что контрольная сумма совпадает с записанной на сайте
Совпадает со значением на сайте — посмотрите на нижнюю строку

sudo tar -C /usr/local -xzf go1.15.5.linux-386.tar.gz
Добавьте путь до go в PATH
Создайте рабочую директорию
Проверьте установился ли Go
Если получили что-то подобное
go version go1.15.5 linux/386
Если получили ошибку
-bash: /usr/local/go/bin/go: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
Попробуйте установить glibc.i686
sudo yum install glibc.i686
Полезные команды
Перемещение между X и реальным терминалом (physical terminal) осуществляется нажатием правого CTRL + F2 — чтобы перейти в консоль
Правый CTRL + F1 — чтобы перейти в иксы
Чтобы узнать называние своей консоли выполните
Чтобы узнать кто подключён к системе выполните
andrei tty1 2020-11-19 11:03 (:0) andrei pts/0 2020-11-19 11:45 (:0) andrei tty2 2020-11-19 11:42 andrei pts/1 2020-11-19 11:48 (192.168.56.1)
tty1 и tty2 это реальные терминалы
touch files/file
ls -l files
-rw-rw-r—. 1 andrei andrei 0 Nov 19 13:46 file1 -rw-rw-r—. 1 andrei andrei 0 Nov 19 13:46 file2 -rw-rw-r—. 1 andrei andrei 0 Nov 19 13:46 file3 -rw-rw-r—. 1 andrei andrei 0 Nov 19 13:46 file4 -rw-rw-r—. 1 andrei andrei 0 Nov 19 13:46 file5
Чтобы скопировать директорию files в директорию sites со всем содержимым выполните
cp -R files sites
ls -l sites/files/
total 0 -rw-rw-r—. 1 andrei andrei 0 Nov 19 13:49 file1 -rw-rw-r—. 1 andrei andrei 0 Nov 19 13:49 file2 -rw-rw-r—. 1 andrei andrei 0 Nov 19 13:49 file3 -rw-rw-r—. 1 andrei andrei 0 Nov 19 13:49 file4 -rw-rw-r—. 1 andrei andrei 0 Nov 19 13:49 file5
Директория files была скопирована в директорию sites, то есть теперь у sites есть поддиректория files.
Если у вас установлен модуль tree вы можете наглядно изучить вложенность. Если нет — выполните сперва sudo yum install tree
sites └── files ├── file1 ├── file2 ├── file3 ├── file4 └── file5 1 directory, 5 files
Создать ссылку можно командой ln, символьную ссылку ln -s
Очистить терминал можно нажав CTRL + l
Изучить детали своего SSH подключения можно командой
192.168.56.1 52350 192.168.56.101 22
Сперва идут IP и порт клиента, затем IP и порт сервера
Чтобы изучить содержимое длинного тестового файла выполните
Для поиска вперёд нажмите / для поиска назад ?
Поиск
Найти и сразу скопировать в текущую директорию
Найти в текущей директории
Удалить из текущей директории
Найти все ссылки
find /etc -type l
Найти все ссылки только на верхнем уровне вложенности
find /etc -maxdepth 1 -type l
Filesystem Size Used Avail Use% Mounted on /dev/sda1 1014M 194M 821M 20% /boot
Найти обычные файлы определённого размера
find /boot -size +20000k -type f
find: ‘/boot/efi/EFI/centos’: Permission denied find: ‘/boot/grub2’: Permission denied /boot/initramfs-0-rescue-389ee10be1b38d4281b9720fabd80a37.img /boot/initramfs-3.10.0-1160.el7.x86_64.img /boot/initramfs-3.10.0-1160.2.2.el7.x86_64.img
find /boot -size +10000k -type f
find: ‘/boot/efi/EFI/centos’: Permission denied find: ‘/boot/grub2’: Permission denied /boot/initramfs-0-rescue-389ee10be1b38d4281b9720fabd80a37.img /boot/initramfs-3.10.0-1160.el7.x86_64.img /boot/initramfs-3.10.0-1160.el7.x86_64kdump.img /boot/initramfs-3.10.0-1160.2.2.el7.x86_64.img /boot/initramfs-3.10.0-1160.2.2.el7.x86_64kdump.img
То же самое плюс показать размер файлов
find /boot -size +10000k -type f -exec du -h <> ;
find: ‘/boot/efi/EFI/centos’: Permission denied find: ‘/boot/grub2’: Permission denied 60M /boot/initramfs-0-rescue-389ee10be1b38d4281b9720fabd80a37.img 21M /boot/initramfs-3.10.0-1160.el7.x86_64.img 13M /boot/initramfs-3.10.0-1160.el7.x86_64kdump.img 21M /boot/initramfs-3.10.0-1160.2.2.el7.x86_64.img 14M /boot/initramfs-3.10.0-1160.2.2.el7.x86_64kdump.img
Изменить пароль пользователя
Чтобы в CentOS изменить пароль пользователя выполните команду passwd
[sudo] password for andrei:
Changing password for user andrei.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
locale
Чтобы в CentOS узнать текущую locale
System Locale: LANG=en_US.UTF-8 VC Keymap: us X11 Layout: us
Список доступных локалей
Выбрать только английский
localectl list-locales | grep en_US
en_US en_US.iso88591 en_US.iso885915 en_US.utf8
Список системных переменных, связанных с локалью доступен по команде
LANG=en_US.UTF-8 LC_CTYPE=»en_US.UTF-8″ LC_NUMERIC=en_US.UTF-8 LC_TIME=en_US.UTF-8 LC_COLLATE=»en_US.UTF-8″ LC_MONETARY=en_US.UTF-8 LC_MESSAGES=»en_US.UTF-8″ LC_PAPER=en_US.UTF-8 LC_NAME=en_US.UTF-8 LC_ADDRESS=en_US.UTF-8 LC_TELEPHONE=en_US.UTF-8 LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=en_US.UTF-8 LC_ALL=
Подробная информация по каждой переменной может быть получена с помощью флагов -c -k
locale -c -k LC_TIME
LC_TIME abday=»Sun;Mon;Tue;Wed;Thu;Fri;Sat» day=»Sunday;Monday;Tuesday;Wednesday;Thursday;Friday;Saturday» abmon=»Jan;Feb;Mar;Apr;May;Jun;Jul;Aug;Sep;Oct;Nov;Dec» mon=»January;February;March;April;May;June;July;August;September;October;November;December» am_pm=»AM;PM» d_t_fmt=»%a %d %b %Y %r %Z» d_fmt=»%m/%d/%Y» t_fmt=»%r» t_fmt_ampm=»%I:%M:%S %p» era= era_year=»» era_d_fmt=»» alt_digits= era_d_t_fmt=»» era_t_fmt=»» time-era-num-entries=0 time-era-entries=»S» week-ndays=7 week-1stday=19971130 week-1stweek=7 first_weekday=1 first_workday=2 cal_direction=1 timezone=»» date_fmt=»%a %b %e %H:%M:%S %Z %Y» time-codeset=»UTF-8″
locale -c -k LC_CTYPE
LC_CTYPE ctype-class-names=»upper»;»lower»;»alpha»;»digit»;»xdigit»;»space»;»print»;»graph»;»blank»;»cntrl»;»punct»;»alnum»;»combining»;»combining_level3″ ctype-map-names=»toupper»;»tolower»;»totitle» ctype-width=16 ctype-mb-cur-max=6 charmap=»UTF-8″ ctype-class-offset=72 ctype-map-offset=86 ctype-indigits_mb-len=1 ctype-indigits0_mb=»0″ ctype-indigits1_mb=»1″ ctype-indigits2_mb=»2″ ctype-indigits3_mb=»3″ ctype-indigits4_mb=»4″ ctype-indigits5_mb=»5″ ctype-indigits6_mb=»6″ ctype-indigits7_mb=»7″ ctype-indigits8_mb=»8″ ctype-indigits9_mb=»9″ ctype-indigits_wc-len=1 ctype-outdigit0_mb=»0″ ctype-outdigit1_mb=»1″ ctype-outdigit2_mb=»2″ ctype-outdigit3_mb=»3″ ctype-outdigit4_mb=»4″ ctype-outdigit5_mb=»5″ ctype-outdigit6_mb=»6″ ctype-outdigit7_mb=»7″ ctype-outdigit8_mb=»8″ ctype-outdigit9_mb=»9″ ctype-outdigit0_wc=48 ctype-outdigit1_wc=49 ctype-outdigit2_wc=50 ctype-outdigit3_wc=51 ctype-outdigit4_wc=52 ctype-outdigit5_wc=53 ctype-outdigit6_wc=54 ctype-outdigit7_wc=55 ctype-outdigit8_wc=56 ctype-outdigit9_wc=57 ctype-translit-tab-size=4554 ctype-translit-default-missing-len=1 ctype-translit-ignore-len=0 ctype-translit-ignore=»» map-to-nonascii=0
Список доступных локалей
Изменить locale
Чтобы в CentOS изменить locale можно либо откредактирвоать файл locale.conf в /etc/ либо применить команду localect (начиная с CentOS 7)
Предположим, что нужно поменять локаль на en_us.iso88591
Откройте locale.conf и найдите строку LANG
sudo vi /etc/locale.conf
Замените UTF-8 на iso88591
Альтернативный способ с использованием sed — выполните команду
sudo sed -i s/LANG=»en_US.UTF-8″/LANG=»en_US.iso88591″/ /etc/locale.conf
Чтобы проверить изменения выполните
System Locale: LANG=en_US.iso88591 VC Keymap: us X11 Layout: us
Чтобы изменить системную переменную, например, LC_CTYPE выполните
И внесите в конец файла следующий код
LC_CTYPE=»en_US.iso88591″ export LC_CTYPE
locale -c -k LC_CTYPE
LC_CTYPE ctype-class-names=»upper»;»lower»;»alpha»;»digit»;»xdigit»;»space»;»print»;»graph»;»blank»;»cntrl»;»punct»;»alnum»;»combining»;»combining_level3″ ctype-map-names=»toupper»;»tolower»;»totitle» ctype-width=16 ctype-mb-cur-max=1 charmap=»ISO-8859-1″
GNUmakefile
Пример скачивания README.txt файла из репозитория CentOS с помощью make
Источник: www.andreyolegovich.ru
Как установить RPM на CentOS

Обычно пользователь устанавливает пакеты, используя утилиту командной строки yum.
Официальные репозитории CentOS содержат тысячи пакетов RPM, но в некоторых случаях вы можете встретить файл RPM, которого нет ни в одном репозитории.
Некоторые авторы программного обеспечения предоставляют для загрузки только RPM-файлы, поэтому RPM-файлы предназначены для загрузки и установки независимо от репозитори я программного обеспечения.
В этом руководстве мы узнаем, как установить файл .rpm в дистрибутивах Linux CentOS.
Что такое менеджер пакетов RPM
Red Hat Package Manager – это бесплатная система управления пакетами с открытым исходным кодом для установки, удаления и управления пакетами программного обеспечения в Red Hat и ее производных, таких как CentOS и Fedora.
Предпосылки
Прежде чем мы начнем, вам необходимо убедиться, что у вас есть права sudo и что вы установили в свою систему некоторые из RPM, DNF и YUM Package Manager (все они включены по умолчанию).
Также убедитесь, что пакет RPM, который вы хотите установить, создан для вашей системной архитектуры и вашей версии CentOS.
В этом руководстве мы будем загружать и устанавливать пакет Slack RPM в CentOS 8.
Как скачать установочный пакет RPM
Как правило, обычно веб-браузер используется для поиска и загрузки файла .rpm, но вы также можете использовать инструменты командной строки, такие как wget или curl.
Например, мы будем использовать команду wget для загрузки пакета slack (rpm) в текущий каталог (я загружаю в /tmp) следующим образом:
$ wget https://downloads.slack-edge.com/linux_releases/slack-4.3.2-0.1.fc21.x86_64.rpm —2020-02-15 23:11:20— https://downloads.slack-edge.com/linux_releases/slack-4.3.2-0.1.fc21.x86_64.rpm Resolving downloads.slack-edge.com (downloads.slack-edge.com). 99.86.243.67, 99.86.243.88, 99.86.243.60, . Connecting to downloads.slack-edge.com (downloads.slack-edge.com)|99.86.243.67|:443. connected. HTTP request sent, awaiting response.
200 OK Length: 60768380 (58M) [application/octet-stream] Saving to: ‘slack-4.3.2-0.1.fc21.x86_64.rpm’ slack-4.3.2-0.1.fc21.x86_6 100%[========================================>] 57.95M 584KB/s in 2m 19s 2020-02-15 23:13:40 (427 KB/s) — ‘slack-4.3.2-0.1.fc21.x86_64.rpm’ saved [60768380/60768380]
Для проверки вы можете использовать команду ls для вывода файла rpm в каталоге /tmp:
$ ls /tmp/ slack-4.3.2-0.1.fc21.x86_64.rpm
Установка файла RPM с помощью команды RPM
Вы можете установить RPM-пакет двумя способами.
Первый использует команду RPM, другой использует менеджер пакетов yum.
В следующей команде мы используем опцию -i для установки скачанного пакета rpm:
$ sudo rpm -i /tmp/slack-4.3.2-0.1.fc21.x86_64.rpm warning: ./slack-4.3.2-0.1.fc21.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 8e6c9578: NOKEY error: Failed dependencies: libXScrnSaver is needed by slack-4.3.2-0.1.fc21.x86_64 libappindicator-gtk3 is needed by slack-4.3.2-0.1.fc21.x86_64
Из приведенного выше вывода видно, что установка не удалась из-за отсутствия пакетов зависимостей.
Поэтому мы должны проверить наличие пакетов зависимостей rpm и установить их вручную.
Проверьте RPM-зависимости
Чтобы проверить зависимости пакетов, у нас есть две опции rpm. Вы можете использовать -qpR для запроса файла rpm и -qR для запроса по имени пакета.
rpm -qpR .rpm-file
rpm -qR package-name
Например, давайте запросим файл .rpm (мы используем slack rpm, который мы уже загружали ранее), чтобы найти все необходимые пакеты зависимостей:
$ sudo rpm -qpR /tmp/slack-4.3.2-0.1.fc21.x86_64.rpm warning: slack-4.3.2-0.1.fc21.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 8e6c9578: NOKEY libXScrnSaver libappindicator-gtk3 libsecret-1.so.0()(64bit) rpmlib(CompressedFileNames)
Установка RPM-пакетов с помощью yum
Тут вступает в игру удобный инструмент под названием yum, где нам не нужно беспокоиться о зависимостях.
Этот менеджер пакетов yum может получить все необходимые зависимости и настроить их для нас.
Теперь мы будем использовать менеджер пакетов yum для установки нашего загруженного пакета с помощью следующей команды:
После ввода y система установит все зависимости и наш пакет:
Downloading Packages: Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : slack-4.3.2-0.1.fc21.x86_64 1/1 Running scriptlet: slack-4.3.2-0.1.fc21.x86_64 1/1 Verifying : slack-4.3.2-0.1.fc21.x86_64 1/1 Installed: slack-4.3.2-0.1.fc21.x86_64 Complete!
Удаление пакета RPM
Чтобы удалить пакет RPM, мы даем команду RPM на удаление программного обеспечения с параметром -e.
В следующем примере мы удалим (удалим) пакет slack:
$ sudo rpm -e slack-4.3.2-0.1.fc21.x86_64
В этом руководстве мы показали, как устанавливать и удалять RPM-пакеты в CentOS.
Вы должны предпочесть использовать yum вместо rpm, поскольку он автоматически разрешает все зависимости.
Источник: itisgood.ru