Работа с пользователями и группами в Linux

Содержание

Как в Linux добавить пользователя в группу (или вторичную группу)

Работа с пользователями и группами в Linux

Учетные записи пользователей могут быть назначены одной или нескольким группам в Linux. Вы можете настроить права доступа к файлам и другие привилегии по группам. Например, на Ubuntu только пользователи из группы sudo могут использовать команду sudo для получения повышенных разрешений.

Как создать новую группу в Linux

Если вы хотите создать новую группу в своей системе, используйте команду groupadd, заменив new_group на имя группы, которую вы хотите создать.

Вам также нужно будет использовать sudo с этой командой (или в дистрибутивах Linux, которые не используют sudo, вам нужно будет запустить команду su, чтобы получить повышенные разрешения перед запуском команды).

sudo groupadd new_group

Добавление существующей учетной записи пользователя в группу

Чтобы добавить существующую учетную запись пользователя в группу в вашей системе, используйте команду usermod, заменив group_name на имя группы, в которую вы хотите добавить пользователя, в user_name на имя пользователя, которого хотите добавить.

usermod -a -G group_name user_name

Например, для добавления пользователя mial в группу sudo, используйте следующую команду:

usermod -a -G sudo mial

Изменение первичной группы пользователя

Хотя учетная запись пользователя может входить в нескольких групп, одна из групп всегда является «основной группой», а остальные являются «вторичными группами». Процесс входа пользователя, файлы и папки, созданные пользователем, будут назначены первичной группе.

Чтобы изменить основную группу, которой назначен пользователь, запустите команду usermod, заменив group_name на имя группы, а user_name на имя учетной записи пользователя.

usermod -g group_name user_name

Обратите внимание здесь на -g. Когда вы используете маленькую g, вы назначаете главную группу. Когда вы используете заглавную -G , как в примерах выше, вы назначаете вторичную группу.

Как узнать, в какие группы входит пользователь

Чтобы просмотреть группы, которым назначена текущая учетная запись пользователя, выполните команду groups. Вы увидите список групп.

groups

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

id

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

groups user_nameВы также можете просмотреть числовые идентификаторы, связанные с каждой группой, запустив команду id и указав имя пользователя.
id user_name

Первой группой в списке групп или группой, показанной после «gid=» в списке идентификаторов, является первичная группа учетной записи пользователя. Другие группы – это вторичные группы. Итак, на скриншоте ниже основной группой учетной записи пользователя является mial.

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

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

useradd -G group_name user_name

Например, чтобы создать новую учетную запись пользователя с именем jsmith и назначить эту учетную запись группе ftp, вы должны запустить:

useradd -G ftp jsmith

Конечно, вы захотите назначить пароль для этого пользователя:

passwd jsmith

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

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

usermod -a -G group1,group2,group3 user_name

Например, чтобы добавить пользователя с именем mial в группы ftp, sudo и example, вы должны запустить:

usermod -a -G ftp,sudo,example mial

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

Как просмотреть все группы в системе

Если вы хотите просмотреть список всех групп в вашей системе, вы можете использовать команду getent:

getent group

Этот вывод также покажет вам, какие учетные записи пользователей являются членами групп. Итак, на скриншоте ниже мы видим, что учетные записи пользователей syslog и mial являются членами группы adm.

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

Источник: https://ZaLinux.ru/?p=1407

Основы Linux от основателя Gentoo. Часть 3 (3/4): Управление аккаунтами в Linux

Работа с пользователями и группами в Linux

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

  1. Документация
  2. Модель прав доступа
  3. Управление аккаунтами
  4. Настройка окружения

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

Вы можете посмотреть свой файл /etc/passwd, набрав команду less /etc/passwd. Каждой строкой в /etc/passwd определяется аккаунт пользователя. Вот пример из моего /etc/passwd:

drobbins:x:1000:1000:Daniel Robbins:/home/drobbins:/bin/bash

Как видите, в одной строке не так уж много информации. Каждая из них содержит несколько полей, разделённых “:”. Первое поле отвечает за имя пользователя (drobbins), второе поле содержит «x». На устаревших Linux-системах второе поле содержало зашифрованных пароль для аутентификации, но фактически, сейчас все Linux-системы хранят эту информацию в другом файле. Третье поле отвечает за числовой пользовательский идентификатор, связанный с конкретным пользователем, а четвертое поле ассоциирует этого пользователя с конкретной группой; скоро мы увидим, где определена группа 1000. Пятое поле содержит текстовое описание аккаунта, в нашем случае это имя пользователя. Шестое поле определяет домашний каталог пользователя, седьмое — устанавливает стартовую оболочку пользователя, которая будет автоматически запускаться когда пользователь входит в систему.

/etc/passwd, советы и хитрости

Вы вероятно заметили, что в системе намного больше пользовательских аккаунтов, которые определены в /etc/passwd, чем тех, которые логинятся в систему на самом деле. Всё это потому, что различные компоненты Linux используют некоторые аккаунты для повышения безопасности.

Обычно, такие системные аккаунты имеют идентификатор (uid) меньший 100, и у многих из них в качестве стартовой оболочки установлена /bin/false. Так как эта программа ничего не делает, кроме как выходит и возвращает код ошибки, это эффективно препятствует использованию этих аккаунтов в качестве обычных аккаунтов для логина — т.е.

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

/etc/shadow

Итак, сами пользовательские аккаунты определены в /etc/passwd. Системы Linux вдобавок к /etc/passwd содержат его файл-компаньон /etc/shadow.

Он, в отличие от /etc/passwd, доступен для чтения только суперпользователю и содержит зашифрованную информацию о паролях.

Взглянем на образец строки из /etc/shadow:

drobbins:$1$1234567890123456789012345678901:11664:0:-1:-1:-1:-1:0

Каждая строка определяет информацию о пароле конкретного аккаунта, поля в ней разделены знаком “:”. Первое поле определяет конкретный пользовательский аккаунт, которому соответствует данная «теневая» запись. Во втором поле содержится зашифрованный пароль. Оставшиеся поля описаны в таблице ниже: поле 3 — количество дней с 01.01.1970 до момента, когда пароль был изменен поле 4 — количество дней до того, как будет разрешено сменить пароль («0» — «менять в любое время») поле 5 — количество дней до того, как система заставит пользователя сменить пароль (“-1” — «никогда») поле 6 — количество дней до истечения срока действия пароля, когда пользователь получит предупреждение об этом (“-1” — «не предупреждать») поле 7 — количество дней после истечения срока действия пароля, по прошествии которых аккаунт будет автоматически отключен системой (“-1” — «не отключать») поле 8 — количество дней, прошедшее с момента отключения этого аккаунта (“-1” — «этот аккаунт включен») поле 9 — зарезервировано для будущего использования

/etc/group

Теперь взглянем на файл /etc/group, который определяет группы в системе Linux. Вот примерная строка из него:

drobbins:x:1000:

Формат полей файла /etc/group следующий: первое поле определяет имя группы, второе поле — это поле остаточного пароля, которое сейчас просто зарезервировано x, и третье поле определяет числовой идентификатор для конкретной группы. Четвертое поле (которое пусто в примере выше) определяет всех членов группы.

Вспомните, что в нашем образце строки из /etc/passwd есть «ссылка» на группу с идентификатором 1000. Мы сможем поместить пользователя drobbins в группу drobbins, даже несмотря на отсутствие имени drobbins в четвертом поле /etc/group.

Примечания о группах

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

На других системах все логин-аккаунты будут принадлежать к одной группе пользователей. Какой из этих методов выбрать зависит от вас.

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

Ручное создание пользователей и групп

Теперь, я покажу как создать аккаунты для пользователя и группы. Лучший путь узнать как это сделать это добавить нового пользователя в систему вручную. Для начала убедитесь что вашей переменной окружения EDITOR соответствует ваш любимый редактор:

# echo $EDITOR vim

Если это не так, то вы можете установить переменную EDITOR, набрав что-то, вроде:

# export EDITOR=/usr/bin/emacs
# vipw

Теперь ваш редактор должен быть запущен с уже загруженным /etc/passwd экране. Изменяя системные файлы passwd и group обязательно используйте команды vipw и vigr. Они имеют повышенные меры предосторожности, оберегая ваши файлы от участи быть испорченными.

Редактирование /etc/passwd

Итак, у вас уже есть готовый файл /etc/passwd, добавьте теперь следующую строку:

testuser:x:3000:3000:LPI tutorial test user:/home/testuser:/bin/false

Источник: https://habr.com/post/110012/

Как управлять группами и пользователями в Linux

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

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

Чтобы использовать groupadd, вам потребуется root-доступ или, по крайней мере, возможность взаимодействовать с системой через sudo-привилегии. Подтвердите, что ваш пользователь может это сделать, затем откройте терминал и выполните следующие действия для создания новой группы:

su – 

groupadd newgroup

или, в качестве альтернативы, создать новую группу с sudo:

sudo groupadd newgroup

альтернативно, создавать сразу несколько групп:

su – 

groupadd newgroup, newgroup2, newgroup3

или

sudo groupadd newgroup, newgroup2, newgroup3

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

cut -d: -f1 / etc / group | grep newgroup

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

Удалить группы Linux

Если вы не используете какую-либо группу на своем Linux-ПК, рекомендуется удалить ее. Удаление группы пользователей в Linux так же просто, как создание новой. Сначала войдите в систему как su или подтвердите, что ваш пользователь может выполнять команды sudo. Затем запустите команду groupdel, чтобы избавиться от существующей группы.

su- 

sudo groupdel newgroup

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

cut -d: -f1 / etc / group | grep newgroup

Если Grep ничего не вернет, вы наверняка узнаете, что группа ушла.

Добавить / удалить пользователей в группы Linux

Чтобы добавить существующих пользователей во вновь созданную группу, вам нужно будет использовать команду usermod. Откройте терминал и используйте команду cut для просмотра всех групп.

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

Примечание.

Как и прежде, подтвердите, что вы можете войти в Root с помощью su или использовать sudo до изменения важной информации о пользователе.

su –

usermod -a -G newgroup yourusername

или

sudo usermod -a -G newgroup yourusername

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

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

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

Вам нужно создать нового пользователя в вашей Linux-системе? Начните с открытия окна терминала. В терминале получить доступ root с помощью su или sudo.

su –

или

sudo -sТеперь, когда у вас есть корневая оболочка, гораздо проще манипулировать пользователями, не добавляя «sudo» и пароль снова и снова. Чтобы создать нового пользователя с полным домашним каталогом, выполните приведенную ниже команду.

Примечание. На некоторых Linux-ПК вам может потребоваться заменить «useradd» на «adduser».

useradd newuser

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

useradd -G group1, group2, group3, group4, group5, group6 newuser

После создания нового пользователя установите пароль:

passwd newuser

Удалить пользователя Linux

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

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

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

su –

или

userdel -r newuserЧтобы удалить пользователя, но сохраните домашний каталог, выполните следующую команду:

userdel newuser

“,”author”:”Admin”,”date_published”:null,”lead_image_url”:”https://2.bp.blogspot.com/-6TJTEfDOq_E/Wztasz_uQII/AAAAAAAADXE/LVRgyaMiRusxpCXpjTWoCV1iWZsXzO_tQCLcBGAs/s640/linuxlearners.jpg”,”dek”:null,”next_page_url”:null,”url”:”http://www.technodor.info/2018/07/linux.html”,”domain”:”www.technodor.info”,”excerpt”:”Новые новости науки и техники в мире сегодня в 2018 году, лента новостей.”,”word_count”:583,”direction”:”ltr”,”total_pages”:1,”rendered_pages”:1}

Источник: http://www.technodor.info/2018/07/linux.html

Группы пользователей Linux

Работа с пользователями и группами в Linux

Основа распределения прав доступа в операционной системе Linux лежит на понятии пользователь. Пользователю-владельцу файла выдаются определенные полномочия для работы с ним, а именно на чтение, запись и выполнение.

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

Но еще при создании Linux, разработчики поняли, что этого явно недостаточно.

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

Что такое группы?

Как я уже сказал группы в Linux появились еще в самом начале разработки этой операционной системы. Они были разработаны для того, чтобы расширить возможности управления правами. Разберем небольшой пример, возьмем организацию в которой есть только один компьютер, у нас есть администраторы и пользователи.

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

Поэтому администраторы объединяются в группу admin, и ей дается доступ ко всему оборудованию, реально же ко всем файлам в каталоге dev, а пользователи, объеденные в группу users, и этой группе дается возможность читать и записывать файлы в общий каталог, с помощью которого они могут обмениваться результатами своей работы.

