Архив рубрики: Публикации

Резервное копирование в Linux – команда tar



























Rate this post

Аббревиатура tar предназначена для иллюстрации того, что отдельные файлы GZIP были сжаты настолько широко и максимально плотно, насколько это возможно. Упакованный файл может заканчиваться на .tar.gz и .tar.bz2. Иногда используется двойное окончание – .tar.gz. ZIP, который был разработан для слияния и сжатия, но оказался более мощным и поэтому в значительной степени подавляет файл .tar.

Как можно догадаться по двойному расширению формата, состоящему из двух файлов, это фактически два в одном. TAR объединяет несколько объектов данных в один пакет под систему Windows. Это полезно, если, например, необходимо отправить несколько документов, изображений или предложить их для загрузки.

Расширения в формате .tar в основном предназначены для операционной системы Linux. В мире Windows они довольно необычны и редко встречаются. По этой причине система не может открыть эти файлы без дополнительного программного обеспечения.

Синтаксис командной строки

Прежде чем перейти к использованию команды tar, давайте начнем с рассмотрения базового синтаксиса.

tar [OPERATION_AND_OPTIONS] [ARCHIVE_NAME] [FILE_NAME(s)]

  • OPERATION– Разрешается и требуется только один аргумент. Наиболее часто используемые операции:

    • –create( -c) – Создание нового tar-архива.
    • –extract( -x) – Извлечь весь архив или один или несколько файлов из архива.
    • –list( -t) – отобразить список файлов, включенных в архив

  • OPTIONS – Наиболее часто используемые операции:

    • –verbose( -v) – Показать файлы, обрабатываемые командой tar.
    • –file=archive=name( -f archive-name) – Указывает имя файла архива.

  • ARCHIVE_NAME – Название архива.
  • FILE_NAME(s)– список имен файлов, разделенных пробелами, которые нужно извлечь. Если не предусмотрено, весь архив будет извлечен.

При выполнении команды tar вы можете использовать длинную или краткую форму операций и параметров tar. Длинные формы более читабельны, а короткие формы – быстрее. Опции длинной формы имеют префикс двойной тире ( –). Параметры короткой формы имеют префикс с одним тире ( -), который можно опустить.

1. Создание архива tar

С помощью следующей команды создается архив archive.tar с подробным выводом информации, включающий файлы file1, file2 и file3:

tar –totals –create –verbose –file archive.tar file1 file2 file3

Но длинные опции и параметры можно заменить (при возможности) однобуквенными значениями:

tar –totals -cvf archive.tar file1 file2 file3

Создание архива tar

Создание архива Tar Gz

Gzip – самый популярный алгоритм сжатия tar-файлов. При сжатии архивов tar с gzip имя архива должно заканчиваться либо tar.gzили tgz.

Чтобы создать архив tar.gz из заданных файлов, вы можете использовать следующую команду:

tar -czf archive.tar.gz file1 file2

Опция  -zсообщает tar сжать архив, используя алгоритм  gzip.

Создание архива Tar Bz2

Другим популярным алгоритмом сжатия tar-файлов является bzip2. При сжатии архивов tar с bzip2 имя архива должно заканчиваться либо tar.bz2 либо tbz.

Когда указана опция  -j , tar будет использовать алгоритм bzip2 сжатия архива.

Следующая команда создаст архив tar.bz2 из заданных файлов:

tar -cjf archive.tar.bz2 file1 file2

2. Просмотр содержимого архива

Следующая команда выводит содержимое архива, не распаковывая его:

tar -tf archive.tar

Отображение архива

Листинг архива Tar

Чтобы перечислить содержимое tar-архива, используйте операцию –list( -t).

tar -tf archive.tarfile1 file2 file3

Если вы укажете содержимое архива с помощью параметра –verbose( -v), tar будет печатать больше информации, например, владельца, размера файла, метки времени и т.д.:

tar -tvf archive.tar-rw-r–r– linuxize/users 0 2018-09-08 20:15 file1 -rw-r–r– linuxize/users 0 2018-09-08 20:15 file2 -rw-r–r– linuxize/users 0 2018-09-08 20:15 file3

Извлечение архивов Tar Gz и Tar Bz2

При извлечении сжатых архивов, например, tar.gzили tar.bz2 вам не нужно указывать параметр декомпрессии. Команда такая же, как при извлечении архива tar:

tar -xf archive.tar.gztar -xf archive.tar.bz2

Извлечение определенных файлов из tar-архива

Чтобы извлечь определенные файлы из архива tar, добавьте список имен файлов, разделенных пробелами, которые будут извлечены после имени архива:

tar -xf archive.tar file1 file2

При извлечении файлов вы должны указать свои точные имена, включая путь, как напечатано –list( -t).

Извлечение одной или нескольких каталогов из архива аналогично извлечению файлов:

tar -xf archive.tar dir1 dir2

Если вы попытаетесь извлечь файл, который не существует, появится сообщение об ошибке, подобное приведенному ниже:

tar -xf archive.tar READMEtar: README: Not found in archive tar: Exiting with failure status due to previous errors

Извлечение файлов из архива Tar с помощью подстановочного знака

Чтобы извлечь файлы из архива на основе шаблона подстановочных знаков, используйте переключатель –wildcards и укажите шаблон, чтобы предотвратить интерпретацию оболочки.

Например, чтобы извлечь файлы, имена которых заканчиваются на .js(файлы Javascript), вы можете использовать:

