Какую информацию запрашивает у пользователя программа login

Содержание
Читайте также:
Драйвер это программа для обеспечения работы внешних устройств

По умолчанию ubuntu не предлагает создать учётку обычного пользователя, в отличие от debian. Когда ставил дебиан на виртуалку, то имя обычного пользователя сделал таким же, как и админское(как я делал обычного пользователя sudo, опустим). А теперь, поставив на реальный комп, внезапно понял, что забыл !!ЛОГИН!! админки. Итак, что у нас есть:

| учётка обычного юзера, с известным логином(допустим, user) и паролем(допустим, pass)
| админ с неизвестным логином, известным паролем(допустим, passroot) и реальным именем, почему-то отображающемся как реальное имя обычного юзера Понятное дело, что консоль пишет, что мы не есть sudoer и грозится отрепортить куда надо. А что бы использовать su, надо знать логин админа. команда cat /etc/passwd не помогла, нет там учётки админа. А ещё есть возможность загрузится с загрузочной флешки.

Итак, логичный вопрос — как узнать логин админки системы? И как удалить нафиг пользователя, что бы всё время логинится админом, как на *ubuntu по дефолту? компьютер домашний, никто в него лезть не будет, крооме моих рук, которые, честно говоря, не кривые. Как защитить логин администратора сайта?

Забыл Apple ID или пароль. Как узнать Apple ID?


С недавнего времени началась постоянная и целенаправленная автоматизированная атака на основной. Как можно узнать логин пользователя?
через какую переменную окружения можно узнать логин пользователя под которым он логинится на. Как узнать свой логин на Убунту?
День добрый! Убунту требует логин и пароль. Пароль я знаю, а про логин и не думал. Вопрос: можно. Как узнать логин пользователя зашедшего на сайт?
Как узнать логин пользователя зашедшего на сайт и поместить его в текстовое поле? SuperPrower, расширю ответ Dmitry.
Для начала уточню 2 момента:
1. Во всех Linux’ах есть только один админ — root.
2. Нельзя авторизоваться под пользователем, у которого нет пароля. Но можно запускать программы от его имени. Правда, тут ещё нюансы есть
В Ubuntu также настоящий админ один — root. Но у него нет пароля и доступ к su ограничен для обычных пользователей. В линуксе существует такая утилита как sudo. Её задача — запуск программ от имени суперпользователя (от root’а). Она представляет из себя демона.

Демон работает от имени root’а и может запускать программы как дочерние процессы опять же от имени администратора. Но по умолчанию sudo требует пароль того пользователя, который его вызывает. Можно поменять, чтобы запрашивался пароль root’а (или вообще не запрашивался), но это уже другой вопрос. Конфигурационный файл для sudo — /etc/sudoers. Очень кратко о настройке.

Читайте также:
Лучшая программа для kkl

Так как залогиниться под пользователем без пароля нельзя, root в Ubuntu считается заблокированным, а под админом понимается обычный пользователь, прописанный в /etc/sudoers и потому имеющий право выполнять команды от имени суперпользователя. Теперь о различиях Debian и Ubuntu: в Debian по умолчанию sudo не установлен. А после установки не работает. По крайней мере у меня ни разу сразу не заработал. Приходилось править /etc/sudoers.

🔥ПРОВЕРЬ ОБЯЗАТЕЛЬНО. Как узнать использует ли кто-то еще Ваш Google аккаунт? Безопасность Гугл

linux-notes.org

Хотелось бы рассказать в своей статье «Получить имя текущего пользователя в Unix/Linux» как можно получить имя текущего пользователя в Unix/Linux. Я, использовал только несколько, но нашел еще несколько о которых и не знал. Самый простой способ получить текущего пользователя — это выполнить следующую команду: Так же, можно воспользоваться переменным окружением и вывести следующий параметр: Так же, можно получить пользователя по ID: Так же, можно получить пользователя по PID:

