• I






      
           

Научно-популярный образовательный ресурс для юных и начинающих радиолюбителей - Popular science educational resource for young and novice hams

Основы электричества, учебные материалы и опыт профессионалов - Basics of electricity, educational materials and professional experience

КОНКУРС
language
 
Поиск junradio

Радиодетали
ОК
Сервисы

Stock Images
Покупка - продажа
Фото и изображений


 
Выгодный обмен
электронных валют

Друзья JR



JUNIOR RADIO

 

Использование команды useradd
в Linux для создания пользователей

 

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

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

Синтаксис useraddкоманды относительно прост. Все, что для этого нужно, - это два аргумента. Требуется один. Другой вариант не обязателен. Первый аргумент не обязателен. В этом аргументе вы можете указать параметры, управляющие поведением команды. Второй аргумент является обязательным, и именно здесь вы указываете имя пользователя, которого хотите создать.

useradd [OPTIONS] USERNAME

Чтобы добавить нового пользователя в эту систему Linux с помощью этой команды, вам необходимо быть либо пользователем root, либо иметь привилегии суперпользователя . При создании нового пользователя команда учтет несколько вещей. Первый - это параметры, которые вы указали при вызове команды. Во-вторых, он прочитает содержимое файла, расположенного по адресу, /etc/default/useraddи использует его по умолчанию. Переменные, определенные в этом файле, будут различаться в зависимости от дистрибутива Linux. В-третьих, useraddкоманда также прочитает содержимое /etc/login.defsфайла. Он использует этот файл для настройки множества вещей, включая политику истечения срока действия пароля и диапазон идентификаторов пользователей.

Добавление нового пользователя в Linux

Чтобы начать этот раздел, мы собираемся показать вам самое простое использование useraddкоманды для создания пользователя в вашей системе Linux. Самый простой способ использования - это using useradd, за которым следует имя пользователя, которого вы хотите создать.

useradd USERNAME

Когда вы запустите команду, она создаст запись в четырех разных файлах. Эти файлы /etc/password, /etc/group, /etc/shadowи /etc/gshadowмы можем выполнить следующую команду Система будет использовать эти файлы для настройки и обработки наших пользователей, а также для проверки их подлинности. Например, если мы хотим создать пользователя с именем pimylifeup, мы можем запустить следующую команду

useradd pimylifeup

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

passwd pimylifeup

Команда passwdпредложит вам указать пароль для пользователя. Убедитесь, что вы установили что-то безопасное.

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

Когда вы запустите useraddкоманду в некоторых операционных системах Linux, вы обнаружите, что она не создает автоматически домашний каталог. Мы можем использовать опцию, чтобы обойти это поведение, называемую опцией создания дома. Эта опция обозначается строчной буквой m ( -mили --create-home).

useradd -m USERNAME

Эта опция создаст домашний каталог с тем же именем, что и имя пользователя. Например, при вызове пользователя pimylifeupкоманда создаст каталог по адресу /home/pimylifeup. При создании этого нового каталога useraddкоманда скопирует в него файлы и каталоги из /etc/skelпапки. Вы можете использовать эту папку для настройки файлов и каталогов, которые вы хотите создавать для домашнего каталога каждого нового пользователя. Вы можете наблюдать за компоновкой домашнего каталога новых пользователей, используя команду list files .

Например, если бы мы наблюдали за нашими вновь созданными pimylifeupпользователями.

$ ls -l /home/pimylifeup

-rw-r--r-- 1 pimylifeup pimylifeup 3771 Jul  1  2020 .bashrc

-rw-r--r-- 1 pimylifeup pimylifeup  807 Jul  1  2020 .profile

Из этого мы видим, что наш новый пользователь является владельцем и группой файла и получил права на чтение и запись.

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

В некоторых случаях вы захотите добавить нового пользователя, не создавая домашний каталог. В то время как некоторые системы Linux не создают домашний каталог при использовании useraddкоманды по умолчанию, некоторые делают это. Чтобы отключить автоматическое создание домашних каталогов, мы можем использовать опцию no create home ( -Mили --no-create-home).

useradd -M USERNAME

Как видите, отключить создание домашнего каталога достаточно просто и нужно просто добавить параметр.

Добавление нового пользователя в собственный домашний каталог

Теперь, когда мы понимаем, как создать домашний каталог при добавлении нового пользователя, теперь мы можем узнать, как установить собственный каталог. Чтобы указать каталог, мы можем использовать опцию home dir ( -dили --home-dir). Используя эту опцию, вы сможете выбрать любой каталог в качестве домашнего каталога вашего пользователя. Этот каталог может существовать даже вне/home/

useradd -d DIRECTORY USERNAME

При использовании этой опции убедитесь, что указанный вами каталог уже существует. Команда не будет пытаться создать эту папку сама. Он также не будет использовать какие-либо файлы и каталоги из /etc/skel/папки. Например, если у нас есть каталог с именем, в /data/websiteкотором мы хотели бы разместить дом нашего нового пользователя pimylifeup, мы можем выполнить следующую команду.

useradd -d /data/website pimylifeup

Создание пользователя с определенным идентификатором пользователя

В Linux пользователи идентифицируются двумя разными идентификаторами, первый - это уникальный идентификатор (называемый UID) и имя пользователя. Идентификатор пользователя (UID) - это уникальный положительный номер, присваиваемый каждому пользователю операционной системой Linux. UID является частью системы разрешений Linux и используется для определения того, к каким файлам пользователь может получить доступ, а также какие действия он может выполнять. Когда пользователь создается с помощью useraddкоманды, ему автоматически назначается следующий доступный UID. Диапазон доступных идентификаторов пользователей определяется в login.defsфайле. Можно изменить автоматически выбранный идентификатор пользователя, используя параметр -u (или --uid). С помощью этой опции вы можете указать идентификатор, который вы хотите дать своему новому пользователю.

useradd -u USERID USERNAME

Например, если бы мы создали пользователя с именем pimylifeupи хотели бы присвоить ему UID 1800, мы можем использовать следующую команду.

useradd -u 1800 pimylifeup

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

$ id -u pimylifeup

1800

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

Установка конкретного идентификатора группы для нового пользователя

Так же, как мы можем указать конкретный идентификатор для пользователя, мы также можем выбрать группу, к которой мы хотим, чтобы новый пользователь принадлежал. Группы используются в Linux как способ объединения пользователей. Используя систему разрешений Linux, вы можете дать целым группам право читать, писать или выполнять определенные файлы и каталоги. Это означает, что если вы хотите, чтобы несколько пользователей изменили или использовали определенный набор файлов и каталогов, вы должны добавить их в одну группу. По умолчанию, когда вы используете useraddкоманду для создания нового пользователя в вашей системе Linux, она автоматически создает группу с тем же именем, что и ваше имя пользователя, и использует тот же идентификатор, что и ваш пользователь. Вы можете переопределить это поведение, используя параметр идентификатора группы ( -gили --gid).

useradd -g GROUPNAME/GID USERNAME

Эта опция позволяет вам указать группу, которую вы хотите назначить вашему новому пользователю. Эта группа может быть определена с помощью имени группы или ее уникального идентификатора (GID). Указанные вами группы должны уже существовать в вашей системе. Например, если мы хотим создать нового пользователя с именем pimylifeup, который принадлежит к нашей уже существующей piгруппе, мы можем использовать команду, как показано ниже.

useradd -g pi pimylifeup

Подобно проверке UID, также можно увидеть, к какой группе сейчас принадлежит наш пользователь, используя idкоманду и параметр имени группы ( -gn).

$ id -gn pimylifeup

pi

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

Также можно использовать useraddкоманду для создания пользователя, принадлежащего к нескольким группам. Чтобы указать несколько групп, нам нужно будет использовать эту -Gопцию.

useradd -G GROUP1,GROUP2,... USERNAME

Имя каждой группы следует разделять запятой ( ,). Убедитесь, что вы не используете пробелы между именами групп. Если есть пробел, useraddкоманда будет думать, что вы указываете имя пользователя для использования. Например, если мы должны были создать наш пользователь с именем , pimylifeupи хотел , чтобы добавить его к нескольким группам , таким как admins, www-dataи git.

useradd -G admins,www-data,git pimylifeup

Вы можете проверить, был ли ваш пользователь создан в каждой из этих групп, используя idкоманду. Чтобы заставить команду id печатать имя для всех групп, мы будем использовать -Gnопцию.

$ id -Gn pimylifeup

pimylifeup3 www-data admins git

Добавление пользователя в Linux, срок действия которого истекает

По умолчанию учетные записи, созданные с помощью этой useraddкоманды, никогда не истекают (установлен срок действия 0). Однако в некоторых случаях вам может потребоваться создать временную учетную запись. Создание учетной записи с датой истечения срока действия означает, что она перестанет функционировать, как только эта дата пройдет. Пользователь с истекшим сроком действия перестает работать. Чтобы указать дату истечения срока, нам нужно будет использовать опцию истечения срока действия ( -eили --expiredate).

useradd -e YYYY-MM-DD USERNAME

Срок годности должен быть указан в YYYY-MM-DDформате. Например, дата 1 июля 2020 года  станет 2020-07-01при использовании этого формата. Если бы мы хотели создать пользователя с именем pimylifeupexpires, срок действия которого истекает в конце июля 2020 года, мы бы использовали следующую команду.

useradd -e 2020-07-31 pimylifeupexpires

Мы можем проверить возраст нашего пользователя и проверить, когда истекает срок действия учетной записи для нашего нового пользователя, используя chageкоманду. Как и при создании пользователя, чтобы проверить возраст пользователя, вам понадобятся привилегии суперпользователя или пользователь root.

$ chage -l pimylifeupexpires

Last password change                                    : Jul 01, 2020

Password expires                                        : never

Password inactive                                       : never

Account expires                                         : Jul 31, 2020

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

Вы также можете использовать эту команду для изменения даты истечения срока действия пользователя

 

Использование команды hostname

Команду hostname можно использовать для получения и установки имени хоста, домена или узла текущей системы. Имена хостов важны, поскольку они используются большинством сетевых программ для идентификации вашей машины. Используя уникальные имена хостов, вы сможете быстро идентифицировать машины в сети и подключаться к ним. Обычно такое имя хоста, как «», pimylifeup-raspberrypiбудет легче отследить, чем локально назначенный IP-адрес, такой как « 192.168.0.175». Также можно использовать команду hostname для определения всех IP-адресов, которые были назначены вашему компьютеру. Изучение того, как использовать эту команду, может быть полезно при управлении несколькими устройствами Linux в сети.

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

Синтаксис команды hostname относительно прост для понимания. Эта команда принимает два совершенно необязательных аргумента.

hostname [OPTIONS] [HOSTNAME/FILENAME]

Первый аргумент - это аргумент опций . Эти параметры позволяют вам управлять поведением hostname, например использовать его для установки имени хоста или получения IP-адресов, назначенных вашей машине Linux. Второй аргумент используется только для указания нового имени хоста или имени файла, из которого следует получить новое имя хоста.

Получение текущего имени хоста

Самый простой способ использовать команду hostname - использовать ее для получения текущего имени хоста. Все, что вам нужно сделать, это ввести команду без указания аргументов.

hostname

С помощью этой команды вы должны увидеть имя хоста вашей системы, напечатанное на терминале.

$ hostname

pimylifeup

Как видите, в нашей системе задано имя хоста pimylifeup.

Установка нового имени хоста

Теперь, когда мы знаем, как получить имя хоста, давайте узнаем, как установить новое. Чтобы изменить имя хоста системы, у вас должны быть права суперпользователя . К счастью для нас, hostnameкоманда делает процесс установки имени хоста достаточно простым. Все, что нам нужно сделать, это указать новое имя хоста после команды.

hostname NEWHOSTNAME

Например, если мы хотим изменить имя хоста нашей системы на « pimylifeupguide», мы можем использовать следующую команду.

sudo hostname pimylifeupcommandguide

Использование файла для установки имени хоста

Используя команду hostname, также можно получить имя хоста из файла. Поскольку мы устанавливаем имя хоста, нам нужно будет быть пользователем root или иметь привилегии суперпользователя. Для этого мы воспользуемся опцией файла ( -Fили --file). Эта опция укажет инструменту ожидать ввода файла. Когда инструмент прочитает файл, он будет искать одну строку. Он игнорирует любые строки, начинающиеся с хэштега ( #).

hostname -F FILENAME

Например, если у нас есть файл newhostnamefileс текстом pimyhostnameв нем, мы можем использовать следующую команду.

sudo hostname -F newhostnamefile

Теперь имя хоста должно быть установлено на имя, определенное в файле, что в нашем случае будет pimyhostname.

Всегда устанавливать имя хоста

По умолчанию, если вы использовали параметр файла для установки имени хоста и этот файл не содержал текста, то выдается ошибка, указывающая, что это недопустимое имя хоста. Чтобы этого не произошло, вы можете использовать параметр загрузки ( -bили --boot).

hostname -b[-F] HOSTNAME

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

hostname -bF exampleEmptyFile

Получение назначенных IP-адресов с помощью команды hostname

В этом разделе мы покажем вам, как вы можете использовать команду hostname для получения IP-адресов, назначенных вашему устройству. Мы довольно часто используем этот метод в наших проектах Raspberry Pi,  поскольку он обычно быстрее, чем пытаться найти его через интерфейс вашего маршрутизатора. Есть два разных варианта, которые вы можете использовать для получения IP-адресов. Эти параметры работают по-разному, поэтому убедитесь, что вы используете тот, который лучше всего соответствует вашим потребностям.

Получение IP-адреса для имени хоста

Первый вариант, который мы рассмотрим, - это тот, который используется для разрешения IP-адресов для имени хоста. Этот параметр обозначается строчной буквой i ( -iили --ip-address).

hostname -i

При использовании инструмент автоматически попытается определить, на что указывает имя хоста. Если система не может определить имя хоста, ничего не будет возвращено. Например, если мы запустим это на одном из наших Raspberry Pi, мы вернем петлевой IP-адрес.

$ hostname -i

127.0.0.1

Получение всех назначенных IP-адресов

Мы также можем использовать команду hostname для получения всех IP-адресов, назначенных системным сетевым интерфейсам. Этот второй вариант обозначается заглавной буквой I ( -Iили --all-ip-addresses).

hostname -I

Когда вы запускаете команду с этой опцией, она проверит вашу систему, чтобы получить назначенные ей IP-адреса и распечатать их обратно. Например, запустив это на локальном устройстве в нашей сети, мы получили следующее.

$ hostname -I

192.168.0.115

Из этого мы видим, что можем получить доступ к нашему устройству, используя локальный IP-адрес 192.168.0.115.

Получение сокращенного имени хоста

Чтобы получить сокращенное имя хоста с помощью этой команды, мы можем использовать короткий параметр ( -sили --short).

hostname -s

Эта опция будет возвращать имя хоста до тех пор, пока оно не достигнет .символа точки ( ). Если в имени хоста нет точки ( .), он напечатает все имя хоста. Например, если бы у нас было имя хоста pimylifeup.hostname, мы бы pimylifeupвернули короткое имя .

$ hostname -s

pimylifeup

Однако, если бы мы заменили эту точку ( .) дефисом ( -), мы бы получили имя pimylifeup-hostnameобратно из команды.

$ hostname -s

pimylifeup-hostname

Получение всех полных доменных имен

Мы также можем использовать команду hostname для получения всех FQDN (полных доменных имен), назначенных нашей системе. Полное доменное имя системы - это имя, которое преобразователь системы возвращает для указанного имени хоста. Обычно эти имена представляют собой имя хоста, за которым следует имя домена DNS. Например, если у нас есть FDQN hostname.example.com,  hostnameэто будет наше имя хоста и .example.comнаше доменное имя DNS. Чтобы получить эти имена, мы должны использовать опцию all FDQNs ( -Aили --all-fdqns).

hostname -A

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

$ hostname –A

 

Захват домена DNS

Другое использование команды hostname в системах Linux / Unix - получить текущий домен DNS. Чтобы получить это значение, нам нужно использовать параметр домена ( -dили --domain).

hostname -d

Домен DNS - это доменная часть полного доменного имени. Например, если бы у нас был FDQN « pimylifeup.example.com», домен DNS был бы « example.com».

Отображение FDQN

Последний вариант hostnameкоманды, которую мы рассмотрим, - это параметр display fdqn ( -f, --fqdnили --long) FDQN состоит из короткого имени хоста и имени домена DNS. Например, « pimylifeup.example.com» - это полное доменное имя.

hostname -f

Надеюсь, на этом этапе у вас будет представление о том, как использовать hostnameкоманду в системах на базе Linux / Unix.

 

Команда rm в Linux

Команда rm означает «удалить» и используется для удаления файлов и каталогов в системах на базе Linux / Unix. Команда работает путем отсоединения имени файла в файловой системе от связанных с ней данных. Затем это пространство помечается как доступное для записи, и операционная система сможет записывать данные в эти места, когда захочет. Это означает, что при удалении файла с помощью этой команды данные все еще будут существовать на жестком диске. Однако к нему больше не прикреплено имя файла, и он теперь помечен как «свободное» пространство. Несмотря на то, что данные все еще существуют на устройстве хранения, теперь они недоступны, поскольку ссылка была удалена. При использовании этой rmкоманды отменить удаление файла невозможно . Если вы хотите полностью удалить файл из каталога, вам придется shredвместо этого использовать что-то вроде команды. Команда shred работает, перезаписывая содержимое файла пустыми данными (часто нулевыми), делая исходные данные полностью невосстановимыми.

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

Синтаксис rmкоманды относительно прост. Требуется два аргумента. Один из которых совершенно необязателен.

rm [OPTIONS] FILES/DIRECTORIES...

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

Использование rm для удаления одного файла

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

rm pimylifeup

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

Удаление нескольких файлов с помощью команды rm

Также возможно добавить несколько файлов к команде для удаления. Вы делаете это, указывая их после первого имени файла. Их нужно разделять одним пробелом ( filename1 filename2).

rm FILENAME1 FILENAME2 FILENAME...

Используя это, мы можем удалить, например, файл с именем pimylifeup1и pimylifeup2, используя команду ниже.

rm pimylifeup1 pimylifeup2

Удаление каталогов с помощью команды rm

По умолчанию вы не сможете удалять каталоги с помощью этой команды. Чтобы удалить каталог с помощью команды rm, вам нужно будет использовать эту -rопцию.

rm -r FILES/DIRECTORIES...

Этот rпараметр означает рекурсивный и указывает рекурсивное rmудаление всех файлов и каталогов. Это означает, что если у вас есть несколько подкаталогов и файлов в указанном каталоге, они будут удалены. Например, если у нас есть каталог с именем pimylifefolder, мы можем удалить его и все файлы и каталоги в нем, выполнив следующую команду.

rm -r pimylifeupfolder

Вы также можете удалить несколько файлов и каталогов, используя эту опцию. Например, если мы хотим удалить файл с именем pimylifeupи каталог с именем, pimylifeupfolderмы можем использовать команду, как показано ниже.

rm -r pimylifeup pimylifeupfolder

Принудительное удаление файлов / каталогов

Если какой-либо файл защищен от записи, вы увидите приглашение от команды rm с вопросом, хотите ли вы удалить его. Вы можете проверить, какие разрешения установлены для файла / каталога, используя команду ls . Чтобы показать вам это сообщение, мы предоставили пример удаления файла с разрешениями только для чтения.

$ rm pimylifeup

rm: remove write-protected regular file 'pimylifeup'?

Чтобы избежать необходимости отвечать на это сообщение для каждого файла, защищенного от записи, мы можем использовать эту -fопцию.

rm -f FILES...

Эта опция указывает rmкоманде принудительно удалить файл. Он подавит любые предупреждающие сообщения и попытается удалить файл независимо от каких-либо запросов. Например, если у нас есть файл pimylifeupс правами только для чтения , мы можем принудительно удалить его, используя следующую команду.

rm -f pimylifeup

Эта опция также будет работать вместе с рекурсивным аргументом для удаления каталогов.

rm -rf pimylifeupfolder

Будьте осторожны при одновременном использовании параметров рекурсивного ( -r) и force ( -f). Неправильное их использование может быстро удалить большое количество файлов, а в сочетании с superuserпривилегиями вы можете в конечном итоге повредить операционную систему.

Интерактивное удаление файлов с помощью rm

Команда rm также может спросить вас, хотите ли вы удалить файл. Вариант, который позволяет этому случиться, - это -iвариант, также известный как --interactiveвариант. Эта опция может быть полезна, чтобы вы не могли случайно удалить файлы, которые вам не нужны.

rm -i FILES...

Если эта опция включена, вы будете получать следующее сообщение каждый раз, когда файл будет удален. Чтобы удалить файл, вам нужно будет ответить Y. В противном случае вам нужно будет ответить N.

$ rm -i pimylifeup

rm: remove regular file 'pimylifeup'?

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

Удаление файлов, начинающихся с дефиса

Если вам когда-либо приходилось удалять файл с именем, начинающимся с дефиса ( -), вы обнаружите, что rmкоманда запутается. Причина этого в том, что, увидев дефис ( -), команда подумает, что вы пытаетесь указать параметр. Чтобы обойти это, нам нужно указать пустую опцию. Мы делаем это с помощью двух дефисов ( --) перед указанием имени файла.

rm -- -FILENAME

Например, если мы хотим удалить файл с именем, -pimylifeupмы можем использовать следующую команду.

rm -- -pimylifeup

Надеюсь, на этом этапе вы поймете, как использовать команду rm в операционной системе на базе Linux или Unix.

 




Необходимо добавить материалы...
Результат опроса Результаты Все опросы нашего сайта Архив опросов
Всего голосовало: 373



          

Радио для всех© 2024