tar -xf archive.tar –wildcards ‘*.js’

Добавление файлов в существующий архив

Чтобы добавить файлы или каталоги в существующий архив tar, используйте операцию –append( -r).

Например, чтобы добавить файл с именем newfile в archive.tar, вы можете использовать:

tar -rvf archive.tar newfile

Удаление файлов из tar-архива

Используйте операцию –delete для удаления файлов из архива.

Например, чтобы удалить файл с именем file1 из archive.tar, вы можете использовать:

tar –delete -f archive.tar file1

Общая информация по работе с Tar

  1. tar —help — вызов справки по командам и параметрам
  2. man tar  — вызов расширенной документации
  3. официальная документация по команде tar — ссылка

Архивация Zip в Linux

Архиватор zip — это звезда в мире ПО (ну не считая rar) этот формат очень популярен для windows систем и он по умолчанию уже встроен в чистую сборку операционной системы, поэтому только установив виндовус вы уже можете разархивировать файлы в формате zip

но давайте перейдем к делу, в Linux и Unix системах дела обстоят по другому, это формат Tar идет по умолчанию, а вот для zip надо  поставить пакет unzip

Установка:

  1. sudo apt-get update && apt-get upgrade
  2. sudo apt-get install unzip

Создание ZIP архива

Для начала запомним шаблон или синтаксис команды для создания архива zip в linux:

zip [опции] <имя файла.zip=””> [файлы или папки которые будем упаковывать]

Опции для создания архива tar:

  • r (recurse) — рекурсивное создание архива
  • s (size) — разбивка архива на определенный размер k (kB), m (MB), g (GB) или t (TB)
    пример: zip -s 300m <файл 1=”” гб=””>
    на выходе получим:
    file.zip (300 mb, master file)
    file.001.zip (300 mb)
    file.002.zip (300 mb)
    file.003.zip (100 mb)
  • P (password) — запаролировать архив  (можно использовать ключ e тогда пароль будете вводить в отдельной строке со звездочками )
    пример: zip -P мойпароль -r file.zip ./home/nibbl/foto
    пример2: zip -er file.zip ./home/nibbl/foto
  • x — исключаем файлы или каталоги из архива
  • 1-9 — степень сжатия (где 1 без сжатия, а 9 лучшее сжатие)

zip –r  -9 -P 123 — archive.zip /home/nibbl/desktop/myfile 

— данной командой мы заархивировали с сжатием папку myfile создали архив с именем archive.zip и установили пароль на архив 123

Творение tar-архива без сжатия в Linux

Для создания такого архива используется команда:

tar -cf filename.tar file1 file2 fileN

Метеопараметр —cf отвечает за создание архива filename.tar, в который войдут указанные файлы. Вместо файлов смогут быть указаны и директории.

Создание архива с использованием сжатия в Linux

Поскольку для стягивания доступны как минимум два метода, для использования каждого из них используется отдельный набор параметров.

Образчик сжатия Gzip:

tar -cvzf filename.tar.gz dir_name

В данном случае мы попытались запаковать папку dir_name в картотека filename.tar.gz. Из указанных параметров -z указывает на использование метода Gzip, а -v выводит результаты процесса творения архива с указанием упакованных файлов или папок.

Читайте также:  Настройка Iptables (примеры) Часть 2

Распаковать zip архив

рассмотрим синтаксис команды что бы распаковать или разархивировать tar архив :

unzip <имя файла.zip=””>

Опции для создания архива tar:

  • d (directory) — указать директорию для разархивации
  • l — вывести список файлов в архиве
  • d — удалить определенный файл или каталог из уже сделанного архива
  • v — показывает детальную информацию по файлам в архиве  ()

unzip <имя файла.zip=””> —  распаковываем архив в категорию в которой находимся
unzip <имя файла.zip=””> -d /home/nibbl/desktop — распаковываем архив на рабочий стол

Общая информация по работе с Zip

  1. zip —help или unzip —help   —  вызов справки по командам и параметрам
  2. man zip или man unzip  — вызов расширенной документации
  3. официальная документация по команде zip — ссылка

 

Прочие возможности tar в Linux

tar предоставляет множество полезных возможностей. Например, возможно указать файлы и каталоги, которые не будут включены в архив, добавить файлы (именованная область данных на носителе информации) в имеющийся архив (1) учреждение или структурное подразделение организации, осуществляющее хранение, комплектование, учёт и использование архивных документов; 2) собрание письменных памятников (рукописей, писем и т), взять список объектов для запаковки из текстового файла и много что ещё. Во всем обилии опций как всегда поможет разобраться

man tar

или же

tar –help

Утилита командной строки tar используется для службы с архивами в операционных системах на базе UNIX. С ее помощью можно архивировать данные и улучшить использование дискового пространства.

Программа для открытия файлов TAR в системе Windows

Особенно популярным и удобным программным обеспечением для распаковки и открытия файлов .tar.gz и .tar.bz2 в Windows является WinRAR.

Winrar признана классикой среди упаковочного ПО и может быть загружена в тестовой версии с сайта производителя WindowsRAR.ru. С ней файлы в системах Windows могут сжиматься намного эффективнее, чем с форматами ZIP. Лучшая и самая важная функция WinRAR понятна и отлично выполняется упаковщиком: экономит место на диске, время передачи. В дополнение к основной задаче, программное обеспечение предлагает множество других инструментов при архивировании файлов.

Главное преимущество WinRaR заключается в том, что она распознает двойные файлы и распаковывает их непосредственно за один шаг. Даже если вы дважды откроете .tar.gz и .tar.bz2, вы сможете напрямую просмотреть отдельные папки, упакованные в него с помощью архиватора. Это особенно удобно и стоит запомнить, поскольку на самом деле в формате .bz есть только один файл .TAR. Только в нем находятся отдельные оригинальные файлы.

Программа для открытия TAR файлов используется в пробной версии бесплатно в течение 40 дней. Далее производитель предложит вам купить лицензию.

Как распаковать TAR файл?

Уже во время установки ПО можно задать параметры, чтобы файлы .tar распаковывались с помощью WinRAR.

Если на жестком диске есть папка в формате .tar.gz, вы можете просто распаковать ее, дважды щелкнув, как и любой другой архив, поддерживаемый WinRAR.

Если вы не отметили TAR во время установки, файлы этого формата все еще можно извлечь, используя WinRAR.

Если архиватор уже открыт, перейдите в «Файл», чтобы найти путь, по которому находится папка .tar, и два раза кликните по маркеру.

Теперь содержимое архива должно отображаться в программе для открытия TAR файлов.

Как открыть и разархивировать файл TAR?

Если вы часто работаете с архивами .TAR, WindowsRAR следует установить в качестве стандартной для распаковки форматов .tar.gz и .tar.bz2. Если формат папки еще не связан с другим ПО сжатия, два раза нажмите папку TAR. Во втором случае кликните правой клавишей по маркеру упакованного файла TAR, выберите параметр “Открыть с помощью”. В новом окне теперь представлены программы, открывающие файлы в формате TAR.

Если WinRAR отсутствует в списке, выберите «Поиск» в нижней области. Теперь проследите путь, по которому расположен архиватор, и установите его как стандартную программу для открытия расширения TAR. Прежде чем подтвердить настройку нажатием «ОК», убедитесь, что в левой части флажок “Всегда открывать тип файла с выбранной программой”.

Примеры

gz

Распаковка .gz файла:

tar -xvf archive.tar.gz 

* при возникновении ошибки This does not look like a tar archive, можно воспользоваться командой gzip -d archive.tar.gz.

bz2

tar -xvjf archive.tar.bz2

* ключ j отвечает за работу с bz2.

Если система ругается на bzip2, значит нужно его установить:

yum install bzip2

apt-get install bzip2

pkg install bzip2

* соответственно, для CentOS (RPM based), Ubuntu (deb based), FreeBSD (BSD based).

Если видим ошибку tar: Unrecognized archive format, воспользуемся следующей командой:

bzip2 -d archive.tar.bz2

gzip

tar -xvzf archive.tar.gzip

* ключ z отвечает за работу с gzip.

tgz

Распаковывается, как gzip:

tar -xvzf archive.tgz

Распаковать в определенную папку

tar -C /home/user -xvf archive.tar.gz

* ключ -C используется для указания папки, куда необходимо распаковать файлы из архива.

Распаковка без вложенной папки

Такой способ можно использовать для распаковки в заранее подготовленный каталог. Будет некий эффект переименовывания каталога или аналог «Распаковать здесь»:

tar -C /home/admin/mytar -xvf admin.tar.gz –strip-components 1

* каталог /home/admin/mytar заранее должен быть создан; –strip-components 1 пропустит одну вложенную папку внутри архива.

Исключение файлов по маске

Если необходимо пропустить некоторые файлы, вводим команду с ключом –exclude:

tar -czvf archive.tar.gz /wwwsite –exclude=’sess_*’

* в данном примере мы создадим архив archive.tar.gz, в котором не будет файлов, начинающихся на sess_.


[spoiler title=”Источники”]

  • https://windowsrar.ru/tar
  • https://andreyex.ru/operacionnaya-sistema-linux/sozdanie-i-izvlechenie-arhivov-s-pomoshhyu-komandy-tar-v-linux/
  • https://losst.ru/komanda-tar-v-linux
  • https://www.nibbl.ru/ubuntu/komanda-tar-i-zip-v-linux.html
  • https://www.linux16.ru/articles/kak-v-linux-raspakovat-tar-gz.html
  • https://www.dmosk.ru/miniinstruktions.php?mini=tar-unix


[/spoiler]


2020-07-27T15:39:49
Linux

Руководство по использованию команды “useradd” в Linux



























Rate this post

 

В этом руководстве показано, как создавать пользователей в Linux с помощью командной строки.

Хотя многие настольные Linux-дистрибутивы представляют собой графический инструмент для создания пользователей, у вас есть хорошая возможность, чтобы узнать, как это сделать из командной строки, чтобы вы могли передавать свои навыки из одного дистрибутива другому без изучения новых пользовательских интерфейсов.

Создание

Синтаксис:

useradd <имя пользователя=””> [опции]

* опции не являются обязательными при создании пользователя.

Пример:

useradd dmosk

* в данном примере создается учетная запись dmosk.

Для учетной записи стоит сразу создать пароль:

passwd dmosk

* после ввода, система попросит ввести пароль дважды.

1. Как добавить нового пользователя в Linux

Для создания/добавления нового пользователя используется команда “useradd” с аргументом “username”, где username – это имя нового пользователя, которое будет использоваться для входа в систему.
За один раз можно добавить только одного пользователя, и его имя должно быть уникальным (то есть отличаться от имен других пользователей, уже существующих в системе).