Можно использовать утилиту «w» и она покажет пользователя: Вот еще один пример хорошей утилиты: Вот и все, тема «Получить имя текущего пользователя в Unix/Linux» завершена.

8. Идентификация пользователей в ос Unix.

С каждым выполняемым процессом в ОС UNIX связываются реальный идентификатор пользователя (real user ID), действующий идентификатор пользователя (effective user ID) и сохраненный идентификатор пользователя (saved user ID). Все эти идентификаторы устанавливаются с помощью системного вызова setuid, который можно выполнять только в режиме суперпользователя. Аналогично, с каждым процессом связываются три идентификатора группы пользователей — real group ID, effective group ID и saved group ID. Эти идентификаторы устанавливаются привилегированным системным вызовом setgid.

При входе пользователя в систему программа login проверяет, что пользователь зарегистрирован в системе и знает правильный пароль (если он установлен), образует новый процесс и запускает в нем требуемый для данного пользователя shell. Но перед этим login устанавливает для вновь созданного процесса идентификаторы пользователя и группы, используя для этого информацию, хранящуюся в файлах /etc/passwd и /etc/group.

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

Рассмотрим, например, следующую ситуацию. В файл /etc/passwd запрещена запись всем, кроме суперпользователя (суперпользователь может писать в любой файл). Этот файл, помимо прочего, содержит пароли пользователей и каждому пользователю разрешается изменять свой пароль. Имеется специальная программа /bin/passwd, изменяющая пароли.

Однако пользователь не может сделать это даже с помощью этой программы, поскольку запись в файл /etc/passwd запрещена. В системе UNIX эта проблема разрешается следующим образом. При выполняемом файле может быть указано, что при его запуске должны устанавливаться идентификаторы пользователя и/или группы. Если пользователь запрашивает выполнение такой программы (с помощью системного вызова exec), то для соответствующего процесса устанавливаются идентификатор пользователя, соответствующий идентификатору владельца выполняемого файла и/или идентификатор группы этого владельца. В частности, при запуске программы /bin/passwd процесс получит идентификатор суперпользователя, и программа сможет произвести запись в файл /etc/passwd.

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

Источник: studfile.net

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

url image

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

  • администратор — 0
  • обычный пользователь — от 100
  • системный пользователь — от 1 до 100

Чтобы упростить процесс настройки прав для новых пользователей, их объединяют в группы. Каждая группа имеет свой набор прав и ограничений. Любой пользователь, создаваемый или добавляемый в такую группу, автоматически их наследует. Если при добавлении пользователя для него не указать группу, то у него будет своя, индивидуальная группа — с именем пользователя. Один пользователь может одновременно входить в несколько групп.

Информацию о каждом пользователе сервера можно посмотреть в файле /etc/passwd . Пользователи в нём перечислены в следующем формате:

test-user:x:1000:1000::/home/test-user:/bin/bash

говорит о том, что пароль зашифрован (хранится в /etc/shadow )

идентификатор пользователя ( UID ) и идентификатор группы ( GID ), к которой он принадлежит

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

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

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

Если вам известно имя пользователя и вы хотите узнать о нём побольше, необязательно читать /etc/passwd . Всё то же самое в человекочитаемом виде можно посмотреть с помощью команды pinky -l :

pinky -l test-user

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

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

Узнать UID пользователя можно с помощью команды id :

id test-user

Для именования пользователей в Linux есть набор стандартных правил:

  • Имя пользователя может содержать только английские буквы [a-z] в верхнем и нижнем регистре, цифры, символ «_» , тире «-» и точку;
  • Имя пользователя может оканчиваться символом «$» ;
  • Имя пользователя не может начинаться с тире, содержать только цифры или состоять из «.» или «..» ;
  • Не рекомендуется использовать точку в начале имени пользователя;
  • Имя пользователя может включать до 32 символов.

Теперь перейдём непосредственно к управлению пользователями.

  • Создание пользователей
  • Изменение данных пользователей
  • Удаление пользователей
  • Группы пользователей
  • Привилегии суперпользователя. Sudo

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

Процесс добавления пользователя состоит из двух шагов: создания пользователя и настройки пароля.

На первом шаге используется команда useradd c набором опций для настройки нового пользователя и его именем (логином):

useradd [как создать] [как назвать]

Эта команда имеет ряд настроек по умолчанию, которые задаются с помощью файлов /etc/default/useradd и /etc/login.defs Увидеть основные можно с помощью команды:

useradd -D

GID группы, в которую пользователь будет добавлен после создания

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

указывает время до блокировки пользователя, когда его пароль станет недействителен. Значение «-1» отключает опцию

дата, до которой действителен аккаунт. По умолчанию не установлена — то есть без ограничений

используется для настройки доступа к командной оболочке

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

определяет, нужно ли создать папку для писем этого пользователя в /var/spool/mail/

Все эти настройки применяются, если использовать самый простой вариант команды создания пользователя без параметров:

useradd test-user

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

создаёт указанную домашнюю директорию, если она ещё не существует

устанавливает /home/test-user в качестве домашней директории

-c «Евграф Шматкунос»

добавляет комментарий. Например, с именем пользователя

указывает группу, в которую попадёт пользователь после создания. Можно использовать с GID или именем группы. Указанная группа должна существовать. Используется в сочетании с ключом -N (отменяет автоматическое создание группы с именем пользователя)

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

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

создаёт системного пользователя. Используется, когда вам нужно настроить службу на работу из-под конкретного пользователя. По умолчанию данные таких пользователей не вносятся в /etc/shadow , для них не создаётся домашняя папка

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

указывает дату, до которой аккаунт будет активен. Дата задаётся в формате YYYY-MM-DD

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

В итоге получится вот такая сборная солянка из настроек:

useradd -m -u 666 -d /home/users/test-user -c «Тестовый пользователь» -e 2060-01-01 -s /bin/bash test-user

В примере мы создаём тестового пользователя test-user с идентификатором 666 , домашней папкой в /home/users/test-user , комментарием «Тестовый пользователь» и доступом к командной оболочке. Учётная запись будет действительна до конца света по Ньютону.

Более подробную информацию о доступных опциях для useradd можно увидеть с помощью команды man useradd .

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

passwd test-user

Система предложит ввести и подтвердить пароль. На этом процесс создания пользователя можно считать завершённым.

Изменение данных пользователей

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

pgrep -l -u user

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

pinky user

Отредактировать данные существующего пользователя можно с помощью команды usermod . По структуре она похожа на предыдущую команду:

usermod [что поменять] [для какого пользователя]

Набор параметров расширен дополнительными опциями:

создаёт новую директорию, указанную в качестве домашней (если её не существует), и переносит туда данные из старой

меняет домашнюю директорию пользователя на /home/users/new-test-user

меняет комментарий к пользователю

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

меняет командную оболочку пользователя

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

меняет дату, до которой аккаунт будет активен

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

меняет имя пользователя на new-test-user

блокирует аккаунт пользователя. Для этого в файле /etc/shadow перед хэшем пароля пользователя ставится символ «!»

снимает блокировку с аккаунта (удаляет символ «!» из пароля в /etc/shadow )

То есть если мы захотим отредактировать данные пользователя test-user , созданного в примере выше, это будет выглядеть так:

usermod -l new-test-user -m -d /home/new-test-user -c «Чак Норрис» -u 100500 -e 3000-01-01 -f -1 test-user

В примере мы меняем логин — имя пользователя на new-test-user , изменяем домашнюю папку на /home/new-test-user с копированием файлов, меняем комментарий, UID пользователя, срок жизни аккаунта и отменяем блокировку в случае устаревания пароля.

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

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

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

Для удаления пользователей используется команда userdel . Её структура аналогична предыдущим:

userdel [что удаляем] [кого удаляем]

Основных параметра два:

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

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

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

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

Информация о группах хранится в файле /etc/group . Работа с группами пользователей куда проще.

Группы применяются для делегирования прав доступа на определённые файлы, папки, скрипты сразу нескольким пользователям. Живой пример: работа с FTP-сервером. Вы выбираете какую-то директорию для работы с файлами, создаёте группу пользователей и присваиваете ей выбранную папку. Теперь вам не нужно отдельно настраивать права каждому новому пользователю — достаточно добавить его в эту группу, и он автоматически получит доступ к FTP-каталогу.

Создание

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

groupadd new-group

Из параметров можно выделить следующие:

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

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

создаёт системную группу

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

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

Для редактирования групп используется команда groupmod . Список изменений задаётся с помощью параметров:

меняет GID группы на 100500

меняет имя группы на another-name

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

groupmod -n named-group test-group

Удаление

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

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

groupdel test-group

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

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

Базовым инструментом для управления группами является утилита gpasswd . Она имеет несколько параметров, но с одной особенностью — в отличие от предыдущих примеров, здесь большинство параметров (кроме -A и -M ) не сочетаются. То есть в команде может быть только один параметр за раз.

Структура команды проста:

gpasswd [что сделать] [в какой группе]

Рассмотрим опции команды подробнее:

Добавляет пользователя new-user в группу

Удаляет пользователя bad-user из группы

Доступна для использования привилегированным пользователям (с правами root). Назначает список пользователей-администраторов группы

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

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

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

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

gpasswd -a new-user test-group

Также для добавления пользователей в новую группу используется описанная выше команда usermod . Следующий пример добавляет пользователя test-user в группу new-group :

usermod -a -G new-group test-user

Или, если нужно указать группу new-group в качестве основной группы пользователя test-user :

usermod -g new-group test-user

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

newgrp new-group

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

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

Итак, мы знаем, что на сервере есть три типа пользователей: администраторы (корневой пользователь root ), локальные пользователи (люди, которым мы предоставляем учётные записи для работы с сервером) и системные пользователи (сущности, от имени которых запускаются те или иные процессы). То есть реально для управления системой используются только первые два типа пользователей. Их основное различие — в объёме прав доступа.

По умолчанию после установки операционной системы на сервере присутствует только один пользователь — администратор root . Он имеет полные права доступа ко всем процессам и данным сервера.

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

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

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

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

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

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

    Ubuntu и Debian: Для предоставления прав пользователи добавляются в группу sudo :

usermod -a -G sudo test-user
usermod -a -G wheel test-user

Можно делегировать права пользователям по отдельности — через файл /etc/sudoers Для работы с ним нужно вызвать специальный редактор:

visudo

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

Проверить, может ли пользователь использовать sudo , можно с помощью команды:

sudo -l -U test-user

В примере пользователь test-user может выполнять через sudo любые команды ( ALL:ALL — символизирует, что команды могут исполняться от имени любых пользователей и групп, третий аргумент символизирует список доступных команд — в примере ALL , не ограничен)

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

sudo groupadd newgroup

Для подтверждения система запросит ввести пароль текущего пользователя (символы при вводе пароля не отображаются — введите пароль «вслепую» или скопируйте и вставьте кликом правой кнопки мыши). После ввода команда будет отправлена на исполнение. Также в течение пяти следующих минут (по умолчанию) вы сможете запускать команды от имени суперпользователя без использования sudo и повторного ввода пароля.

Количество времени, которое действуют права суперпользователя после вызова sudo , можно изменить через настройки в /etc/sudoers . Запрос пароля можно отключить там же.

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

sudo -s

С управлением пользователями разобрались, идём дальше. Как было сказано выше, чтобы локальный пользователь мог начать работу на сервере, администратор ( root или пользователь c привилегиями sudo ) должен настроить права доступа к файлам и папкам, которые понадобятся этому пользователю. Рассмотрим этот вопрос подробнее.

Источник: firstvds.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru