Centos 7 посмотреть пользователей

Обновлено: 02.07.2024

/boot — файлы загрузчика

Cодержит ядро и другие файлы, используемые при загрузке системы.

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

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

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

/home — домашние директории пользователей

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

/lib (library) — системные библиотеки

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

Библиотеки имеют имена файлов с расширением *.so и начинаются с префикса lib*. Например, libncurses.so.5.7. Папка /lib64 в 64 битных системах содержит 64 битные версии библиотек из /lib.

/media — съёмные носители

В этот каталог система монтирует все подключаемые внешние накопители — флешки, оптические диски и другие носители информации.

/mnt (mount) — точки монтирования

В этот каталог могут быть смонтированы внешние или дополнительные файловые системы.

/opt (optional applications) — дополнительные приложения

В эту папку устанавливаются проприетарные программы, игры или драйверы.

/proc (process) — информация о процессах

Содержит информацию о запущенных процессах, обновляемую в реальном времени. Также там есть информация об использовании системных ресурсов (/proc/cpuinfo, /proc/meminfo, /proc/uptime).

/run — процессы

Еще один каталог, содержащий PID файлы процессов, похожий на /var/run, но в отличие от него, он размещен в TMPFS, а поэтому после перезагрузки все файлы теряются.

/srv (server) — сервер

В этом каталоге содержатся файлы серверов и сервисов. Например, могут содержаться файлы веб-сервера apache.

/sys (system) — информация о системе

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

/tmp (temp) — временные файлы

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

/usr — (user applications) программы пользователя

/usr/bin — исполняемые файлы

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

/usr/lib— библиотеки

Содержит библиотеки для программ из /usr/bin или /usr/sbin.

/usr/local — пользовательские программы, библиотеки и настройки

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

/usr/sbin — системные исполняемые файлы

Содержит двоичные файлы программ для системного администрирования, которые нужно выполнять с правами суперпользователя. Например, таких как Gparted, sshd, useradd, userdel и т д.

/var (variable) — изменяемые файлы

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

Содержит большинство логов всех установленных в операционной системе программ.

/var/lib — базы данных

Содержит файлы баз данных, пакеты и т.п.

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

/var/run — PID процессов

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

Пользователи и группы

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

Учетные записи пользователей, как и большинство другой информации о конфигурации системы UNIX, по традиции, представлена в виде текстовых файлов: /etc/passwd, /etc/group и /etc/shadow (в системах с теневым хранением паролей).

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

В современных дистрибутивах Linux вместо root аккаунта для администрирования как правило используется утилита sudo (substitute user and do), позволяющая выполнить команду от лица пользователя root.

Все настройки sudo находятся в файле /etc/sudoers. Здесь можно настроить очень много параметров, начиная от кому будет позволено выполнять команды от имени суперпользователя и заканчивая ограничением набора доступных команд. Неправильный синтаксис, добавленный в этот файл, может полностью нарушить распределение прав между пользователями. Потому для работы с этим файлом используется утилита visudo, которая открывает файл в обычном текстовом редакторе, но во время сохранения файла проверяет его синтаксис. Это позволяет избежать ошибок в конфигурации.

Работа с файловой системой: навигация, создание-перемещение-удаление файлов, ссылки

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

В ОС Linux существует два вида ссылок.

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

Жесткие ссылки могут быть только на файлы, не на директории. Также нельзя создать жесткую ссылку на файл в другой файловой системе (у каждой ФС свой набор инодов).

Управление процессами и потоками, отправка сигналов, kill

Каждому процессу в системе назначаются числовые идентификаторы PID (Process Identifier) в диапазоне от 1 до 65535 и идентификаторы родительского процесса PPID (Parent Process Identifier).

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

SSH и передача файлов

SSH (Secure Shell) — защищенный протокол для удаленного доступа к компьютерам. В *nix-подобных системах (Linux, macOS) ssh-клиент обычно установлен по умолчанию и подключаться можно напрямую из терминала. Для подключения нужно указать адрес сервера и, опционально, имя пользователя и порт.

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

Для создания ключей необходимо выполнить команду:

Опционально можно ввести passphrase.

Будут созданы два файла:

/.ssh/id_rsa — приватный ключ. Его нельзя никому передавать.

/.ssh/id_rsa.pub — публичный ключ. Можно спокойно распространять.

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

/.ssh/authorized_keys содержимое публичного ключа.

Для более удобной работы с ключами можно добавить ключ к ssh-агенту. После этого для него больше не будет спрашиваться passphrase (если был задан) и не нужно будет вводить ключ вручную — он будет автоматически использован при соответствующем подключении.

ssh-agent привязан к сессии. Поэтому, например, если перезагрузить компьютер, то ключи нужно будет добавлять в агент заново.

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

Перенаправление ввода/вывода

Можно организовать конвейер (pipe) выполняемых команд.

Работа с текстовыми файлами, find и grep

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

Для вызова справки внутри утилиты воспользуйтесь клавишей h.

Поиск внутри утилиты:

В режиме поиска:

Отображение последних 10 строк файла:

По умолчанию tail выводит именно 10 последних строк.

Find — команда для поиска файлов и каталогов на основе специальных условий.

Информация о размерах файлов и директорий, свободном пространстве

Для того, чтобы получить информацию о доступном в системе пространстве, можно использовать утилиту df (disk free):

Для оценки занимаемого файлом или директорией дискового пространства используется утилита du (disk usage):

Переменные окружения

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

Конфигурационные файлы переменных окружения:

Команды для работы с переменными окружения:

Работа с сетью

Основные команды для работы с сетью:

Адаптер lo (loopback) в выводе ifconfig используется системой для обращения к самой себе.

Работа со службами

В RHEL7 для управления службами в операционной системе используется утилита systemd, приносящая концепцию юнитов.

Юниты находятся в конфигурационных файлах, расположенных в директориях (указаны по возрастанию приоритета):

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

Типы юнитов systemd:

  • .service – системный сервис,
  • .target — группа юнитов systemd,
  • .automount – точка автомонтирования файловой системы,
  • .device – файл устройства, распознанного ядром,
  • .mount – точка монтирования файловой системы,
  • .path – файл или директория в файловой системе,
  • .scope – процесс, созданный извне,
  • .slice – группа иерархически организованных юнитов, управляющая системными процессами,
  • .snapshot – сохраненное состояние менеджера systemd,
  • .socket – сокет межпроцессного взаимодействия,
  • .swap – свап-устройство или свап-файл (файл подкачки),
  • .timer – таймер systemd.

Основные команды для работы со службами:

Менеджер пакетов YUM

Если текущим пользователем является root, для создания нового пользователя введите команду:

Если же текущим является пользователь с привилегиями sudo (об этом – в следующем разделе), запустите следующую команду, которая создаст новую учетную запись:

Затем нужно установить пароль для нового пользователя. Для этого используйте команду passwd .

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

Пароль нужно будет ввести дважды (второй раз для подтверждения).

Ну что, пользователь создан, теперь мы можем выйти из системы. Тем не менее, это не все. Зачастую данных действий недостаточно, ведь хоть пользователь нам нужен был и обычный, но все же, с возможностью администрирования системы (установка/удаление программ, настройка CentOS 7), а это означает, что нам нужно разрешение использования sudo .

Пароль нужно будет ввести повторно, чтобы подтвердить его. Готово! Теперь новая учетная запись пользователя настроена и готова к использованию.

2. Передача привилегий sudo.

Если новому пользователю нужно иметь возможность выполнять команды с правами root, нужно предоставить ему доступ к sudo .

Для этого нужно добавить пользователя в группу wheel (все пользователи, помещенные в эту группу, могут пользоваться sudo ) с помощью команды gpasswd . Это самый безопасный и простой способ управления правами sudo .

Итак, если текущим является root, введите:


Если текущим является пользователь с привилегиями sudo:

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

Для этого нужно просто начинать команду с sudo :

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


3. Управление пользователями с привилегиями sudo.

Команда gpasswd позволяет добавлять пользователей в группу (например, wheel ) и удалять их из группы, но при этом команда не показывает, какие пользователи состоят в группе. Чтобы узнать, какие пользователи состоят в группе wheel , используйте функцию lid . Как правило, lid используется для того чтобы просмотреть группы, в которых состоит определенный пользователь, но флаг -g способен обратить действие команды, и тогда она покажет, какие пользователи состоят в определенной группе.


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

4. Команда смены пользователя.

Чтобы начать работать от имени пользователя username в CentOS 7 просто наберите в терминале команду:

Если просто зайти в его учетную запись, то:

и нажмите клавишу Enter.

5. Как перейти в учетную запись root?

Можно войти вот так:

6. Как принудить пользователя изменить пароль при регистрации?

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

После этого, при попытке регистрации пользователя в системе, в том числе и по ssh, он будет получать предупреждение: «Срок действия вашего пароля истек. Вы должны изменить ваш пароль и войти заново».


7. Удаление пользователей.

Чтобы удалить пользователей с помощью команды userdel , необходимо войти в систему как пользователь root или пользователь с доступом sudo .

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

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

При вызове команда userdel читает содержимое файла /etc/login.defs . Свойства, определенные в этом файле, переопределяют поведение по умолчанию команды userdel . Если USERGROUPS_ENAB установлено на значение yes в этом файле, userdel удалит группу с тем же именем пользователя, только если никакой другой пользователь не является членом этой группы.

Команда удалит записи пользователей из файлов /etc/passwd и /etc/shadow .

При удалении учетной записи пользователя с помощью команды userdel домашний каталог и каталоги почтового спула не удаляются.

Используйте параметр -r ( –remove ), чтобы заставить userdel удалить домашний каталог пользователя и почтовую папку:

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

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

Обе вышеприведенные команды удаляют пользователя изо всех групп, в которых он состоял (например, из группы wheel ). Если в будущем в системе появится пользователь с таким же именем, его нужно будет повторно добавить в группу wheel , чтобы предоставить ему привилегии sudo .

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

Если пользователь, которого вы хотите удалить, все еще вошел в систему, или если запущены процессы, принадлежащие этому пользователю, команда userdel не позволит вам удалить пользователя.

В этой ситуации рекомендуется выйти из системы и завершить все запущенные процессы пользователя с помощью команды killall :

После этого вы сможете удалить пользователя.

Другой вариант – это использовать флаг -f ( –force ), который принудительно удалит учетную запись пользователя, даже если пользователь все еще вошел в систему или если запущены процессы, принадлежащие этому пользователю.

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

Команда w примечательна тем, что это самая короткая команда в CentOS 7.

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

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


9. Некоторые операции с id пользователей.


9.2. Первым выводится именно id пользователя. Если вам нужно узнать информацию о другом пользователе, вы можете передать его имя в параметры утилиты:


9.3. Когда необходимо вывести только id пользователя:


9.4. Если вам надо узнать только id группы определенного пользователя, то используйте опцию -g :


9.5. Есть ещё несколько способов посмотреть id . Например, для текущего пользователя его можно найти в переменной окружения UID:



9.7. Или смотрим содержимое файла /etc/passwd с помощью команды grep :


9.8. Бывает нужно узнать группы пользователя.

Это делается командой:

Если не вводить имя пользователя, то подставится имя текущего пользователя.

Favorite

Добавить в избранное

Главное меню » Операционная система Linux » 3 способа составить список пользователей в Linux

(4 оценок, среднее: 3,00 из 5)

3 способа составить список пользователей в Linux

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

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

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

Список всех пользователей в Linux

Наверное, самое первое, что нужно знать, это как узнать, какие пользователи в моей системе. Есть несколько способов получить список пользователей в Linux.

1. Показать пользователей в Linux, используя less /etc/passwd

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

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

Почему так много пользователей? Какие являются «Реальными»?

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

Теперь, если вы хотите отличить обычных пользователей от системных пользователей, вы можете обратиться к номеру идентификатора пользователя (UID).

В общем-то обычный пользователь имеет UID, больший или равный 1000. Это дает вам подсказку, что пользователь с UID> = 1000 является обычным пользователем, а пользователи с UID <1000 являются системными пользователями.

2. Просмотр пользователей с помощью getent passwd

Эта команда выдаст вам вывод, похожий на пароль less /etc/ . Однако этот запрос фактически запрашивает файл конфигурации функциональности коммутатора службы имен GNU (находится в /etc/nsswitch.conf ).

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

Читать Как исключить файлы и каталоги с помощью Rsync в Linux

3. Список пользователей Linux с compgen

Если вы просто хотите перечислить все имена пользователей без какой-либо дополнительной информации, вы можете использовать команду compgen с опцией -u.

Вывод будет выглядеть так:

Вы можете использовать командe сompgen с параметром -c, чтобы вывести список всех доступных вам команд. Это полезно, когда вы не являетесь администратором системы Linux и не имеете доступа sudo.

Несколько советов о перечислении пользователей в Linux

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

Список только имен пользователей

У вас уже есть команда compgen для этого, но вы не должны помнить это все время.

Если мы хотим получить только список имен пользователей в системе, вы можете использовать команду awk или команду cut для фильтрации вывода двух других команд, которые мы видели ранее.

Любой из них даст нам отфильтрованный список пользователей, показывая только самый первый столбец с именем пользователя:

Проверьте, существует ли имя пользователя в системе

Это может быть полезно, если вы хотите знать, существует ли конкретное имя пользователя в системе:

getent passwd | grep maxdie

Список всех подключенных пользователей

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

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

В самом первом столбце будет указано, какое это имя пользователя.

Читать Сеанс сохранения экрана GNU при перезагрузке

Завершение

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

Надеюсь, вам понравилась эта статья. Если у вас есть какие-либо вопросы или предложения, пожалуйста, сообщите нам об этом в комментариях

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Мы уже много раз на этом сайте говорили про группы пользователей в Linux. Это основной и очень удобный способ управления полномочиями пользователей и процессов в этой операционной системе. Список групп, мы знаем, как посмотреть, а что, если нужно узнать, какие пользователи имеют доступ к ресурсам одной из групп?

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

Список пользователей группы в Linux

1. Файл /etc/group

Все группы, созданные в ОС Linux собраны в файле /etc/group. Синтаксис записи группы в этом файле следующий:

имя_группы :x: идентификатор : список_пользователей

  • имя_группы - имя, которое используется для управления группой и отображается в выводе команд;
  • x - заглушка для пароля;
  • идентификатор - уникальный идентификатор группы;
  • список_пользователей - все пользователи, которые входят в группу, разделённые запятой.

Таким образом, вы можете посмотреть список пользователей, просто отыскав группу в файле:

Или также можно воспользоваться регулярным выражением grep:

cat /etc/group | grep group7

Например, здесь в группу group7 входит только пользователь sergiy. А вот в группу adm входит sergiy и syslog:

2. Команда members

Следующий способ посмотреть пользователей группы - команда members, в Ubuntu она поставляется по умолчанию. Если в вашем дистрибутиве её нет, то вы можете установить её из официальных репозиториев:

sudo apt install members

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

$ members опции имя_группы

В качестве пользователей можно передать:

  • --all - все пользователи группы;
  • --primary - только те пользователи, для которых эта группа является основной;
  • --secondary - только те пользователи, для которых эта группа является дополнительной;
  • two-lines - отобразить пользователей, для которых данная группа является основной и тех для кого она установлена в качестве дополнительной.

Например, посмотрим пользователей группы adm:

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

members --primary adm

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

members --secondary adm

3. Команда lid

Команда lid тоже может отображать информацию о группах. Но перед тем, как вы сможете её использовать, её надо установить. Утилита входит в пакет libuser. В Ubuntu команда выглядит так:

sudo apt install libuser

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

sudo libuser-lid -g adm

Опция -g обязательна. Если её не передать, утилита покажет список групп текущего пользователя. Если не передать имя группы, то утилита покажет список пользователей основной группы текущего пользователя.

Выводы

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


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

Оцените статью:

(4 оценок, среднее: 5,00 из 5)

Об авторе

4 комментария

Если уж пользовать grep, то во-первых, совершенно не обязательно отдавать поток cat-ом, потому что grep сам умеет читать текстовые файлы, и во-вторых, в регулярном выражении grep перед именем группы ставьте "морковку", тогда выхлоп будет более оптимальным.

grep ^group_name /etc/group

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

В силу моей деятельности я часто встречаюсь со случаями, когда пользователи (конкретно -- разработчики устройств на микроконтроллерах) не могут подключить какой своё устройство или программатор к компу. Нужно-то всего ничего!

Нужно узнать, какую группу образует порт устройства и добавить пользователя (разработчика) в эту группу.

Группу порта устройства можно узнать командой ls. Например, у нас есть железка на базе какого-нибудь микроконтроллера, которая подключается к компу посредством USB-порте. В железке используется микросхема конвертера USB/UART (типа FT232RL, CH340G, CP2103, . ) Всё вроде бы хорошо, но комповая программа не хочет соединяться с железкой. Тогда выполняем команду:

$ ls -al /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 окт 30 15:13 /dev/ttyUSB0

Здесь мы видим, что владельцем устройства является root, но устройство также входит в группу dialout. Теперь, чтобы получить доступ к устройству, нам (пользователю) нужно тоже входить в эту же группу. Выполняем команду:

Затем заново входим в систему и с устройством можно работать.

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

Читайте также: