Переменная окружения $ SHELL
Переменная окружения содержит имя вашей текущей оболочки. Мы можем проверить, какой из них установлен с :
echo $SHELL
Давайте начнем ракушка:
fish
Теперь давайте еще раз проверим, что переменная окружения говорит:
echo $SHELL
Первый раз мы используем мы в ракушка. Переменная окружения содержит путь к исполняемый файл, ,
Когда мы запускаем Оболочка, мы получаем приветственное приветственное сообщение и командная строка меняется. Что может быть удивительным, так это среда по-прежнему держит путь к исполняемый файл, , Это нормально — это нормально.
Когда вы запускаете новую оболочку (или любую другую программу), она наследует среду родительской оболочки. Так что оболочка наследует глобальные и экспортированные переменные среды из ракушка. Потому что значение в переменная окружения не была изменена, она имеет то же значение в оболочка, что он сделал в ракушка.
Были запущены как и любая другая программа. Мы также можем использовать выйти из ракушка. Он закрывается, как и любая другая программа, и мы возвращаемся к ракушка.
Это здорово для того, чтобы опробовать новые оболочки, посмотреть, что они могут сделать, и ладят ли вы с ними. Вы можете исследовать, прежде чем совершить прыжок, и принять его в качестве оболочки для перехода.
Если вы решили сделать — или в любой другой оболочке — по умолчанию, вам нужно использовать команда.
Список групп пользователя Linux
Вы сможете посмотреть список групп пользователя Linux двумя основными способами. Это команда id, какую мы уже разбирали в статье о том, как узнать id пользователя Linux, и команда groups. Чтобы вывести всю данные о пользователе, используйте id:
Все группы, созданные в системе, находятся в файле /etc/group. Посмотрев содержание этого файла, вы можете узнать список групп linux, которые уже есть в вашей системе. И вы станете удивлены.
Если вы не введете имя пользователя, по умолчанию будет применено ваше имя. К примеру:
Вы вдобавок можете проверить какие группы принадлежат другому пользователю, включая root:
Помимо стандартных root и users, здесь есть еще пару десятков групп. Это группы, сделанные программами, для управления доступом этих программ к общим ресурсам. Каждая группа позволяет чтение или запись определенного файла или каталога системы, тем самым регулируя полномочия юзера, а следовательно, и процесса, запущенного от этого пользователя. Здесь можно считать, что пользователь — это одно и то же что процесс, поэтому что у процесса все полномочия пользователя, от которого он запущен.
Права суперпользователя в Linux
Очень долго перечислять чего не может обычный пользователь Linux, проще сказать на что у него есть право, а именно при стандартной настройке полномочий для файлов в Linux, обычный пользователь может:
- Читать, писать и изменять атрибуты файлов в своем каталоге
- Читать, писать, изменять атрибуты файлов в каталоге /tmp
- Выполнять программы там, где это не запрещено с помощью флага noexec
- Читать файлы, для которых установлен флаг чтения для всех пользователей.
Если же нужно сделать что-то большее нам понадобятся права root пользователя linux. У root есть право делать все в вашей файловой системе независимо от того какие права установлены на файл.
Синтаксис команды chgrp
Команда принимает следующую форму:
- , имя новой группы или идентификатор группы (GID). Числовой GID должен начинаться с символа .
- , имя одного или нескольких файлов.
В отличие от команды которая позволяет вам изменять владение пользователем и группой, команда изменяет только владение группой.
Чтобы узнать, к какой группе принадлежит файл, используйте команду .
Обычные пользователи могут изменить группу файла только в том случае, если они владеют файлом, и только в группе, членом которой они являются. Пользователи с правами администратора могут изменять групповое владение всеми файлами.
Есть ли приоритет в правах доступа к файлам?
Представим ситуацию, когда владелец не имеет никаких разрешений на доступ к файлу, группа имеет разрешение на чтение, в то время как другие пользователи имеют разрешения на чтение и запись.
Теперь, если пользователь diego попытается прочитать файл с помощью команды или , сможет ли он это сделать? Ответ — нет, потому что у него нет разрешения на чтение.
Но как же так? Ведь пользователь diego является частью группы coolgroup, а группа имеет доступ на чтение. И даже все другие пользователи имеет разрешение на чтение и запись! Это должно означать, что каждый (включая пользователя diego) может читать и изменять файл, не так ли? Неправильно!
В Linux-системах приоритет считывания прав доступа отдается сначала Владельцу, затем Группе, а уже после Остальным. Система определяет, кто инициировал процесс ( или в нашем примере). Если пользователь, инициировавший процесс, также является Владельцем файла, то считываются биты разрешений для Владельца.
Если процесс инициировал не Владелец файла, то система проверяет Группу. Если пользователь, инициировавший процесс, находится в той же Группе, что и Группа-владелец файла, то считываются биты разрешений для Группы.
Если же инициировавший процесс пользователь не является Владельцем файла и не входит в соответствующую Группу, то для него устанавливаются биты разрешений как для Остальных пользователей.
Пошаговая настройка прав доступа в 1С
Расскажем, как настроить права доступа на примере программы «1С:Бухгалтерия 8 редакция 3.0 для Казахстана»
Однако обратите внимание, что аналогичным образом настраиваются права доступа для пользователей и в других программных продуктах 1С. Например, инструкция также подойдет к «1С:Управление торговлей 8.3 для Казахстана», «1С:Зарплата и управление персоналом» для Казахстана, «1С:ERP» и другим
Шаг №1. «Настройка пользователей и прав»
В самом начале необходимо зайти в раздел настроек программы и выбрать раздел «Настройка пользователей и прав».
Это действие можно также выполнить на вкладке «Администрирование», если у вас есть необходимые права для действий.
Шаг № 2. «Пользователи»
Для того, чтобы увидеть, к какую группу доступа входит отдельный пользователь, нужно перейти в раздел «Пользователи». Здесь можно создать нового пользователя 1С или выполнить редактирование для уже существующего или целой группы.
Важно! Вы сможете управлять данными списками и вносить изменения только в том случае, если сами имеете права администратора. Чтобы создать необходимую группу пользователей, их можно выбрать из базы
Здесь нужно проверить, что установлены флажки «Вход в программу разрешен» и «Показывать в списке выбора». Если их не будет, то при авторизации пользователь себя не увидит.
Чтобы создать необходимую группу пользователей, их можно выбрать из базы. Здесь нужно проверить, что установлены флажки «Вход в программу разрешен» и «Показывать в списке выбора». Если их не будет, то при авторизации пользователь себя не увидит.
Шаг № 3. Роли для группы
Итак, в нашей программе пользователи входят в группы с разрешенным доступом. Например, можно создать группу бухгалтеров, администраторов, кассиров, логистов и т.д. Отметим, что один и то же пользователь может относиться к нескольким разным группам. У каждой из групп прописываются роли.
Что такое роль? Это метаданные. От конфигурации вашей 1С будет зависеть, сколько их и какие они
Обычно их довольно много, поэтому важно не запутаться. Ведь вы можете назначить только одну лишнюю роль, а пользователю уже откроется доступ ко многим действиям
Чтобы узнать, какие права откроются пользователю, нужно перейти во вкладку «Описание».
Роли могут быть базовыми, которые позволяют только просматривать документ. Могут быть специальными, когда открывается доступ для редактирования.
Шаг № 4. Профиль групп доступа
Допустим, что вам необходимо разрешить группе бухгалтеров редактировать реквизиты объектов. Для этого зайдите в раздел «Профиль групп доступа». Установите флажок «редактировать реквизиты объектов».
Примечание:
Для редактирования ролей целесообразно предватрительно скопировать нужную роль, и уже скопированную роль менять. При этом кнопка «Только выбранные» должна быть «отжатой» (см скриншот ниже), поскольку в типовых профилях показываются только используемые роли.
Шаг № 5. Ограничение на уровне записей
Речь идет о RLS (Record Level Security). Вы найдете необходимую колонку в «Отчете по правам пользователя», в разделе «Права доступа». Чтобы работать с ограничение на уровне записей, нужно установить соответствующий флажок во вкладке.
Для чего необходима эта функция? Это дополнительные условия, которые могут поставить ограничения на конкретный объект в базе данных. Очень удобно, если нужно закрыть доступ к файлу отдельного пользователя или группы. При этом программа предупредит, что данные настройки могут замедлить работу системы.
Почему? В этом случае система 1С каждый раз будет запрашивать информацию о том, разрешено ли пользователю просматривать какой-то файл.
Вы также можете перемещать пользователя по группам в 1С, чтобы изменить права доступа.
Шаг № 6. Новые роли
Чтобы не путаться в бесконечном разнообразии ролей, рекомендуем создать собственные роли. Для этого зайдите в дерево метаданных.
Разграничить права в новой роли можно путем выставления необходимых флажков напротив нужного вам права.
Задать ограничение можно в правом нижнем углу. Здесь работает механизм настройки прав доступа по отношению к конкретным данным.
К примеру, вы можете ограничить изменение документа только по одной организации.
Используйте конструктор ограничений доступа. Он поможет выбрать необходимые условия для доступа. Кроме того, программа предложит вас шаблоны ограничений, которые останется только выбрать и добавить.
Примечание:
Для создания новых ролей в режиме Конфигуратора необходимо включить возможность изменения конфигурации.
Создание новых ролей возможно так же в пользовательском режиме (с ограничениями) — см. примечание в «Шаг №4».
Конфигурация
Файл /etc/adduser.conf содержит значения по умолчанию для программ Добавить пользователя, Добавить группу, обманщик и delgroup. Каждая строка содержит одну пару значений в форме «вариант=значение«. Допускаются двойные или одинарные кавычки вокруг значения, а также пробелы вокруг знака равенства. Строки комментариев должны иметь знак решетки («#») в первом столбце.
Допустимые варианты конфигурации:
DSHELL
Оболочка входа, которая будет использоваться для всех новых пользователей. По умолчанию / bin / bash.
DHOME
Каталог, в котором должны быть созданы новые домашние каталоги. По умолчанию /Главная.
ДОМА
Если это установлено на да, домашние каталоги будут созданы как «/Главная// пользователь». По умолчанию нет.
ПИСЬМА
Если это установлено на да, то в созданные домашние каталоги будет вставлен дополнительный каталог, который является первой буквой имени пользователя. Например: / home / u / пользователь. По умолчанию нет.
СКЕЛ
Каталог, из которого следует скопировать скелетные файлы конфигурации пользователя. По умолчанию / etc / skel.
FIRST_SYSTEM_UID, LAST_SYSTEM_UID
укажите включающий диапазон UID, из которых системные UID могут быть динамически выделены. По умолчанию 100 — 999
Обратите внимание, что системное программное обеспечение, такое как пользователи, назначенные пакетом base-passwd, может предполагать, что UID менее 100 не распределены.
FIRST_UID, LAST_UID
укажите включающий диапазон UID, из которых UID обычного пользователя могут быть динамически выделены. По умолчанию 1000 — 29999.
FIRST_SYSTEM_GID, LAST_SYSTEM_GID
укажите включающий диапазон GID, из которых системные GID могут быть динамически выделены
По умолчанию 100 — 999.
FIRST_GID, LAST_GID
укажите включающий диапазон GID, из которых GID обычных групп могут быть динамически выделены. По умолчанию 1000 — 29999.
ГРУППЫ ПОЛЬЗОВАТЕЛЕЙ
Если это установлено на да, то каждому созданному пользователю будет предоставлена собственная группа для использования. Если это нет, то каждый созданный пользователь будет помещен в группу, GID которой USERS_GID (см. ниже). По умолчанию да.
USERS_GID
Если ГРУППЫ ПОЛЬЗОВАТЕЛЕЙ является нет, тогда USERS_GID GID, предоставляемый всем вновь созданным пользователям. Значение по умолчанию — 100.
DIR_MODE
Если установлено допустимое значение (например, 0755 или же 755), созданные каталоги будут иметь указанные разрешения как umask. В противном случае, 0755 используется по умолчанию.
SETGID_HOME
Если это установлено на да, затем домашние каталоги для пользователей с их собственной группой ( USERGROUPS = да ) будет установлен бит setgid. Это была настройка по умолчанию для Добавить пользователя версии до 3.13. К сожалению, у него есть плохие побочные эффекты, поэтому мы больше не делаем этого по умолчанию. Тем не менее, если вы хотите, можете активировать его здесь.
ПОЛЬЗОВАТЕЛЬ
Если установлено непустое значение, квоты для новых пользователей будут скопированы у этого пользователя. По умолчанию пусто.
NAME_REGEX
Имена пользователей и групп проверяются по этому регулярному выражению. Если имя не соответствует этому регулярному выражению, создание пользователя и группы в adduser будет отклонено, если только —force-badname установлен. С участием —force-badname установлен, выполняются только слабые проверки. По умолчанию — самый консервативный ^ * $. когда —система указано, вместо него используется NAME_REGEX_SYSTEM.
NAME_REGEX_SYSTEM
Имена пользователей системы проверяются по этому регулярному выражению. Если —система предоставляется, и имя не соответствует этому регулярному выражению, создание пользователя в adduser будет отклонено, если —force-badname установлен. С участием —force-badname установлен, выполняются только слабые проверки. По умолчанию такое же, как и по умолчанию. NAME_REGEX но также допускается использование заглавных букв.
SKEL_IGNORE_REGEX
Файлы в / etc / skel / проверяются на соответствие этому регулярному выражению и не копируются во вновь созданный домашний каталог, если они совпадают. По умолчанию это установлено для файлов сопоставления регулярных выражений, оставшихся от неслитных файлов конфигурации (dpkg-(старый|новый|расстояние)).
ADD_EXTRA_GROUPS
Установка этого значения, отличного от (по умолчанию) заставит adduser добавлять вновь созданных несистемных пользователей в список групп, определенных EXTRA_GROUPS (ниже).
EXTRA_GROUPS
Это список групп, в которые будут добавлены новые несистемные пользователи. По умолчанию этот список — «dialout cdrom floppy audio video plugdev users games».
Смотрим права доступа
Но довольно теории, давайте теперь посмотрим, как просматривать и изменять права доступа в Linux. Узнать права доступа для файла или папки можно в свойствах объекта на вкладке «Права», но для получения полной картины лучше использовать терминал.
Откройте его в каталоге с файлами и выполните такую команду:
ls -l
Если нужно просмотреть права конкретного файла, к команде через пробел нужно добавить имя файла, например, ls -l NTUSER.DAT, если речь идет о папке, то указывается ее имя. В результате вы получите в терминале такую картинку.
Обратите внимание на набор из десяти символов в начале каждой строки, это символьное обозначение прав доступа в Линукс
Первый символ обозначает тип данных, например, дефис означает, что вы имеете дело с обычным файлом, смотрите скриншоты ниже.
В следующих девяти символах «закодированы» права доступа. На самом деле, права указаны в каждой тройке символов, то есть полученную строку rwxrwxrwx можно представить как rwx-rwx-rwx. Первая группа — это права доступа хозяина объекта, вторая группа — это права системной группы, третья тройка символов означает права на файл для всех прочих пользователей.
А вот что означают сами символы:
Зная обозначения, можно легко разобрать любую комбинацию. Например, rwx означает, что пользователь или группа имеет права на чтение, запись и исполнение, r-x — права на доступ и исполнение, но с запретом на изменение или удаление, rw- станет означать наличие прав на чтение и запись, но не право запускать файл как исполняемый.
Получение прав root без переключения
Чтобы реализовать максимально безопасный интерфейс для работы с правами суперпользователя в Linux была разработана команда sudo. Давайте рассмотрим что такое sudo. Эта команда пишется перед каждой командой, которую нужно выполнить от имени суперпользователя, и для ее выполнения нужно ввести пароль уже не root, а всего лишь вашего пользователя. Так же, как и в предыдущей, в этой утилиты есть свои опции. Сначала рассмотрим синтаксис:
$ sudo опции команда
Опции программы:
- -b — выполнять запускаемую утилиту в фоне
- -E — сохранить переменные окружения
- -g — запустить команду от группы
- -H — использовать домашний каталог
- -l — показать список полномочий в sudo для текущего пользователя
- -r — использовать для команды роль SELinux
- -s — использовать оболочку
- -u — запустить команду от имени пользователя, если не задано используется root
- -i — не выполнять команду, а войти в оболочку, эквивалентно su —
Вы можете выполнить те же эксперименты, только для этой команды, чтобы понять как использовать команду sudo. Например:
Или:
Использование sudo — это рекомендованный способ выполнять команды от имени суперпользователя в Linux. Так вы не забудете с чем имеете дело и меньше всего рискуете повредить систему. Более подробно о команде sudo читайте здесь. Но остался еще один нерешенный вопрос — как быть с графическими утилитами? Ведь команда sudo их не запускает, а запускать графическую оболочку от имени root небезопасно. Это мы и рассмотрим далее.
Повышение пользовательских прав командой sudo
Существует более современный способ повышения пользовательских прав с помощью команды sudo (substitute user and do — подменить пользователя и выполнить).
Sudo является программой системного администрирования, дающей возможность выполнять команды от имени root. Если для выполнения команды su все пользователи должны были знать пароль root, что само по себе небезопасно, то sudo его не требует. В sudo нужен пароль самого пользователя.
Sudo работает следующим образом, перед командой которую необходимо выполнить, нужно добавить sudo, например:
От имени root: yum install -y wget При помощи sudo: sudo yum install -y wget
Sudo определяет пользователя сверяясь с настройками находящимися в файле /etc/sudoers, если пользователь внесен в sudoers, то команда выполняется. Если выполнить команду sudo от имени пользователя не внесенного в sudoers, то можно увидеть такую картину:
$ sudo yum install -y wget password for test: test is not in the sudoers file. This incident will be reported.
При попытке выполнить команду sudo, от имени пользователя test, выдается ответ что такого пользователя в файле sudoers не обнаружено. О событии создается запись в лог файле, также высылается электронное письмо root-пользователю с уведомлением о случившемся.
From root@test2.localdomain Sat Feb 11 20:19:12 2017 Return-Path: <root@test2.localdomain> X-Original-To: root Delivered-To: root@test2.localdomain Received: by test2.localdomain (Postfix, from userid 0) id CD2AF8051BC; Sat, 11 Feb 2017 20:19:12 +0300 (MSK) To: root@test2.localdomain From: test@test2.localdomain Auto-Submitted: auto-generated Subject: *** SECURITY information for test2 *** Message-Id: <20170211171912.CD2AF8051BC@test2.localdomain> Date: Sat, 11 Feb 2017 20:19:12 +0300 (MSK) test2 : Feb 11 20:19:12 : test : user NOT in sudoers ; TTY=pts/0 ; PWD=/home/test ; USER=root ; COMMAND=/bin/yum install wget
Для того чтобы пользователь мог выполнять sudo, его надо внести в файл sudoers. Сделать это можно двумя способами.
Первый способ — внесение имени пользователя непосредственно в сам файл /etc/sudoers. Для изменения файла sudoers, требуется обладать правами root.
nano /etc/sudoers Находим строку: root ALL=(ALL) ALL Добавляем под нее имя пользователя, которому будет разрешен доступ к sudo: root ALL=(ALL) ALL test ALL=(ALL) ALL Сохраняем и выходим.
После того как пользователь будет внесен в список допущенных к использованию, он может выполнять команду sudo.
Вторым способом разрешить пользователям выполнять команду sudo, является внесение пользователя в группу wheel, точно так же как в случае с командой su.
Вносим пользователя в группу wheel: usermod -a -G wheel techlist_1 Проверяем: id techlist_1 uid=1001(techlist_1) gid=1004(techlist_1) группы=1004(techlist_1),10(wheel) Перезагружаем систему: reboot
После перезагрузки системы, пользователь внесенный в группу wheel, сможет выполнять sudo.
Для того чтобы полностью сменить окружение пользователя на окружение root, используется команда sudo -i, что равносильно использованию команды su —
$ sudo -i password for test: #
Возвращение в свое пользовательское окружение, происходит при помощи команды exit.
Каждый раз при использовании sudo, требуется ввод пароля пользователя. При вводе пароля, происходит обновление временной метки, что позволяет выполнять sudo без ввода пароля на протяжении некоторого времени. По умолчанию ввод пароля не требуется на протяжении пяти минут, после чего пароль опять будет затребован. Временной промежуток можно изменить при помощи опции timeout в файле sudoers. Существует возможность отключения ввода пароля.
Отключить ввод пароля для пользователей принадлежащих к группе wheel:
Открываем для внесения изменений: nano /etc/sudoers Находим строку: # %wheel ALL=(ALL) NOPASSWD: ALL Раскомментировать строку: %wheel ALL=(ALL) NOPASSWD: ALL Сохраняем изменения и выходим.
Отключить ввод пароля для пользователей добавленных вручную:
Открываем для внесения изменений: nano /etc/sudoers Находим строку с нужным пользователем: test ALL=(ALL) ALL Изменяем ее: test ALL=(ALL) NOPASSWD: ALL Сохраняем изменения и выходим.
Sudo гибкая в настройке и позволяет настроить множество различных параметров. Грамотный администратор знающий sudo может творить настоящие чудеса с пользователями.
Для просмотра руководства по настройке sudo, выполняется команда:
Посмотреть руководство sudo: man sudoers Выйти из руководства: q Посмотреть список дополнительных опций команды: sudo -h
Как в Linux определить и заменить пользователя и группу
Как вы уже знаете, права в Linux могут иметь не только пользователи, но и группы, в связи с чем может возникнуть вопрос: а как определить имя владельца и название группы? Элементарно, их выводит та же команда ls -l. В третьей колонке слева указано имя владельца объекта, название же связанной с объектом группы указано в четвертой колонке.
При желании вы можете заменить хозяина и группу для файла или папки, воспользовавшись такой командой:
sudo chown u:g file
chown — это сама команда замены, u — имя пользователя, которому желаем делегировать права, g — название группы, а file — название самого файла. В данном случае мы передаем права суперпользователю — root.
Установка даты истечения срока действия пользователя
Дата истечения срока — это дата, когда учетная запись пользователя будет отключена. Чтобы установить дату истечения срока действия пользователя, используйте опцию :
sudo usermod -e DATE USER
Срок годности должен быть установлен в формате YYYY-MM-DD.
Например, чтобы отключить пользователя linuxize на 2022-02-21, вы бы выполнить следующую команду:
sudo usermod -e "2022-02-21" linuxize
Чтобы отключить истечение срока действия учетной записи, установите пустую дату истечения срока действия:
sudo usermod -e "" linuxize
Используйте chage команду , чтобы просмотреть дату истечения срока действия пользователя:
sudo chage -l linuxize
Last password change : Jul 24, 2018 Password expires : never Password inactive : never Account expires : never Minimum number of days between password change : 0 Maximum number of days between password change : 99999 Number of days of warning before password expires : 7
Срок годности хранится в /etc/shadow файле.
Изменение прав доступа. Команда chmod
Представим, что вы не хотите, чтобы ваш коллега видел ваши личные изображения. Это может быть достигнуто путем изменения прав доступа к файлам с помощью команды (сокр. от «change mode»). Используя эту команду, мы можем установить права доступа (Чтение, Запись, Выполнение) к файлу/каталогу для Владельца, Группы и всех Остальных пользователей.
Синтаксис команды следующий:
Существует два способа использования команды : символьный и числовой.
Использование команды chmod в символьном режиме
Чтобы задать параметры разрешений для каждой отдельной категории пользователей, применяются следующие символы:
— владелец;
— группа;
— остальные пользователи;
— для всех трех категорий (Владелец + Группа + Остальные).
А также используются следующие математические символы:
— добавление разрешений;
— удаление разрешений;
— переопределение существующих разрешений новым значением.
Теперь, когда вы знаете, как это работает, давайте попробуем использовать команду в символьном режиме и установим новые разрешения для ранее упомянутого файла Адреса.txt следующим образом:
чтение, запись и выполнение для Владельца;
чтение и запись для членов Группы;
чтение для Остальных пользователей.
В результате мы получаем:
Как видите, права доступа к файлу изменились с на , что нам и требовалось.
А если мы теперь хотим убрать разрешение на чтение файла для пользователей, не входящих в нашу группу и не являющихся владельцем файла, то достаточно выполнить следующее:
Результат:
Права доступа к файлу изменились с на .
Подумав, мы решаем дать полные права (за исключением права на выполнение) абсолютно всем пользователям системы, и выполняем команду:
Результат:
Права доступа к файлу изменились с на . Все пользователи могут читать и изменять наш файл, но ни у кого нет права на его выполнение.
Использование команды chmod в числовом режиме
Другой способ указать права доступа к файлу — применить команду в числовом режиме. В этом режиме каждое разрешение файла представлено некоторым числом (в восьмеричной системе счисления):
(чтение/просмотр) = 4
(запись/изменение) = 2
(выполнение) = 1
(не задано) =
Допускается объединение данных числовых значений, и таким образом одно число может использоваться для представления всего набора разрешений. В следующей таблице приведены цифры для всех типов разрешений:
Число | Тип разрешения | Символ |
Нет разрешения | −−− | |
1 | Выполнение | −−x |
2 | Запись | −w− |
3 (2+1) | Запись + Выполнение | −wx |
4 | Чтение | r−− |
5 (4+1) | Чтение + Выполнение | r−x |
6 (4+2) | Чтение + Запись | rw− |
7 (4+2+1) | Чтение + Запись + Выполнение | rwx |
Поскольку вы должны определить разрешения для каждой категории пользователей (Владелец, Группа, Остальные), команда будет включать в себя три числа (каждое из которых представляет собой сумму привилегий).
В качестве примера, давайте посмотрим на наш файл Адреса.txt, права которого, я напомню, мы сконфигурировали (в символьном режиме) с помощью команды:
Те же параметры разрешений, но уже в числовом формате, можно определить следующим образом:
Теперь поменяем разрешения файла так, чтобы Владелец мог читать и писать, Группа — только читать, а у Остальных — вообще не было прав на доступ. Судя по вышеприведенной таблице, для Владельца числовое представление прав доступа соответствует числу (), для Группы — числу (), а для Остальных — (). В совокупности должно получиться ():
Результат:
Как видите, права изменились с на , этого мы и хотели.
Переключение на суперпользователя в терминале
Теперь мы подошли к более интересному и практичному. С помощью специальных утилит вы можете переключить текущий эмулятор терминала в окружения суперпользователя и выполнять все следующие команды не от своего имени, а от его, таким образом, дав программе права root linux. Для этого существует утилита su. Вообще говоря, эта утилита позволяет не только переключаться на пользователя root но и на любого другого пользователя, но по умолчанию используется именно root. Рассмотрим ее подробнее. Команда su linux имеет следующий синтаксис:
$ su опции пользователь
Вот ее основные опции:
- -c, —command — выполнить команду
- -g, —group — установить основную группу пользователя (только для root)
- -G —supp-group — дополнительные группы пользователя (только для root)
- -, -l, —login — режим входа, будут очищены и инициализированы с учетом нового пользователя все переменные окружения, а также изменен домашний каталог
- -p, —preserve-environment — сохранить переменные окружения
- -s, —shell — задать оболочку для входа
- —version — отобразить версию программы.
Теперь немного поэкспериментируем, чтобы понять как работает команда su linux.
Сначала выполним su без параметров, но для начала создадим переменную окружения, чтобы проверить как с ними обходится эта команда:
Теперь выполняем:
Теперь смотрим что получилось:
Из этих команд мы видим, что теперь мы пользователь root, но домашней директорией считается директория нашего предыдущего пользователя и наша переменная не сохранилась также изменилась переменная PATH, теперь там добавлен путь /sbin.
Теперь используем вход в режиме логина:
И повторим ту же комбинацию:
Та же ситуация, только на этот раз изменена ко всему еще и домашняя директория на директорию root. Но мы можем сохранить наши переменные окружения, если это нужно, для этого есть опция -p:
Как видите, наша переменная осталась. Вы также можете переключится на любого другого пользователя. Например:
Более подробно о команде su вы можете почитать в отдельной статье. Получение прав суперпользователя таким способом используется во многих дистрибутивах, например, Debian, OpenSUSE, ArchLInux, Gentoo и т д. Но в Ubuntu, как дистрибутиве для начинающих вход под пользователем root отключен. Это сделано потому, что это тоже не очень безопасно, вы можете забыть что выполняете команду от root и что-то натворить в системе. Поэтому переходим к следующей программе.
Как рекурсивно изменить владение группой
Чтобы рекурсивно изменить групповое владение всеми файлами и каталогами в данном каталоге, используйте параметр .
Например, следующая команда изменит владельца всех файлов и каталогов в каталоге на группу :
Если указана рекурсивная опция, не будет проходить по символическим ссылкам и не будет вносить изменений в символические ссылки. Чтобы изменить групповое владение символическими ссылками, передайте параметр :
Другие параметры, которые можно использовать при рекурсивном изменении владения группой, — это и .
Если аргумент, переданный команде является символической ссылкой, опция заставит команду пройти по ней. указывает по каждой символической ссылке в обнаруженный каталог. В большинстве случаев вам не следует использовать эти параметры, потому что вы можете испортить свою систему или создать угрозу безопасности.
Управление пользователями
Просмотр
Вся информация о пользователях хранится в файле .
Каждый аккаунт занимает одну строку, в формате
- — имя пользователя.
- — зашифрованный пароль пользователя.
- — идентификационный номер пользователя.
- — идентификационный номер основной группы пользователя.
- — необязательное поле, используемое для указания дополнительной информации о пользователе (например, полное имя пользователя).
- — домашний каталог ($HOME) пользователя.
- — командный интерпретатор пользователя (обычно /bin/sh).
Получение информации о пользователях
- – вывод информации (имя пользователя, рабочий терминал, время входа в систему, информацию о потребленных ресурсах CPU и имя запущенной программы) о всех вошедших в систему пользователях.
- – вывод информации (имя пользователя, рабочий терминал, время входа в систему) о всех вошедших в систему пользователях.
- или или – вывод вашего имени пользователя.
- – вывод имен пользователей, работающих в системе.
- – вывод о идентификаторах пользователя: его uid, имя_пользователя, gid и имя первичной группы и список групп в которых состоит пользователь
- – вывод списка групп в которых состоит пользователь.
Добавление пользователя
Добавление пользователя осуществляется при помощи команды useradd.
Ключи:
- Базовый каталог. Это каталог, в котором будет создана домашняя папка пользователя. По умолчанию /home.
- Комментарий. В нем вы можете напечатать любой текст.
- Название домашнего каталога. По умолчанию название совпадает с именем создаваемого пользователя.
- Дата, после которой пользователь будет отключен. Задается в формате ГГГГ-ММ-ДД. По умолчанию отключено.
- Количество дней, которые должны пройти после устаревания пароля до блокировки пользователя, если пароль не будет изменен (период неактивности). Если значение равно 0, то запись блокируется сразу после устаревания пароля, при -1 — не блокируется. По умолчанию -1.
- Первичная группа пользователя. Можно указывать как GID, так и имя группы. Если параметр не задан будет создана новая группа название которой совпадает с именем пользователя.
- Список вторичных групп в которых будет находится создаваемый пользователь
- Каталог шаблонов. Файлы и папки из этого каталога будут помещены в домашнюю папку пользователя. По умолчанию /etc/skel.
- Ключ, указывающий, что необходимо создать домашнюю папку. По умолчанию домашняя папка не создается.
- Зашифрованный пароль пользователя. По умолчанию пароль не задается, но учетная пользователь будет заблокирован до установки пароля.
- Оболочка, используемая пользователем. По умолчанию /bin/sh.
- Вручную задать UID пользователю.
Если при создании пользователя не указываются дополнительные ключи, то берутся настройки по умолчанию. Посмотерть настройки по-умолчанию можно с помощью команды .
Если вас не устраивают такие настройки, вы можете поменять их выполнив , где это ключ из таблицы выше.
Изменение пользователя
Изменение параметров пользователя происходит с помощью утилиты usermod. Пример использования:
Изменить пароль пользователю можно при помощи утилиты passwd.
Утилита passwd может использоваться и обычным пользователем для смены пароля.
Основные ключи passwd:
- Удалить пароль пользователю. После этого пароль будет пустым, и пользователь сможет входить в систему без предъявления пароля.
- Сделать пароль устаревшим. Это заставит пользователя изменить пароль при следующем входе в систему.
- Заблокировать учетную запись пользователя по прошествии указанного количества дней после устаревания пароля.
- Минимальное количество дней между сменами пароля.
- Максимальное количество дней, после которого необходимо обязательно сменить пароль.
- Заблокировать учетную запись пользователя.
- Разблокировать учетную запись пользователя.
Установка пустого пароля пользователя
Супер пользователь с помощью утилит командной строки passwd и usermod или путем редактирования файла /etc/shadow может удалить пароль пользователь, дав возможность входить в систему без указания пароля.
или
После этого имеет смысл принудить пользователя установить себе новый пароль при следующем входе в систему.
Удаление пользователя
Для того, чтобы удалить пользователя воспользуйтесь утилитой userdel.
Пример использования:
- Принудительно удалить пользователя, даже если он сейчас работает в системе.
- Удалить домашний каталог пользователя.