Мы могли бы назначать права для каждого пользователя отдельно разрешая ему доступ к тому или иному файлу, но это слишком неудобно. Поэтому и были придуманы группы. Говорите, да ничего, можно назначить? Ну а теперь представьте что наши пользователи – это процессы.

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

А теперь давайте рассмотрим как посмотреть группы linux.

Группы в Linux

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

vi /etc/group

Кроме стандартных root и users, здесь есть еще пару десятков групп. Это группы, созданные программами, для управления доступом этих программ к общим ресурсам.

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

Здесь можно считать, что пользователь – это одно и то же что процесс, потому что у процесса все полномочия пользователя, от которого он запущен.

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

  • daemon – от имени этой группы и пользователя daemon запускаютcя сервисы, которым необходима возможность записи файлов на диск.
  • sys – группа открывает доступ к исходникам ядра и файлам include сохраненным в системе
  • sync – позволяет выполнять команду /bin/sync
  • games – разрешает играм записывать свои файлы настроек и историю в определенную папку
  • man – позволяет добавлять страницы в директорию /var/cache/man
  • lp – позволяет использовать устройства параллельных портов
  • mail – позволяет записывать данные в почтовые ящики /var/mail/
  • proxy – используется прокси серверами, нет доступа записи файлов на диск
  • www-data – с этой группой запускается веб-сервер, она дает доступ на запись /var/www, где находятся файлы веб-документов
  • list – позволяет просматривать сообщения в /var/mail
  • nogroup – используется для процессов, которые не могут создавать файлов на жестком диске, а только читать, обычно применяется вместе с пользователем nobody.
  • adm – позволяет читать логи из директории /var/log
  • tty – все устройства /dev/vca разрешают доступ на чтение и запись пользователям из этой группы
  • disk – открывает доступ к жестким дискам /dev/sd* /dev/hd*, можно сказать, что это аналог рут доступа.
  • dialout – полный доступ к серийному порту
  • cdrom – доступ к CD-ROM
  • wheel – позволяет запускать утилиту sudo для повышения привилегий
  • audio – управление аудиодрайвером
  • src – полный доступ к исходникам в каталоге /usr/src/
  • shadow – разрешает чтение файла /etc/shadow
  • utmp – разрешает запись в файлы /var/log/utmp /var/log/wtmp
  • video – позволяет работать с видеодрайвером
  • plugdev – позволяет монтировать внешние устройства USB, CD и т д
  • staff – разрешает запись в папку /usr/local

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

Управление группами Linux

Управлять группами можно и с помощью графического интерфейса. В KDE есть программа Kuser специально предназначенная для этого, в Gnome это выполняется с помощью настроек системы.

Кроме того, в популярных дистрибутивах есть отдельные инструменты, такие как YaST в OpenSUSE или Настройки Ubuntu. Но с графическим интерфейсом я думаю вы разберетесь. А мы рассмотрим управление группами linux через терминал.

Сначала разберемся с файлами, а уже потом с пользователями.

При создании файла ему назначается основная группа пользователя который его создал. Это просто например:

ls -l ~/

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

ls -l /dev/

Здесь мы видим что дисковым устройствам sd* назначена группа disk, а это все значит, что пользователь, состоящий в этой группе, может получить к ним доступ. Или еще пример:

ls -l /var/log/

Все как мы рассматривали в предыдущем пункте. Но эти группы могут быть не только установлены системой, но и вы сами вручную можете менять группы файлов для этого есть команда chgrp:

chgrp имя_группы имя_файла

Например создадим файл test:

touch test

И изменим для него группу:

chgrp adm test

Теперь этот файл смогут прочитать все пользователи из группы adm.

Если вы хотите создать группу linux, это можно сделать командой newgrp:

sudo groupadd test

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

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

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

Управление группами Linux для пользователя выполняется с помощью команды usermod. Рассмотрим ее синтаксис и опции:

$ usermod опции имя_пользователя

  • -G – дополнительные группы, в которые нужно добавить пользователя
  • -g изменить основную группу для пользователя
  • -R удалить пользователя из группы.

Добавить пользователя в группу можно командой usermod:

sudo usermod -G -a имя_группы имя_пользователя

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

sudo newgrp имя_группы

Для примера давайте добавим нашего пользователя в группу disk, чтобы иметь прямой доступ к жестким дискам без команды sudo:

sudo usermod -G -a disk sergiy

Теперь вы можете монтировать диски без команды sudo:

mount /dev/sda1 /mnt

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

groups

Также можно использовать команду id. В первом случае мы просто видим список групп linux, во втором дополнительно указанны id группы и пользователя. Чтобы включить пользователя в группу Linux, для основной группы используется опция -g:

sudo usermod -g test sergiy

Теперь все каталоги в домашней папке пользователя имеют группу test. Удалить пользователя из группы в linux можно той же командой с опцией R:

sudo usermod -R группа пользователь

Ну и наконец, удалить группу Linux можно командой:

sudo delgroup имя_группы

Выводы

Источник: https://losst.ru/gruppy-polzovatelej-linux

Управление пользователями в Linux

Работа с пользователями и группами в Linux

В своих прошлых постах блога я уже затрагивал тему пользователей в операционной системе Linux.

Например в теме о правах доступа в Linux я затрагивал вопросы принадлежности пользователя к группе, а так же то, что пользователи и группы имеют свои UID и GID. Так же поднималась тема о сбросе пароля пользователя root.

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

Linux – это многопользовательская операционная система. Каждый пользователь в Linux принадлежит одной основной группе и одной или нескольким дополнительным группам.

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

Данные манипуляции производятся с помощью команд: useradd, groupadd, userdel, groupdel, usermod, groupmod, а так же passwd, gpasswd, id. Более подробно: Описание команд управления пользователями Linux.

Существуют так же и графические средства администрирования пользователями, обычно они расположены в оболочке X в разделе Администрирование – Пользователи и группы.

Особенности управления пользователями в Linux

Пример добавления пользователя с помощью шелла:

user-add-server:~# groupadd test user-add-server:~# useradd -c “Test Test” -g test -m test user-add-server:~# passwd test Введите новый пароль UNIX: Повторите ввод нового пароля UNIX: passwd: пароль успешно обновлён user-add-server:~# id test uid=1001(test) gid=1001(test) группы=1001(test) user-add-server:~# ls -ld /home/test/ drwxr-xr-x 2 test test 4096 Дек 16 10:24 /home/test/ user-add-server:~#

В примере мы добавляем группу для нового пользователя (groupadd), далее создаем нового пользователя с полным именем Test Test, имеющего основную группу test и логин test, далее задаем пароль для пользователя test (passwd test) и проверяем параметры созданного пользователя (id и созданный каталог пользователя /home/test/). В листинге видно, что UID и GID – более 1000. Данная особенность является признаком обычного пользователя. Значения ниже (меньше) 1000 (а в некоторых дистрибутивах – меньше 500) указывают на то, что пользователь является системным пользователем.

В соответствии с соглашением, системные пользователи обычно имеют id меньше, чем 100, а пользователь root имеет id, равный 0. Автоматическая нумерация обычных пользователей начинается со значения UID_MIN, установленного в файле /etc/login.defs, это значение обычно установлено в 500 или 1000.

Помимо учетных записей обычных пользователей и учетной записи пользователя root, обычно в системе бывает несколько учетных записей специального назначения для демонов, таких как FTP, SSH, mail, news и т.д.

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

Поэтому обычно они имеют login shell, определенный как /sbin/nologin или /bin/false, чтобы попытки зарегистрироваться в системе терпели неудачу.

В некоторых системах, команда(ы) добавления пользователей имеют расширенный функционал. То есть, для примера, команда useradd в дистрибутивах Fedora и Red Hat по умолчанию, для нового пользователя создает новую группу и для отмены данной функции, необходимо использовать опцию -n. Для уточнения таких вопросов, необходимо обратиться к документации дистрибутива.

При удалении пользователя, его каталог не удаляется. В результате можно получить интересную ситуацию:

user-add-server:~# userdel test user-add-server:~# groupdel test user-add-server:~# ls -ld /home/test/ drwxr-xr-x 2 1001 1001 4096 Дек 16 10:24 /home/test/ user-add-server:~# groupadd test123 user-add-server:~# useradd -c “Test Test” -g test123 -m test123 user-add-server:~# ls -ldn /home/test* drwxr-xr-x 2 1001 1001 4096 Дек 16 14:30 /home/test drwxr-xr-x 2 1001 1001 4096 Дек 16 14:29 /home/test123 user-add-server:~# ls -ld /home/test* user-add-server:~# ls -ld /home/test* drwxr-xr-x 2 test123 test123 4096 Дек 16 10:24 /home/test drwxr-xr-x 2 test123 test123 4096 Дек 16 14:25 /home/test123 user-add-server:~# passwd test123 Введите новый пароль UNIX: Повторите ввод нового пароля UNIX: passwd: пароль успешно обновлён user-add-server:~# su -l test123 test123@user-add-server:~$ pwd /home/test123 test123@user-add-server:/home/mc-sim$ ls /home/ mc-sim  test  test123 test123@user-add-server:~$ cd /home/mc-sim/ test123@user-add-server:/home/mc-sim$ ls -la итого 24 drwxr-xr-x 2 mc-sim mc-sim 4096 Ноя 15 12:31 . drwxr-xr-x 6 root   root   4096 Дек 16 14:25 .. -rw——- 1 mc-sim mc-sim   99 Ноя 15 13:45 .bash_history -rw-r–r– 1 mc-sim mc-sim  220 Окт  1 17:42 .bash_logout -rw-r–r– 1 mc-sim mc-sim 3116 Окт  1 17:42 .bashrc -rw-r–r– 1 mc-sim mc-sim  675 Окт  1 17:42 .profile test123@user-add-server:/home/mc-sim$ rm /home/mc-sim/.bash_logout rm: удалить защищенный от записи обычный файл `/home/mc-sim/.bash_logout'? y rm: невозможно удалить `/home/mc-sim/.bash_logout': Отказано в доступе test123@user-add-server:/home/mc-sim$ rm /home/test/.bashrc test123@user-add-server:/home/mc-sim$

В приведенном примере мы удаляем пользователя и группу test, созданную ранее. При этом каталог данного пользователя остался не тронутым. Как видно из листинга, права у каталога остались для id 1001.

Далее мы создаем нового пользователя и группу, но уже с другим именем – test123. Данному пользователю присваивается UID и GID – ранее существующего пользователя test.

Посмотрев  список каталогов, начинающиеся на /home/test* с ключом -n и без него, видим, что получилось – каталог пользователя test стал принадлежать пользователю test123, о чем нам говорят права доступа -rw-r–r– test123 test123.

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

Управление базами данных пользователей и групп в Linux

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

/etc/passwd

файл паролей, содержащий основную информацию о пользователях

/etc/shadow

файл теневых шифрованных паролей, содержащий зашифрованные пароли

/etc/group

файл групп, содержащий основную информацию о группах и принадлежащих этим группам пользователях

/etc/gshadow

файл теневых групп, содержащий шифрованные пароли групп

Данные файлы редактировать обычным текстовым редактором крайне не рекомендуется. Они (файлы), обновляются при выполнении вышеуказанных команд, при этом при изменении – блокируются и синхронизируются.

Если все же есть острая необходимость в редактировании указанный файлов, то при помощи команды vipw можно безопасно редактировать файл /etc/passwd, а при помощи команды vigr безопасно редактировать файл /etc/group. Эти команды заблокируют необходимые файлы на то время, пока при помощи редактора vi будут производиться изменения.

Если вы вносите изменения в файл /etc/passwd, команда vipw подскажет, что необходимо проверить, не нужно ли обновить и файл /etc/shadow. Подобным образом, если вы обновляете файл /etc/group при помощи команды vigr, вы получите подсказку, что необходимо обновить и файл /etc/gshadow.

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

Обращаю внимание, что в современных системах, файлы passwd и group не хранят пароли в открытом виде. Это сделано из соображений безопасности. Сами файлы passwd и group должны быть доступными для чтения для всех, а зашифрованные пароли — недоступными для чтения для всех.

Поэтому зашифрованные пароли хранятся в теневых файлах, и эти файлы доступны для чтения только пользователю root.

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

Файл /etc/passwd

user-add-server:~# cat /etc/passwd root:x:0:0:root:/root:/bin/bash lp:x:7:7:lp:/var/spool/lpd:/bin/sh sshd:x:101:65534::/var/run/sshd:/usr/sbin/nologin test123:x:1001:1001:Test Test:/home/test123:/bin/sh

Файл /etc/passwd содержит одну строку для каждого пользователя системы. Каждая строка содержит семь полей, разделенных двоеточиями (:), описание полей на примере пользователя root:

полезначениеописание
Имя пользователяrootимя, используемое для входа в систему (логин)
Парольxпароль пользователя (если зашифрован, используется символ – x)
id пользователя (UID)0Идентификатор пользователя
id группы (GID)0Идентификатор группы

Источник: http://www.k-max.name/linux/upravlenie-polzovatelyami-v-linux/

Фундаментальные основы Linux. Часть VII. Управление локальными учетными записями пользователей

Работа с пользователями и группами в Linux

Библиотека сайта rus-linux.net

Оригинал: Linux Fundamentals Paul Cobbaut 16 октября 2014 г.Перевод: А.Панин

Дата перевода: 23 декабря 2014 г.

Глава 29. Группы пользователей

Учетные записи пользователей системы могут объединяться в рамках групп. Концепция групп пользователей позволяет устанавливать права доступа на уровне групп пользователей вместо установки аналогичных прав доступа для каждого отдельного пользователя.

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

Более опытные пользователи могут использовать инструменты с интерфейсом командной строки для управления учетными записями пользователей, проявляя при этом осторожность: некоторые дистрибутивы не позволяют работать одновременно с инструментами для управления группами пользователей с графическим интерфейсом и интерфейсом командной строки (примером может служить инструмент YaST из состава дистрибутива Novell Suse). Опытные системные администраторы могут осуществлять непосредственное редактирование соответствующих файлов с помощью текстового редактора vi или утилиты vigr.

Утилита groupadd

Группы пользователей могут создаваться с помощью утилиты groupadd. В примере ниже показана методика создания пяти групп (без добавления в них пользователей).root@laika:~# groupadd tennisroot@laika:~# groupadd footballroot@laika:~# groupadd snookerroot@laika:~# groupadd formula1root@laika:~# groupadd salsa

Файл group

Пользователи могут состоять в нескольких группах. Членство пользователей в группах описывается в файле /etc/group.

root@laika:~# tail -5 /etc/grouptennis:x:1006:football:x:1007:snooker:x:1008:formula1:x:1009:salsa:x:1010:root@laika:~#

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

В третьем поле размещается идентификатор группы или значение GID. Четвертое поле является списком членов группы, который в данном случае является пустым, так как в группах нет пользователей.

Команда groups

Пользователь может выполнить команду groups для ознакомления со списком групп, в которых он состоит.[harry@RHEL4b ~]$ groupsharry sports[harry@RHEL4b ~]$

Утилита usermod

Членство пользователя в группах может быть изменено с помощью утилиты useradd или usermod.

root@laika:~# usermod -a -G tennis ingeroot@laika:~# usermod -a -G tennis katrienroot@laika:~# usermod -a -G salsa katrienroot@laika:~# usermod -a -G snooker sandraroot@laika:~# usermod -a -G formula1 anneliesroot@laika:~# tail -5 /etc/grouptennis:x:1006:inge,katrienfootball:x:1007:snooker:x:1008:sandraformula1:x:1009:anneliessalsa:x:1010:katrienroot@laika:~#

Проявляйте осторожность при использовании утилиты usermod для добавления пользователей в группы. По умолчанию утилита usermod будет удалять пользователя из всех групп, в которых он состоял, если имена данных групп не были переданы в составе команды! Использование параметра -a (append – дополнение) позволяет избежать данного поведения.

Утилита groupmod

Вы можете изменить имя группы пользователей с помощью утилиты groupmod.root@laika:~# groupmod -n darts snooker root@laika:~# tail -5 /etc/grouptennis:x:1006:inge,katrienfootball:x:1007:formula1:x:1009:anneliessalsa:x:1010:katriendarts:x:1008:sandra

Утилита groupdel

Вы можете навсегда удалить группу пользователей с помощью утилиты groupdel.root@laika:~# groupdel tennisroot@laika:~#

Утилита gpasswd

Также вы можете делегировать функции контроля над членством в определенной группе пользователей другому пользователю с помощью утилиты gpasswd. В примере ниже мы делегируем права на добавление пользователей в группу sports и удаление их из нее пользователю serena.

После этого мы используем команду su для добавления пользователя harry в группу sports от лица пользователя serena.

[root@RHEL4b ~]# gpasswd -A serena sports[root@RHEL4b ~]# su – serena[serena@RHEL4b ~]$ id harryuid=516(harry) gid=520(harry) группы=520(harry)[serena@RHEL4b ~]$ gpasswd -a harry sportsДобавление пользователя harry в группу sports[serena@RHEL4b ~]$ id harryuid=516(harry) gid=520(harry) группы=520(harry),522(sports)[serena@RHEL4b ~]$ tail -1 /etc/groupsports:x:522:serena,venus,harry[serena@RHEL4b ~]$ Администраторы групп пользователей не обязаны быть членами этих групп. Они могут удалить свои учетные записи из администрируемых ими групп пользователей и это никак не повлияет на их возможности добавления пользователей в эти группы или удаления пользователей из них.[serena@RHEL4b ~]$ gpasswd -d serena sportsУдаление пользователя serena из группы sports[serena@RHEL4b ~]$ exit Информация об администраторах групп пользователей хранится в файле /etc/gshadow.[root@RHEL4b ~]# tail -1 /etc/gshadowsports:!:serena:venus,harry[root@RHEL4b ~]# Для удаления всех учетных записей администраторов из группы пользователей следует использовать утилиту gpasswd с параметрами для задания пустого списка администраторов.[root@RHEL4b ~]# gpasswd -A “” sports

Утилита newgrp

Вы можете запустить дочернюю командную оболочку с новой временной основной группой пользователя, воспользовавшись командой newgrp.root@rhel65:~# mkdir prigrouproot@rhel65:~# cd prigroup/root@rhel65:~/prigroup# touch standard.txtroot@rhel65:~/prigroup# ls -lитого 0-rw-r–r–. 1 root root 0 апр 13 17:49 standard.

txtroot@rhel65:~/prigroup# echo $SHLVL1root@rhel65:~/prigroup# newgrp tennisroot@rhel65:~/prigroup# echo $SHLVL2root@rhel65:~/prigroup# touch newgrp.txtroot@rhel65:~/prigroup# ls -lитого 0-rw-r–r–. 1 root tennis 0 апр 13 17:49 newgrp.txt-rw-r–r–. 1 root root 0 апр 13 17:49 standard.

txtroot@rhel65:~/prigroup# exitexitroot@rhel65:~/prigroup#

Утилита vigr

По аналогии с утилитой vipw, утилита vigr может использоваться для редактирования файла /etc/group в ручном режиме, так как она осуществляет корректную блокировку этого файла в процессе редактирования. Текстовый редактор vi или утилита vigr может использоваться для управления группами пользователей исключительно опытными системными администраторами.

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

1. Создайте группы пользователей tennis, football и sports.

2. С помощью одной команды сделайте пользователя venus членом групп tennis и sports.

3. Переименуйте группу пользователей fotball в foot.

4. Используйте текстовый редактор vi для добавления пользователя serena в группу пользователей tennis.

5. Используйте команду id для того, чтобы убедиться, что пользователь serena состоит в группе пользователей tennis.

6. Сделайте кого-либо из пользователей ответственным за управление членством пользователей в группах foot и sports. Проверьте работоспособность использованного механизма.

Корректная процедура выполнения практического задания: группы пользователей

1. Создайте группы пользователей tennis, football и sports.

groupadd tennis ; groupadd football ; groupadd sports

2. С помощью одной команды сделайте пользователя venus членом групп tennis и sports.

usermod -a -G tennis,sports venus

3. Переименуйте группу пользователей fotball в foot.

groupmod -n foot football

4. Используйте текстовый редактор vi для добавления пользователя serena в группу пользователей tennis.

5. Используйте команду id для того, чтобы убедиться, что пользователь serena состоит в группе пользователей tennis.

id (после выхода из системы и входа в нее пользователь serena должен быть членом группы)

6. Сделайте кого-либо из пользователей ответственным за управление членством пользователей в группах foot и sports. Проверьте работоспособность использованного механизма.

gpasswd -A (для того, чтобы сделать пользователя ответственным за управление членством в группе пользователей)gpasswd -a (для того, чтобы сделать пользователя членом группы пользователей)

Если вам понравилась статья, поделитесь ею с друзьями:

Источник: http://rus-linux.net/MyLDP/BOOKS/Linux_Foundations/29/ch29.html

Поделиться:
Нет комментариев

    Добавить комментарий

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.