Например, добавляем пользователя “techmint”:


[root@tecmint ~]# useradd tecmint

После выполнения данной команды, новый пользователь будет создан в заблокированном состоянии. Чтобы разблокировать пользовательский аккаунт, необходимо задать его пароль с помощью команды “passwd”.


[root@tecmint ~]# passwd tecmint Changing password for user tecmint. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully.

После создания нового пользователя его запись автоматически добавляется в пароль “/etc/passwd” и имеет следующий вид:

tecmint:x:504:504:tecmint:/home/tecmint:/bin/bash

Она состоит из семи разделенных двоеточием полей, каждое из которых имеет свое назначение:

Username: имя пользователя, используемое для входа в систему. Может иметь длинц от 1 до 32 символов.
Password: пользовательский пароль (или символ x), который хранится в зашифрованном виде в файле /etc/shadow.
User ID (UID): каждый пользователь должен иметь User ID (UID) – идентификатор пользователя. По умолчанию UID 0 зарезервирован для root, а UID в диапазоне 1-99 для других предопределенных аккаунтов. UID в диапазоне 100-999 предназначены для пользовательских аккаунтов и групп.
Group ID (GID): идентификатор группы – Group ID (GID), хранится в файле /etc/group file.
User Info: это опциональное поле и оно позволяет вам задать дополнительную информацию о пользователе, например полное имя. Это поле заполняется с помощью команды “finger”.
Home Directory: абсолютный путь к домашней директории пользователя.
Shell: абсолютный путь к командной оболочке пользователя, например /bin/bash.

2. Создание пользователя с нестандартным размещением домашней директории

По умолчанию команда “useradd” создает домашнюю директорию пользователя в /home и называет ее именем пользователя. Поэтому, например, для приведенного выше примера, мы увидим домашнюю директорию созданного нами пользователя “tecmint” в “/home/tecmint”.
Однако это действие можно изменить с помощью опции “-d”, указав после нее расположение новой домашней директории. Например, приведенная ниже команда создаст пользователя “anusha” с домашней директорией “/data/projects”.


[root@tecmint ~]# useradd -d /data/projects anusha

Вы можете просмотреть расположение домашней директории пользователя, а также другую информацию о нем:


[root@tecmint ~]# cat /etc/passwd | grep anusha anusha:x:505:505::/data/projects:/bin/bash

3. Создание пользователя с заданным User ID

В Linux каждый пользователь имеет свой собственный UID (Unique Identification Number). По умолчанию при создании нового пользователя ему присваивается userid 500, 501, 502 и т.д.
Но мы можем создать пользователя с заданным userid с помощью опции “-u”. Например, приведенная ниже команда создает пользователя “navin” с userid “999”.


[root@tecmint ~]# useradd -u 999 navin

Теперь мы можем проверить, что пользователь создан действительно с этим идентификатором.


[root@tecmint ~]# cat /etc/passwd | grep tecmint navin:x:999:999::/home/navin:/bin/bash

Замечание: Обратите внимание, что user ID должен отличаться от user ID пользователей, уже существующих в системе.

4. Создание пользователя с заданным Group ID

Аналогично, каждый пользователь имеет свой GID (Group Identification Number). Мы можем создавать пользователей с заданным group ID с помощью опции -g.

В этом примере мы добавим пользователя “tarunika” с заданными UID и GID:


[root@tecmint ~]# useradd -u 1000 -g 500 tarunika

Проверим, правильно ли сработала команда:


[root@tecmint ~]# cat /etc/passwd | grep tarunika tarunika:x:1000:500::/home/tarunika:/bin/bash

5. Добавление пользователя в несколько групп

Опция “-G” используется для добавления пользователя в дополнительные группы. Названия групп разделяются запятой без пробелов.
В приведенном ниже примере мы добавляем пользователя “tecmint” в группы admins, webadmin и developer.


[root@tecmint ~]# useradd -G admins,webadmin,developers tecmint

Теперь проверим, в каких группах числится пользователь, с помощью команды id.


[root@tecmint ~]# id tecmint uid=1001(tecmint) gid=1001(tecmint) groups=1001(tecmint),500(admins),501(webadmin),502(developers) context=root:system_r:unconfined_t:SystemLow-SystemHigh

6. Добавление пользователя без домашней директории

В некоторых ситуациях мы не хотим, по соображениям безопасности, давать пользователям домашние директории. В таком случае, когда пользователь авторизуется в системе сразу после ее запуска, его домашней директорией будет root. Если такой пользователь использует команду su, то он авторизуется в домашней директории предыдущего пользователя.
Для создания пользователя без домашней директории используется опция “-M”. Например, создадим пользователя “shilpi” без домашней директории.


[root@tecmint ~]# useradd -M shilpi

Давайте проверим, что пользователь создан без домашней директории, с помощью команды ls:


[root@tecmint ~]# ls -l /home/shilpi ls: cannot access /home/shilpi: No such file or directory

7. Добавление пользовательского аккаунта с ограниченным сроком действия

По умолчанию, когда мы добавляем пользователя с помощью команды “useradd”, его аккаунт не имеет сроков действия, то есть дата истечения сроков его жизни установена в 0 (никогда не истекает).
Однако мы можем установить дату истечения с помощью опции “-e”, задав дату в формате YYYY-MM-DD. Это полезно при создании временных аккаунтов для каких-то конкретных задач.
В приведенном ниже примере мы создаем пользователя “aparna” со сроком жизни его аккаунта до 27 апреля 2015 года в формате YYYY-MM-DD.


[root@tecmint ~]# useradd -e 2015-03-27 aparna

Далее, проверяем сроки действия аккаунта и пароля с помощью команды “chage”.


[root@tecmint ~]# chage -l aparna Last password change : Mar 28, 2014 Password expires : never Password inactive : never Account expires : Mar 27, 2015 Minimum number of days between password change : 0 Maximum number of days between password change : 99999 Number of days of warning before password expires : 7

8. Создание пользователя с ограниченным временем действия пароля

Аргумент “-f” используется для того, чтобы задать количество дней, через которое пароль перестанет действовать. По умолчанию его значение равно -1, при этом время действия пароля не ограничивается.
В примере мы задаем для пользователя “tecmint” время действия пароля 45 дней с помощью опций “-e” и “-f”.


[root@tecmint ~]# useradd -e 2014-04-27 -f 45 tecmint

Ключи (опции)

КлючОписание и примеры
























-bЗадает базовый каталог для домашнего каталога
useradd dmosk -b /var/home
-cСоздает комментарий для описания учетной записи
useradd dmosk -c “Пользователя для управления системой”
-dПолный путь к домашнему каталогу пользователя
useradd dmosk -d /home/newuser
-DПозволяет показать или изменить настройки по умолчанию, которые будут применяться при последующем создании пользователей
useradd dmosk -Ds /bin/bash
-eДата, после которой учетная запись устареет.
useradd dmosk -e 2017-12-31
-fЧисло дней, после которого учетная запись с устаревшим паролем будет заблокирована
useradd dmosk -f 0
-gЗадает основную группу
useradd dmosk -g altternativegroup
-GЗадает дополнительные группы
useradd dmosk -G wheel
-kПуть к источнику скелета (файлы с шаблонами для нового пользователя)
useradd dmosk -k /var/skel
-mПри создании пользователя создать домашний каталог
useradd dmosk -m
-MНе создавать домашний каталог
useradd dmosk -M
-NНе создавать основную группу с таким же именем, как у пользователя
useradd dmosk -N
-oРазрешает создание учетной записи с повторяющимся UID
useradd dmosk -u 15 -o
-pЗадает пароль
useradd dmosk -p pass
-rСистемная учетная запись (без домашнего каталога и с идентификаторами в диапазоне SYS_UID_MIN – SYS_UID_MAX из файла /etc/login.defs)
useradd dmosk -r
-RКаталог, в который выполняется chroot
useradd dmosk -R /var/chroot/home
-sПуть до оболочки командной строки
useradd dmosk -s /bin/csh
-uЗадает UID
useradd dmosk -u 666
-UИмя группы будет таким же, как у пользователя
useradd dmosk -U

Актуальный список ключей можно получить командой useradd -h.

Редактирование

Синтаксис:

usermod <имя пользователя=””> [опции]

Пример:

usermod dmosk -G wheel

* эта команда добавит пользователя dmosk в группу wheel

Удаление

Синтаксис:

userdel <имя пользователя=””> [опции]

Пример:

userdel dmosk

Блокировка

Можно заблокировать пользователя, не удаляя его из системы:

usermod -L <имя пользователя=””>

Пример:

usermod -L dmosk

Чтобы разблокировать пользователя, вводим:

usermod -U <имя пользователя=””>

Работа с группами

Добавление:

groupadd <группа> [опции]

Редактирование:

groupmod <группа> [опции]

Удаление:

groupdel <группа> [опции]

Примеры работы с учетными записями

Команда useradd

Во-первых, давайте посмотрим на поведение команды useradd по умолчанию. Вы когда-нибудь запускали следующую команду?

useradd NewUser

Мы еще не видели дистрибутив, где эта команда создала полную учетную запись пользователя. Даже после установки пароля для нового пользователя вам потребуется использовать дополнительные параметры.

Например, в нашей системе указанная выше команда добавила следующую запись в файл /etc/passwd.

Команда useradd в Linux

Если вы читали статью о перечислении пользователей в Linux, вы, вероятно, уже знакомы с содержанием файла /etc/passwd. Сначала это выглядит хорошо, но если вы начнете копать, вы скоро заметите, что некоторые вещи не совсем правильные.

Во-первых, второе поле содержит «х». Это означает, что заполнитель для информации о пароле находится в /etc/shadow. Но мы не установили пароль. Это означает, что тестовый пользователь не сможет войти в систему.

Во-вторых, домашний каталог. Дело в том, что /home/test не существует. Даже после того, как вы установили пароль, произойдет ошибка, если пользователь войдет в систему. В зависимости от другой конфигурации ваша система Linux может запретить пользователю входить без действительного домашнего каталога. Скорее всего, пользователь test позволит войти в систему, по крайней мере, в текстовом режиме. Но пользователь test не сможет создать свой домашний каталог.

В-третьих, оболочкой по умолчанию является sh, а не bash. Мы не используем sh как оболочку. Вы, вероятно, тоже не знаете, потому что bash является оболочкой по умолчанию в большинстве дистрибутивов Linux.

В то время как useradd-х поведение можно немного изменить, отредактировав /etc/login.defs, существует мало шансов, что приведенная выше команда создаст полную учетную запись пользователя. Useradd является низкоуровневая утилита. Тем не менее, просмотр настроек в /etc/login.defs может быть полезен.

Синтаксис команды useradd

Команда useradd принимает в качестве аргумента имя пользователя, а также различные опции.

Синтаксис команды следующий:

useradd опцииимяпользователя

Создание нового пользователя

Чтобы просто создать пользователя используется команда useradd без каких-либо опций. Указывается только имя пользователя.

sudo useradd pupkin

Данная команда создает нового пользователя с системными параметрами по умолчанию, которые прописаны в файле /etc/default/useradd

Чтобы пользователь мог войти в систему, необходимо задать для него пароль. Для этого используем команду:

sudo passwd pupkin

Создание нового пользователя с домашней директорией в /home

Создадим пользователя и его домашнюю директорию.

sudo useradd -m pupkin

Домашняя директория создается по умолчанию в каталоге /home. Имя директории совпадает с именем пользователя.

Создание нового пользователя с произвольной домашней директорией

Чтобы создать пользователя с домашней директорией, расположенной в произвольном месте, используется опция -d, после которой указывается путь до директории. Директорию необходимо создать заранее.

Создаем домашнюю директорию для будущего пользователя:

sudo mkdir -p /users/pupkin

Копируем файлы и директории, которые по умолчанию создаются в домашней директории пользователя в данной системе. Данные файлы находятся в директории /etc/skel

sudo cp -rT /etc/skel /users/pupkin

Создаем пользователя и указываем домашнюю директорию:

sudo useradd -d /users/pupkin pupkin

Меняем права доступа у домашней директории:

sudo chown -R pupkin:pupkin /users/pupkin

Задаем пароль для пользователя:

sudo passwd pupkin

Можно просмотреть информацию о пользователе, которая сохранена в файле /etc/passwd

cat /etc/passwd | grep pupkin pupkin:x:1001:1001::/users/pupkin:/bin/sh

Команда useradd. Создание пользователя с произвольной домашней директорией

Создание нового пользователя с произвольными UID, GID

Каждый пользователь в Linux имеет свой числовой идентификатор — UID, а также идентификатор основной группы пользователя — GID.

При создании пользователя можно задать произвольные номера UID и/или GID. При указании номера группы, группа с этим номером должна быть создана заранее.

useradd -u 1234 -g 1222 pupkin

Создание пользователя с указанием оболочки (shell)

По умолчанию новые пользователи создаются с оболочкой /bin/sh Чтобы задать другую оболочку, используется опция -s /путь/до/оболочки

sudo useradd -m -s /bin/bash pupkin

Смотрите также: Как определить и изменить командную оболочку (shell) в Linux

Создать пользователя и добавить его в группы

Обычно пользователи в Linux принадлежат нескольким группам. Чтобы при создании нового пользователя задать группы, к которым он будет принадлежать, используется опция -G список,групп

sudo useradd -m -G adm,cdrom,wheel -s /bin/bash pupkin

Смотрите также: «Добавление пользователя в группу. Списки пользователей и групп в Linux»

В чем отличия adduser и useradd?

useradd — это низкоуровневая утилита для создания пользователей в Linux.

adduser — представляет собой более простое решение для создания пользователей и по факту является надстройкой над useradd, groupadd и usermod.

Утилита adduser доступна не во всех дистрибутивах Linux. Реализация adduser также может отличаться. Если в дистрибутиве присутствует утилита adduser, то для создания пользователей рекомендуется использовать именно ее.

Команда Adduser

Adduser недоступен. в некоторых дистрибутивах Linux. На других это мягкая ссылка на useradd. В то время как на некоторых других, это сценарий Perl.

Adduser – это интерактивная утилита высокого уровня. В качестве бэкэнда используется утилита низкого уровня useradd. Настройки в /etc/login.defs будут использоваться при использовании adduser. На дистрибутивах, основанных на Debian, даже страница man рекомендует использовать его с помощью команды useradd.

Вызов adduser только с именем пользователя проведет вас через ряд вопросов.

Команда Adduser

После ответа на несколько вопросов будет создана полная учетная запись пользователя. Новый пользователь готов войти через ваш менеджер входа в систему или в текстовом режиме.

Чтобы достичь почти того же результата с помощью низкоуровневой утилиты useradd, команда должна выглядеть примерно так:

sudo useradd -d /home/test -m -s/bin/bash -c FullName,Phone,OtherInfo test && passwd test

В опции -с могут быть удалены без проблем, то разделенный запятыми список, который следует будут добавлены комментарии к /etc/passwd. Но даже тогда adduser сохраняет две дополнительные команды.

У Adduser есть список доступных вам опций. Вот короткий список, который, я думаю, будет наиболее полезно узнать. Обратитесь к справке или справочной странице для получения более подробной информации.

  • –system: добавить системного пользователя. По умолчанию системные пользователи помещаются в группу nogroup. Чтобы добавить системного пользователя в существующую группу, укажите параметр –gid или –ingroup.
  • –home DIR: использовать DIR в качестве домашнего каталога вместо стандартного. При необходимости будет создан каталог и скопированы файлы скелета.
  • –shell SHELL: используйте SHELL вместо значения по умолчанию.
  • –ingroup GROUP: установить первичную группу пользователя на GROUP
  • –add_extra_groups: добавить нового пользователя в дополнительную группу, определенную в файле конфигурации.

Файл конфигурации AddUser позволяет установить значения по умолчанию, которые будут использоваться при создании учетной записи. Файл хорошо документирован и позволяет устанавливать значения по умолчанию, такие как:

  • Оболочка по умолчанию
  • Домашний каталог
  • Дополнительные группы
  • Добавить дополнительные группы


[spoiler title=”Источники”]

  • https://linuxinsider.ru/kak-sozdat-polzovatelya-linux/
  • https://www.dmosk.ru/miniinstruktions.php?mini=linux-users
  • http://rus-linux.net/MyLDP/consol/15-primerov-po-useradd.html
  • https://andreyex.ru/linux/komandy-linux-i-komandy-shell/useradd-protiv-adduser-v-chem-raznitsa/
  • https://pingvinus.ru/note/useradd


[/spoiler]


2020-07-27T15:39:49
Linux

Samba-сервер в локальной сети с Linux и Windows



























2.7/5 — (3 голоса)

 

Файловый сервер работает по протоколу SMB/CIFS и позволяет предоставить доступ к общим ресурсам в локальной сети, например, текстовым файлам или сетевым принтерам. Для его развертывания на Windows используются штатные средства ОС, на Linux используется файловый сервер Samba.

В инструкции рассмотрена настройка файлового сервера на серверах с операционными системами Linux и Windows. На сервере будет находиться 2 каталога – публичный и приватный. К файловому серверу подключение будет происходить как с операционной системы Windows, так и с Linux, т.к. в виртуальной или физической локальной сети могут находиться серверы с разными ОС.

Схема Samba

Создание и настройка частной сети

Для начала в панели управления должны быть созданы все необходимые для сети серверы.

После создания необходимо объединить все машины в единую локальную сеть через панель управления в разделе Сети. В результате серверы получат локальные IP-адреса.

После создания частной сети необходимо настроить сетевые адаптеры на каждом сервере. Об этом можно прочитать в наших инструкциях:

  1. Настройка сетевого адаптера в Ubuntu и Debian
  2. Настройка сетевого адаптера в CentOS
  3. Настройка сетевого адаптера в Windows

Настройка файлового сервера

Прежде всего, необходимо определиться, на сервере с какой операционной системой будет находиться общий каталог.

Подготовка системы

Прежде чем приступать к работе продумайте схему хранения данных и доступа к ним. Существую разные типы данных, которые мы будем характеризовать по интенсивности доступа к ним, скажем “холодные данные” отличаются тем, что обращения к ним происходят крайне редко (а к некоторым вообще никогда), но при этом они могут занимать значительные объемы. Это прежде всего резервные копии, инсталляционные пакеты, образа дисков и т.д. и т.п.

Противоположность им “горячие данные” – это данные которые интенсивно используются и изменяются, для файлового сервера примером таких данных может служить файловая информационная база 1С:Предприятия. Между ними находятся обычные данные, характер доступа к которым не имеет каких-либо особенностей.

Исходя из типа данных следует выбирать диски для хранения, для “горячих данных” это должны быть быстрые диски или SSD, а для “холодных” подойдут экономичные модели с упором на большой объем. Также не забывайте про RAID, для защиты данных от аппаратного выхода дисков из строя.

Также продумайте структуру директорий и прав доступа к ним. Разумно будет исходить из следующих соображений: разделяйте диски с данными и системой, чтобы при необходимости можно было заменить их без лишних затруднений или перенести на другой сервер. Храните разные типы данных на разных дисках или разделах, скажем, если на разделе для резервных копий закончится свободное место, то это никак не повлияет на работу баз 1С.

В нашем примере мы будем использовать виртуальную машину с двумя жесткими дисками, один для системы, второй для данных, точку монтирования диска для данных мы указали как /samba, вы можете использовать другое имя и расположение.

samba-debian-001.png

Также обратите внимание на имя компьютера, Samba 4 будет использовать его в качестве NetBIOS имени.

После установки ОС следует изменить настройку лимита на количество одновременно открытых файлов, в Linux это 1024, а в Windows 16384. Для этого откройте файл /etc/security/limits.conf и добавьте в конце две строки:

* – nofile 16384
root – nofile 16384

После чего сервер следует перезагрузить.

Настройка файлового сервера на Linux (Debian/Ubuntu)

Для развертывания файлового сервера на системах Linux используется инструмент SAMBA. Ниже перечислены действия по его установке и настройке.

Прежде всего следует обновить локальную базу пакетов:

apt-get update

Далее установите пакеты из главного репозитория:

apt-get install -y samba samba-client

Создайте резервную копию файла конфигурации Samba:

cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

Создайте или выберете директорию, к которой все пользователи будут иметь общий доступ:

mkdir -p /samba/public

Перейдите к этому каталогу и измените режим доступа и владельца:

cd /samba
chmod -R 0755 public

Создайте или выберете каталог, к которому иметь доступ будут ограниченное число пользователей:

mkdir /samba/private

Создайте группу пользователей, которые будут иметь доступ к приватным данным:

groupadd smbgrp

Создайте нужных пользователей с помощью команды useradd:

useradd user1

Добавьте созданных пользователей в группу:

usermod -aG smbgrp user1

Измените группу, которой принадлежит приватная директория:

chgrp smbgrp /samba/private

Задайте пароль, с помощью которого пользователь будет подключаться к каталогу:

smbpasswd -a user1

Откройте файл конфигурации на редактирование с помощью текстового редактора, например nano:

nano /etc/samba/smb.conf

Замените содержимое файла на следующие строки:


[global]workgroup = WORKGROUP
security = user
map to guest = bad user
wins support = no
dns proxy = no
[public]path = /samba/public
guest ok = yes
force user = nobody
browsable = yes
writable = yes
[private]path = /samba/private
valid users = @smbgrp
guest ok = no
browsable = yes
writable = yes

Сохраните внесенные изменения, нажав CTRL+X, затем Enter и Y.

Значения параметров выше:

  • global – раздел с общими настройками для Samba сервера
  • workgroup – рабочая группа Windows, WORKGROUP – значение по умолчанию для всех Windows машин, если вы не меняли самостоятельно
  • security – режим безопасности, значение user означает аутентификацию по логину и паролю
  • map to guest – задает способ обработки запросов, bad user – запросы с неправильным паролем будут отклонены, если такое имя пользователя существует
  • wins support – включить или выключить поддержку WINS
  • dns proxy – возможность запросов к DNS
  • public – название общего каталога, которое будут видеть пользователи сети, может быть произвольным и не совпадать с именем директории
  • path – полный путь до общего каталога
  • browsable – отображение каталога в сетевом окружении
  • writable – использование каталога на запись, инверсия read only
  • guest ok – авторизация без пароля
  • force user – пользователь по умолчанию
  • valid users – список пользователей, у которых есть доступ к каталогу, через @ указывается unix-группа пользователей

Проверить настройки в smb.conf можно с помощью команды:

testparm -s

Чтобы изменения вступили в силу, перезапустите сервис:

service smbd restart

Далее нужно настроить firewall, открыв порты, которые использует SAMBA. Настоятельно рекомендуем разрешить только подключения из локального диапазона IP-адресов или виртуальной частной сети. Адресное пространство вашей частной сети вы можете увидеть в панели управления 1cloud.

Замените значение параметра –s в правилах ниже для соответствия адресному пространству вашей частной сети. Как правило префикс сети /24, если вы явно не подразумеваете иного:

iptables -A INPUT -p tcp -m tcp –dport 445 –s 10.0.0.0/24 -j ACCEPT
iptables -A INPUT -p tcp -m tcp –dport 139 –s 10.0.0.0/24 -j ACCEPT
iptables -A INPUT -p udp -m udp –dport 137 –s 10.0.0.0/24 -j ACCEPT
iptables -A INPUT -p udp -m udp –dport 138 –s 10.0.0.0/24 -j ACCEPT

Теперь необходимо сделать так, чтобы указанные выше правила фаервола iptables были сохранены после перезагрузки машины. Для это установим пакет iptables-persistent:

apt-get install iptables-persistent

После установки откроется окно с предложением последовать запомнить текущие правила iptables для IPv4 и IPv6. Подтвердите это действие.

Проверить актуальные правила iptables можно командой:

iptables -L

В выводе команды вы должны увидеть ранее добавленные разрешающие политики (Accept).

Настройка общего ресурса с гостевым доступом

Начнем с самого простого варианта – создадим общий ресурс, доступ к которому может иметь любой пользователь. Для этого добавим в конец файла /etc/samba/smb.conf следующие строки.


[public]comment = Shared for all
path = /samba/public
read only = no
guest ok = yes

В квадратных скобках задаем имя ресурса, все что ниже скобок – секция этого ресурса. В ней мы указали следующие опции:

  • comment – описание ресурса, необязательный параметр;
  • path – путь к директории;
  • read only – режим только чтения, указываем no>;
  • guest ok – разрешен ли гостевой доступ, указываем yes>;

Теперь создадим саму директорию:

mkdir /samba/public

и установим на нее необходимые права, для гостевого ресурса это 777:

chmod 777 /samba/public

Перезапускаем Samba и пробуем получить доступ с любого Windows-клиента.

samba-debian-002.png
Если все сделано правильно, то сервер появится в сетевом окружении, и вы без проблем получите доступ к созданной нами общей папке.

Настройка корзины для общего ресурса

Полезность корзины на файловом сервере, пожалуй не будет отрицать никто. Человеку свойственно ошибаться и будет очень обидно, если ценой ошибки окажется несколько часов работы, но, к счастью Samba позволяет помещать удаленные файлы в корзину.

Для активации корзины добавьте в секцию к общему ресурсу следующие строки:

vfs objects = recycle
recycle:repository = .recycle
recycle:versions = yes
recycle:keeptree = yes

Первая опция добавит в общий ресурс новый объект – корзину, вторая укажет ее расположение – скрытая папка в корне. Две следующих включают сохранение структуры папок при удалении и сохранение нескольких версий файла с одним и тем же именем. Это нужно в тех случаях, когда разные пользователи удалят разные файлы с одним и тем же именем.

Перезапустим Samba и попробуем что-нибудь удалить.

samba-debian-005.png
Несмотря на грозное предупреждение Проводника удаляемые файлы перемещаются в корзину, откуда мы их можем восстановить.

Как видим, работать с Samba не просто, а очень просто, при том, что мы оставили за кадром многие возможности тонкой настройки, многие из которых требуют отдельных статей. Надеемся, что данный материал окажется вам полезным и поможет быстро и без проблем развернуть файловый сервер на Linux.

Настройка общего публичного каталога на Windows