Как вывести список пользователей в Ubuntu Linux

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

Как составить список пользователей в Ubuntu Linux VPS: руководство для начинающих

Если вы хотите просмотреть всех пользователей в Linux Ubuntu VPS, вы можете использовать команду /etc/passwd, поскольку данные локального пользователя сохраняются в файле «/etc/passwd». Есть два способа выполнить эту команду, а именно:

cat /etc/passwd

Или же

less /etc/passwd

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

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

Каждая строка содержит семь разных полей, которые представляют подробные сведения о конкретном пользователе. Например, первая строка вывода — это root:x:0:0:root:/root:/bin/bash, что означает:

Как составить список пользователей в Ubuntu Linux VPS: руководство для начинающих
  • root — логин пользователя.
  • b — заполнитель пароля, так как фактический пароль сохраняется в отдельном файле.
  • 0 — UserID пользователя.
  • 0 — GroupID пользователя.
  • root — командное поле с некоторыми подробностями о пользователе.
  • /root — домашний каталог, который является основным каталогом пользователя.
  • /bin/bash — оболочка пользователя.

Обратите внимание, что двоеточия (:) используются для разделения значений в выводе.

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

cut -d : -f 1 /etc/passwd

Или же

awk -F: ‘{ print $1}’ /etc/passwd

Примеры использования команды sudo

sudo –l — отобразить список команд, доступных для выполнения текущему пользователю. Кроме списка команд отображаются параметры среды, которые будут применяться при их выполнении.

sudo –ll — отобразить список команд, доступных для выполнения текущему пользователю в длинном (расширенном) формате.

В данном формате вместо краткого синтаксиса для списка разрешенных команд в виде (ALL : ALL) ALL отображается подробное описание прав пользователя:

Sudoers entry:

RunAsUsers: ALL

RunAsGroups: ALL

Команды: ALL

sudo lshw -C network — отобразить информацию о сетевом оборудовании с правами суперпользователя root

sudo –l –U user1 — увидеть список команд, доступных для выполнения пользователю user1. Для выполнения данной команды юзер должен быть root или иметь право на выполнение команды sudo -l, что обеспечивается настройками утилиты sudo в файле /etc/sudoers

sudo ipmitool sensor — выполнить команду ipmitool sensor с правами root .

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

sudo -i — запустить командную оболочку с правами суперпользователя root. Для выполнения данной команды юзер должен иметь право на выполнение программы оболочки в среде sudo, к примеру — /bin/bash

sudo ls /usr/local/protected — получить список файлов каталога, доступного только root

sudo -u user2 ls ~ — получить список файлов домашнего каталога пользователя user2

sudo -u www vi ~www/htdocs/ — редактировать файлик ~www/htdocs/ от имени пользователя www

sudo -g adm view /var/log/syslog — просмотреть файлик системного журнала, доступного только суперпользователю root и членам группы adm

sudo -u user1 -g users2 vi /home/users2/ — редактировать текстовый файлик как юзер user1, с принадлежностью к первичной группе users2

sudo -E /usr/bin/firefox — запустить браузер firefox от имени суперпользователя root, сохранив параметры среды текущего пользователя. Должно бытьсть выполнения команд с сохранением среды пользователя должна быть разрешена параметром SETENV в настройках файла конфигурации sudo

Читайте также:  Настройка OpenVPN в Ubuntu

Команды консоли Ubuntu

В Ubuntu команды используются для выполнения разных задач. Посмотреть список всех команд и дополнительную информацию вы можете в документации Ubuntu.

Мы рассмотрим основные команды терминала Ubuntu, с которыми сталкивается каждый пользователь:

Команда ls

Отображает список всех файлов и папок в той директории, в которой вы находитесь.

Команда cd

Переходит в другую указанную директорию или папку.

Команда cp

Копирует файлы и папки в любое место файловой системы.

Команда mv

Перемещает файлы и папки в любое место файловой системы.

Команда rm

Удаляет файлы и папки.

Команда mkdir

Создаёт новую пустую директорию.

Команда cat

Отображает содержимое файла в консоли.

Команда nano и команда vim

Открывают текстовые редакторы nano и vim, в которых можно редактировать файл прямо в консоли.

Что делать

Действия в случае компрометации системы заслуживают отдельной статьи. А действия в случае сбоя клавиатуры решаются банальной заменой. Как быть, если нужно восстановить контроль над системой и сбить пароль root на свой?

С использованием монопольного доступа (single-mode)

Что делать
  1. Если у вас не стоит пароль на загрузчик (или хотябы он вам известен), то после перезагрузки идём в меню загрузчика:Руководствуемся текстовыми подсказками внизу экрана.
  2. Нажимаем “e” на клавиатуре на выбранной записи загрузчика (последняя версия ядра у меня сверху).
  3. В появившемся редакторе загрузочной записи ищем загрузку ядра (строка, начинающаяся с kernel) и нажимаем “e” на этой строке.
  4. Дописываем в конец строки “single” либо “1” и нажимаем Enter для применения изменений. Отобразится предыдущее меню, в котором жмякаем “b” для загрузки этой загрузочной записи и…
  5. Загрузится ОС и сразу провалится в оболочку под uid=0 без требования ввести пароль root. Этим и воспользуемся, убедимся, что корневой раздел подмонтирован в режиме записи, сменим пароль root и перезагрузимся: # mount # passwd root # reboot
  6. Более современные версии ОС выглядят немного пугающе, если залезть внутрь загрузочной записи. Вот пример с Kali Linux и Grub2: Бояться не стоит. Ищем строку с ядром (начинается с linux) и находим там параметр quiet, стираем и вместо него пишем “init=/bin/bash” – после инициализации ядра запустится командный интерпретатор bash. Ну а дальше – аналогично: Убедимся, что файловая система подмонтирована в режиме “rw” – здесь это не так, о чём свидетельствует флаг “ro” под первой стрелкой. Перемонтируем её с флагами “rw” и убеждаемся, что всё успешно (вторая стрелка). Ну а дальше – просто переустанавливаем пароль. Файловую систему делать в rw обязательно, т.к. в режиме только чтения (ro) она не позволит модифицировать файл /etc/shadow, в котором у нас находится хеш пароля.
  7. И ещё вариант для совсем безбашенных. Действуем аналогично и редактируем файл /etc/shadow напрямую (стираем оттуда хеш пароля полностью). Тогда можно будет войти под данным пользователем без ввода пароля.

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

Эта задача как правило чуть более творческая. В качестве загрузочных Linux-дистрибутивов можно использовать что угодно, Live-версии есть почти у всех популярных ОС: Kali, Ubuntu, Debian, так и у специализированных (которые я и рекомендую – Deft Zero, CAINE…).

Покажу на примере Deft, чтобы не быть голословным.

Что делать

# mkdir /mnt/remote

Создали каталог, куда будем монтировать файловую систему целевой ОС.

# hdparm -r 0 /dev/sda

Т.к. в Deft все устройства монтируются в режим “только чтение”, нужно отключить этот режим для целевого дискового устройства, иначе ничего поменять не получится.

Что делать

# modprobe dm-mod

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

# vgscan

Сканирование устройств на предмет созданных виртуальных групп томов. Обнаружена группа “vg_vpnsrv”, запомним это название.

Что делать

# vgchange -ay vg_vpnsrv

Подключаем выбранную группу

# lvs

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

Что делать

# mount /dev/vg_vpnsrv/lv_root /mnt/remote -o rw

Монтируем корневой раздел в наш каталог в режиме записи.

Ну а дальше действуем, например, согласно п.7 предыдущего раздела.

Читайте также:  Обновление iOS 12.0.1: 5 вещей, которые нужно знать!

Вам так же понравится: Как сбросить пароль администратора в Windows Как сбросить пароль Windows имея установочный диск Mysql сброс пароля root в CentOS 7 Как обойти пароль на вход в Windows? Как работать с sudo в Linux Удаленный рабочий стол в Linux средствами VNC

Что делать

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

netconf (как root) Очень хорошая программа настройки сети, использующая для интерактивной работы с пользованием, текстовое меню. ping [имя_машины] «Проверка на вшивость». Есть или нет контакта с другой машиной (в качестве параметре команде можно передавать сетевое имя машины или IP адрес), нажмите [Ctrl]-C когда вся требуемая информация будет получена. route -n Вывести таблицу маршрутизации (the routing table). ipfwadm -F -p m Настроить firewall. ifconfig (как root) Вывести информацию о текущих сетевых интерфейсах (ethernet, ppp, и т.д.) Ваша первая ethernet плата плата будет показана как eth0, вторая как eth1, первый ppp модем как ppp0 и так далее. «lo» — расшифровывается как «loopback only» сетевой интерфейс, который должен быть постоянно активирован. Используйте соответствующие опции (смотрите результат выполнения ifconfig —help) для настройки сетевых интерфейсов. ifup [имя_сетевого_интерфейса] (/sbin/ifup при работе под обычным пользователем) Активизация соответствующего сетевого интерфейса. Например: ifup eth0 ifup ppp0. Пользователь может активизировать и выключить сетевое интерфейс ppp только когда установлены соответствующие права доступа (права можно установить в процессе настройки ppp через «netconf») ifdown [имя_сетевого_интерфейса] (/sbin/ifdown при работе под обычным пользователем). Диактивизация соответствующего сетевого интерфейса.

Компиляция и запуск программ C, C++

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

Компиляция и запуск программ на C

Напишите свой код/программу в любимом редакторе CLI/GUI.

Я собираюсь написать свою программу на Си с помощью редактора nano.

$ nano ostechnix.c

Примечание. Вам необходимо использовать расширение .c для программ на Си или .cpp для программ на Си++.

Скопируйте/вставьте следующий код:

#include <stdio.h> int main() { printf(«Welcome To OSTechNix!»); return 0; }

Нажмите Ctrl+O и Ctrl+X для сохранения и выхода из файла.

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

$ gcc ostechnix.c -o ostechnix

Или:

$ cc ostechnix.c -o ostechnix

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

Наконец, запустите программу с помощью команды:

$ ./ostechnix

Вы увидите вывод, как показано ниже:

Welcome To OSTechNix!

Чтобы скомпилировать несколько исходных файлов (например, source1 и source2) в исполняемый файл, запустите:

$ gcc source1.c source2.c -o executable

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

$ gcc source.c -Wall -Og -o executable

Скомпилировать исходный код в инструкции ассемблера:

$ gcc -S source.c

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

$ gcc -c source.c

Вышеприведенная команда создаст исполняемый файл под названием source.o.

Если ваша программа содержит математические функции:

$ gcc source.c -o executable -lm

За более подробной информацией обращайтесь к man-страницам (страницы руководства).

$ man gcc

Компиляция и запуск программ на C++

Напишите вашу C++ программу в любом редакторе по вашему выбору и сохраните ее с расширением .cpp.

Пример простой C++ программы:

$ cat

Программа:

#include <iostream> int main() { std::cout << «Welcome To OSTechNix!» << std::endl; return 0; }

Чтобы скомпилировать эту программу на C++ в Linux, просто запустите:

$ g++ -o ostechnix

Если ошибок не было, то можно запустить эту Си++ программу под Linux с помощью команды:

$ ./ostechnix

Выведет:

Welcome To OSTechNix!

В качестве альтернативы мы можем скомпилировать приведенную выше программу на C++, используя команду «make«, как показано ниже.

$ make ostechnix

Вы заметили? Я не использовал расширение .cpp в вышеприведенной команде для компиляции программы. Нет необходимости использовать расширение для компиляции Си++ программ с помощью команды make.

Запустите, используя команду:

$ ./ostechnix Welcome To OSTechNix!

За более подробной информацией обращайтесь к man-страницам.

Читайте также:  LINUX-DEV-KERN. Разработка модулей ядра LINUX

$ man g++

Надеюсь, что статья помогла.

Автозапуск через cron

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

crontab -e — открыть терминал для написания задания cron

И добавьте туда нужное вам задание, например:

* * * * * /root/ — запускать скрипт каждую минуту.

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

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

# crontab -l

* * * * * /root/

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

  • Минуты от 0 до 59
  • Часы от 0 до 59
  • День месяца от 1 до 31
  • Месяц от 1 до 12
  • День недели от 0 до 7 (0 или 7 это воскресение)

В нашем задании скрипт запускается каждую минуту, поэтому там стоят «*».

Так же вы можете разместить нужный вам скрипт в директориях cron:

  • / – выполнение скрипта ежедневно
  • / – выполнение скрипта ежечасно
  • / — выполнение скрипта ежемесячно
  • / — выполнение скрипта еженедельно

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

Настройка сети в Linux

Перед тем, как приступать к настройке сетевого подключения в Линукс, надо начать с того, что посмотреть — какие настройки сети используются сейчас. Для этого надо воспользоваться командой ifconfig. В информационном режиме она доступна и без прав ROOT, хотя для её полноценного использования лучше получить привилегии суперпользователя, введя команду sudo ifconfig. Результатом её работы будет список имеющихся в системе сетевых подключений и их параметров.

В разных версиях Линукс имя сетевого интерфейса может быть сокращением от Ethernet — eth0, eth1, eth2 и т.п.

На интерфейс lo — сокращение от loopback — то есть локальная петля с адресом 127.0.0.1 . Для примера рассмотрим интерфейс Eth0. В строке inet addr отображается текущий IP-адрес компьютера в локальной сети, подключенной к этой сетевой карте. В примере это: Bcast — это широковещательный адрес в сети, так называемый Бродкаст(Broadcast). Mask — это маска сети. HWaddr — это аппаратный адрес сетевой карты, он же MAC-адрес, используемый на канальном уровне.

Информацию о текущих подключения узнали, теперь рассмотрим настройку локальной сети в Linux. Сделать это можно тремя способами: 1 — Через графическую оболочку 2 — через команду ifconfig или инструмент Network Manager 3 — через конфигурационные файлы сетевого сервиса Netork или Networking.

На мой взгляд, последний способ — самый удобный и надёжный, а значит — правильный. Чтобы настроить сеть в Линукс надо открыть файл, содержащий конфиг интерфейса. Тут всё зависит от того, какой дистрибутив Linux используется.

Вариант 1. В дистрибутивах, основанных на Debian (Ubuntu, Kubuntu и т.п.)

Файл с параметрами сетевого подключения:

Для того, чтобы изменить в linux настройки сети, файл его надо с правами root любым текстовым редактором. Например, через nano:

Для автоматического получения адресов от DHCP-сервера надо пописать следующее:

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

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

Вариант 2. RedHat-based дистрибутивы (Fedora, OpenSuse, CentOS)

Файл с настройками сети Linux:

Открываем его так же через nano или vim:

В случае автоматического получения настроек от DHCP-сервера:

IP-адреса DNS-серверов в этом случае прописываются в файле

вот пример для публичных DNS-серверов от Google:

Настройка сети в Линукс завершена. Остаётся только перезапустить сеть командой:

В качестве постскриптума расскажу как включить и выключить сеть в Linux. Делается это через всё ту же команду ifconfig. Выключить сетевую карту eth0:

Включить сетевую плату в Линуксе обратно:

Полностью остановить работу всех сетевых интерфейсов.

Источник