Как посмотреть список пользователей linux

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

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

Для создания полноценного пользователя Linux нужно выполнить несколько относительно независимых действий:

  • создать запись в , где присвоить учётной записи уникальное имя, UID и пр.;
  • создать домашний каталог пользователя, обеспечить пользователю доступ к его домашнему каталогу (сделать его владельцем каталога);
  • поместить в домашний каталог стандартное наполнение (обычно конфигурационные файлы), взятое из ;
  • модифицировать системные конфигурационные файлы, в частности, создать хранилище для приходящей почты для данного пользователя ().

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

root@tacit ~# useradd test
root@tacit ~# passwd test
passwd: updating all authentication tokens for user test.

You can now choose the new password or passphrase.

. . .

Enter new password: 

Пример 3. Создание пользователя

Сначала добавляет учётную запись (имя пользователя — единственный параметр, в нашем примере — ), заполняя её значениями по умолчанию и проводя все необходимые изменения в системе. С помощью дополнительных параметров при вызове можно явно указать значение для того или иного поля учётной записи, также эта утилита позволяет модифицировать параметры создания пользователей по умолчанию. Подробности можно найти в руководстве . Утилита , вызванная с правами суперпользователя, позволяет назначить данному пользователю любой пароль. При этом сведения о предшествующем пароле данного пользователя (если таковой был), будут полностью утрачены. , вызванная обычным пользователем (без параметров), позволяет ему сменить свой собственный пароль, но для этого потребуется ввести текущий пароль пользователя.

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

Обратите внимание, что в ALT Linux пользователь имеет право редактировать собственную учётную запись только в том случае, если установлен соответствующий режим доступа: команда должна возвращать , аналогично. Установить нужный доступ может суперпользователь командой (аналогично для )

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

Это может оказаться важным, например, в такой ситуации: учётную запись пользователя с именем test удалили из системы, а потом добавили снова. Однако с точки зрения системы это уже другой пользователь, потому что у него другой UID.

Обычно Linux выдаёт нормальным пользователям UID, начиная с “” или “”.

Как правило, численное значение GID в этом случае совпадает со значением UID.

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

Модифицирование первичной группы пользователя в Linux

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

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

usermod -g groupname username

Обратите внимание на -g здесь. При использовании маленькой буквы g вы назначаете основную группу

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

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

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

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

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

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

или

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

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

Это вывод:

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

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

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

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

Во втором столбце будет указано, к какому типу соединения это относится: если оно обозначено знаком «: X», где X — число, это означает, что используется графический интерфейс пользователя (GUI) или сеанс рабочего стола, например Gnome, XDE и т. д. ; если терминал отображает «pts/X», где X — число, это означает, что это соединение, установленное по протоколу SSH (командная строка).

В третьем столбце будет указано, с каких пор этот сеанс был подключен к серверу (дата и время). В четвертом и последнем столбце будет указано место, откуда он подключен. Если удаленно, будет отображаться IP-адрес, с которого установлено соединение, если локально (например, GUI), будет отображаться «(: X)», где X — это число сеанс в этом случае и будет соответствовать число во втором столбце для этой строки.

Итог

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

Через файлы

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

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

Рядовой пользователь здесь сможет выбрать любое приложение и запустить. Однако, если у него появится желание что-либо удалить, то ничего не выйдет. Чтобы навсегда удалить приложение из Nautilus’а, нужны права администратора (root или sudo — наиболее распространенный утилит, убирающий недостатки базовой системы), дающие определенные, устанавливаемые самим пользователем привилегии. Для этого нужно изначально открыть файловый менеджер с установленными правами администратора. Это возможно, есть ввести в терминале следующую команду:

sudo nautilus /usr/share/applications

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

Как использовать getent для списка пользователей

Другая команда, getent, гораздо полезнее. Он отображает записи из любая настроенная база данных в файле /etc/nsswitch.conf вашего сервера. Одним из них является база данных passwd. Чтобы использовать getent для отображения списка всех пользователей Linux, это работает следующим образом:

получить пароль

Вывод выглядит точно так же, как при использовании команды less, но содержит список всех пользователей LDAP в системе Linux. Еще раз, наши команды awk и cut могут помочь увидеть только первое поле, имена пользователей.

Если вы хотите проверить, существует ли конкретный пользователь в системе Linux, getent упрощает эту задачу:

Джефф

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

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

получить пароль | туалет -л

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

Что делать, если забыл пароль в Ubuntu

Здесь можно воспользоваться двумя методами. Первый возможен, если в системе заведены другие пользователи, обладающие правом использовать утилиту sudo, и к которому имеется доступ. Для этого необходимо авторизоваться под данным аккаунтом и задать новый код пользователя Linux с помощью команды:

Программа запросит новый шифр авторизации и его подтверждение.

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

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

В Ubuntu зарегистрированными в системе пользователями можно управлять с помощью параметров системы. Откройте утилиту и выберите в самом низу пункт Учетные записи. Здесь уже не будут отображаться системные пользователи. В панели слева — непосредственно сам список, а справа можно изменить данные и настройки:

Для KDE есть более интересная утилита управления пользователями — KUser:

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

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

Как задать пароль root в Ubuntu

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

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

Чтобы задать код root на Ubuntu в терминал необходимо ввести:

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

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

Здесь нужно выбрать «Дополнительные параметры для Ubuntu». Следующим шагом будет выбор своей ОС, для которой в скобках указан режим восстановления.

Далее требуется перейти в раздел root – «Командный интерпретатор суперпользователя». Изначально корневая файловая система доступна только для чтения. А так как планируется внести в нее изменения, нужно изменить разрешения. Для перевода файловой системы в режим записи в командной строке снизу вводится следующая команда:

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

Здесь username – имя учетной записи root.

Осталось дважды ввести новый код root. Смена произведена.

Смена текущего пользователя

Текущий пользователь этот тот пользователь под которым вы работаете.

Создавать пользователей в системе может только суперпользователь root. Он может делать с системой все что пожелает. Подобный пользователь (root) есть в любом дистрибутиве GNU/Linux.

Для того чтобы переключиться на работу под другим пользователем нужно воспользоваться командой su. В качестве аргумента команде su нужно передать имя пользователя на которого мы хотим переключиться. Помимо имени пользователя можно использовать ключ «-» — без него некоторые переменные среды останутся от предыдущего пользователя. Поэтому правильное переключение на пользователя root будет следующим:

alex@deb-11:~$ su - root
Пароль:
root@deb-11:~#

Но в Ubuntu, по умолчанию, нельзя переключиться на пользователя root. Мы даже при установке системы не задавали пароль для этого пользователя. В Ubuntu по умолчанию настроена утилита sudo, которая позволяет выполнять команды от имени суперпользователя. И эта утилита позволит нам переключиться на пользователя root не вводя его пароль:

alex@ubuntu:~$ sudo su - root
 password for alex:
root@ubuntu:~#

Вместо пароля от пользователя root, я ввёл пароль от alex.

Но sudo работает не для всех пользователей, а только для тех кто входит в группу sudo, а alex в неё входит.

Кстати, утилиту sudo можно установить и в Debian, и пользоваться точно также как это делается в Ubuntu.

Чтобы выйти используется команда exit:

root@deb-11:~# exit
выход
alex@deb-11:~$

root@ubuntu:~# exit
logout
alex@ubuntu:~$

Ещё одно отличите Ubuntu от Debian в том, что хоть при установке я указывал русский язык, в Ubuntu вывод результатов выполнения команд всё равно на английском.

Если не передать команде su имя пользователя то мы переключимся на пользователя root, поэтому часто используется такая команда для переключения на суперпользователя:

alex@deb-11:~$ su -
Пароль:
root@deb-11:~#

alex@ubuntu:~$ sudo su -
root@ubuntu:~#

Пароль суперпользователя в Ubuntu

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

Использовать права суперпользователя возможно и без задания шифровки root. Для этого в Ubuntu ввели команду sudo, позволяющую выполнять операции, требующие прав администратора. Запустив такую операцию, система запросит авторизацию лишь в том случае, если действия производятся под именем обычной учетной записи.

Второй способ более правильный – установить опцию -i для утилиты sudo. Она откроет терминал администратора:

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

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

Для управления пользователями в Linux Ubuntu существует команда usermod, которая также может принимать множество ключей и параметров. Если помните, ранее мы создали пользователя ludos. Это обычный пользователь, не являющийся администратором и не имеющий прав использовать команду sudo. Предоставим ему эти привилегии, добавив его в группы adm и sudo. Здесь мы вынуждены сделать маленькое отступление, сказав пару слов о группах. Как просмотреть список групп и что в них хранится, вы уже в курсе, но не будет лишним также знать, что группы могут быть первичными и вторичными.

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

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

  • -a — ключ добавляет пользователя в указанную группу.
  • -G — специальный ключ, определяющий список дополнительных групп.

Формируем такую команду, добавляя юзера в группы adm и sudo, перечисляя их через запятую:

usermod -a -G adm,sudo ludos

Получив данные о пользователе командой id ludos, мы видим, что его ID и GID остались прежними, зато он оказался членом групп adm и sudo.

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

Системные и обычные пользователи

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

Обычные пользователи — это пользователи, созданные пользователем root или другим пользователем с привилегиями sudo. Обычно у обычного пользователя есть настоящая оболочка входа в систему и домашний каталог.

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

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

Из выходных данных выше мы видим, что все обычные пользователи должны иметь UID от 1000 до 60000. Знание минимального и максимального значения позволяет нам запрашивать список всех обычных пользователей в нашей системе.

Команда ниже перечислит всех обычных пользователей в нашей системе Linux:

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

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

Как получить список всех задач cron у всех пользователей в Linux ?

Вроде простая задача и вроде есть простое решение в виде:

for user in $(cut -d':' -f1 /etc/passwd); do crontab -u $user -l; done

Но решение неудобное и нужно всегда держать его в голове. Давайте его усовершенствуем.

Исходные данные: Debian 8.9 (jessie)

Небольшой экскурс для тех кто не в курсе как вообще посмотреть список запланированных задач в планировщике cron в Linux:

Список задач у текущего пользователя:

crontab -l

Список задач у пользователя vasua:

crontab -u vasua -l

Для вывод задач для всех пользователей очевидно нужно взять список пользователей в системе из /etc/passwd и сделать для каждого пользователя crontab -u USERNAME -l, то есть:

for user in $(cut -d':' -f1 /etc/passwd); do crontab -u $user -l; done

Недостаток этого решения очевиден: 1. Нужно всегда помнить эту команду. 2. Если у пользователя нет задач в планировщике то мы получим сообщение «no crontab for vasua» и таких сообщений может быть десятки если у вас много пользователей — это неудобно. 3. Вывод информации неудобно читать.

Но это не финишная прямая, а только начало, ведь опытный системный администратор знает, что кроме вывода списка заданий командой crontab -l -u USER есть еще задания планировщика в каталоге /etc/cron.d/ и это тоже нужно учитывать, потому что например панель хостинга сохраняет задания cron в каталоге /etc/cron.d/ с именами ispc_webXXX, где webXXX — это логин системного пользователя, например web30 и вывод crontab -l -u web30 нам скажет «no crontab for web30», а на самом деле в файле /etc/cron.d/ispc_web30 может быть такая картина:

SHELL='/bin/sh'

*/2     *       *       *       *       web30   /usr/bin/php -f /var/www/mysite.ru/web/yii cron-origin/index

Задачи в /etc/cron.d мы тоже учтем и покажем в решении ниже.

Итак, создадим функцию allcrontab в файле ~/.bashrc для ввода информации в более удобном виде:

# Определим цвета вывода
red='\e[0;31m'
RED='\e[1;31m'
green='\e[0;32m'
GREEN='\e[1;32m'
NC='\e[0m'

# Определим нашу функцию вывода списка всех задач cron у всех пользователей
function allcrontab() {
    for user in $(cut -d':' -f1 /etc/passwd); do
        usercrontab=$(crontab -l -u ${user} 2>/dev/null)
        if ; then
            echo -e "${RED}====== Start crontab for user ${NC}${GREEN}${user}${NC} ${RED}======${NC}"
            crontab -l -u ${user} | sed '/ *#/d; /^ *$/d'
            echo -e "${RED}====== End crontab for user ${NC}${GREEN}${user}${NC} ${RED}========${NC}\n"
        fi
    done
    for crond in $(ls -L1 /etc/cron.d); do
        crondtab=$(cat "/etc/cron.d/${crond}" 2>/dev/null | egrep -Ev "^\s*(;|#|$)")
        if ; then
            echo -e "${RED}====== Start cron.d ${NC}${GREEN}/etc/cron.d/${crond}${NC} ${RED}======${NC}"
            echo "${crondtab}"
            echo -e "${RED}====== End cron.d ${NC}${GREEN}/etc/cron.d${crond}${NC} ${RED}======${NC}\n"
        fi
    done
}

Выполняем source ~/.bashrc или перелогиниваемся и выполняем в консоле allcrontab и видим красивый вывод списка всех задач cron у всех пользователей и дополнительно вывод задач из /etc/cron.d:

Результат выполнения allcrontab

Так же опытный системный администратор знает, что существует (anachronistic cron или асинхронный (анахроничный) cron) и его запуск и его задания тоже нужно учитывать, см. файл /etc/cron.d/anacron и /etc/anacrontab и каталоги /etc/cron.daily/, /etc/cron.hourly/, /etc/cron.monthly/ и /etc/cron.weekly/, но обсуждение anacron уже выходит за рамки этой статьи.

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

Типы групп в Linux

Выделим группы пользователей:

  1. Первичная (основная группа). После регистрации в системе пользователь автоматически попадает в эту группу. Зачастую название основной группы является идентичным имени юзера в Линукс. Пользователь может состоять только в одной первичной группе, без каких-либо исключений из правила.
  2. Вторичные группы. В процессе работы с устройством на базе ядра Linux пользователь может попасть в дополнительные группы. Количество вторичных групп для юзеров системы ограничено. Верхний лимит – 32 шт.

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

Как будет выглядеть синтаксическая структура нужной команды:

Основные опции:

  • -G – вторичные (дополнительные) группы для юзера системы;
  • -a – добавление юзера системы во вторичные группы из параметра, который был указан ранее (-G), вместо замены текущего значения;
  • -g – создание новой первичной группы для юзера системы. В неё попадут все файлы, которые хранятся в домашнем каталоге.

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

В целом, команда usermod способна предложить пользователю целое множество опций, но мы не станем рассматривать их целиком, ведь для решения актуальной проблемы можно ограничиться тремя опциями, указанными выше. Вместо этого рассмотрим процесс добавления пользователя в группу Линукс на примере. Допустим, нужно добавить пользователя «ya» в группу root.

Здесь:

  • root — имя группы, в которую нужно добавить пользователя;
  • ya — имя пользователя.

Наличие опции «-a» в данной комбинации – это своего рода защита системы от удаления ранее созданных групп. Эта опция должна стоять перед опцией «-G» в обязательном порядке, иначе программа наделает немало бед.

Где найти данные о пользователе Linux?

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

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

Как добавить несколько вторичных групп? Введите комбинацию:

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

Готово! Первичная группа пользователя изменена.

Как добавить пользователя в группу через GUI

Рассмотрим альтернативный метод решения данного вопроса для тех, кто не испытывает положительных эмоций во время работы с терминалом. На этот раз вам потребуется иметь дело с графическим интерфейсом. В данном случае для добавления пользователя в группу Линукс понадобится специальный инструмент – системная утилита system-config-users.

Чтобы установить её в CentOS, задайте такую комбинацию:

Установка завершена! Запустите инструмент через системное меню или при помощи терминала – выберите для себя наиболее удобный способ. Окно программы не перегружено информацией, поэтому вам не составит труда найти здесь нужное имя пользователя. Кликните по нему дважды, перепрыгните на вкладку под названием «Группы». В новом окне вы можете выполнить следующие действия:

  1. Изменить первичную группу;
  2. Выбрать галочками вторичные группы.

Заключение

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

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
IP-файл
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: