Разрешения и права доступа к файлам linux с примерами

Как создать нового пользователя

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

При создании логина пользователя в CentOS можно использовать не более 32 знаков (a-z,A-Z,0-9,_,-). Имя логина не может начинаться с цифры. Хорошей практикой принято считать использование не более 8 символов, это позволит добиться большей совместимости со старыми программами, которые не принимают логины пользователей с количеством символов больше 8.

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

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

Ощущения от использования Astra

Писать тексты, обрабатывать фотографии и работать с документацией можно

Для тех, кто использовал популярные дистрибутивы Linux, Windows или macOS, Astra Linux станет интуитивно понятной и не потребует сколько-то значимого времени для привыкания.

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

Ресурсов нужно немного

«Железо» определяет моментально, поэтому каких-либо проблем с установкой и запуском не предвится.

На данный момент среди аппаратных партнеров Astra Linux, предоставляющих необходимые данные для оптимизации системы, числятся все свободно продаваемые в России пользовательские и профессиональные решения.

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

Есть ли приоритет в правах доступа к файлам?

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

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

Но как же так? Ведь пользователь diego является частью группы coolgroup, а группа имеет доступ на чтение. И даже все другие пользователи имеет разрешение на чтение и запись! Это должно означать, что каждый (включая пользователя diego) может читать и изменять файл, не так ли? Неправильно!

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

Если процесс инициировал не Владелец файла, то система проверяет Группу. Если пользователь, инициировавший процесс, находится в той же Группе, что и Группа-владелец файла, то считываются биты разрешений для Группы.

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

Внешний вид: привыкать не придется

Внешний вид Astra Linux максимально оптимизирован для простых смертныхг>. Даже загрузочный экран и меню «логин-пароль» привычны и просты.

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

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

Есть Win-образный «Пуск» в стилистике старых версий ОС с группировкой встроенных приложений по виду деятельности.

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

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

Давайте рассмотрим, как удалить пользователя Linux в терминале. Для этого используется команда — deluser в Debian и производных системах, а в RHEL — userdel. Рассмотрим подробнее эти две утилиты.

Описание deluser

Синтаксис команды deluser очень простой:

$ deluser параметры пользователь

Настройки команды deluser находятся в файле /etc/deluser.conf, среди прочих настроек там указанно что нужно делать с домашней папкой и файлами пользователя.  Вы можете посмотреть и изменить эти настройки выполнив команду:

Рассмотрим подробнее эти настройки:

  • REMOVE_HOME — удалять домашний каталог пользователя
  • REMOVE_ALL_FILES — удалить все файлы пользователя
  • BACKUP — выполнять резервное копирование файлов пользователя
  • BACKUP_TO — папка для резервного копирования
  • ONLY_IF_EMPTY — удалить группу пользователя если она пуста.

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

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

  • —system — удалять только если это системный пользователь
  • —backup — делать резервную копию файлов пользователя
  • —backup-to — папка для резервных копий
  • —remove-home — удалять домашнюю папку
  • —remove-all-files — удалять все файлы пользователя в файловой системе

Описание userdel

Утилита userdel работает немного по-другому, файла настроек здесь нет, но есть опции, с помощью которых можно сообщить утилите что нужно сделать. Синтаксис аналогичный:

$ userdel параметры пользователь

  • -f, —force — принудительное удаление, даже если пользователь еще залогинен.
  • -r, —remove — удалить домашнюю директорию пользователя и его файлы в системе.
  • -Z — удалить все SELinux объекты для этого пользователя.

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

Блокировка учетной записи пользователя

Для блокировки учетной записи пользователя можно использовать утилиту passwd. Это запретит пользователю доступ к системе и предотвратит запуск новых процессов. Выполните команду passwd с параметром —lock:

Уничтожить все запущенные процессы пользователя

Теперь давайте найдем все запущенные от имени пользователя процессы и завершим их. Найдем процессы с помощью pgrep:

Посмотреть подробнее, что это за процессы можно передав pid, каждого из них в команду ps, вот так:

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

Опция -9 говорит программе, что нужно отправить этим процессам сигнал завершения SIGKILL, а -u задает имя пользователя.

В основанных на Red Hat системах, для использования killall необходимо будет установить пакет psmisc:

Резервное копирование данных пользователя

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

Удаление учетной записи пользователя

Теперь, когда все подготовлено, начинаем удаление пользователя linux. На всякий случай укажем явно, что нужно удалять файлы пользователя и домашнюю директорию. Для Debian:

Для Red Hat:

Если нужно удалить все файлы, принадлежащие пользователю в системе используйте опцию —remove-all-files, только будьте с ней осторожны, так и важные файлы можно затереть:

Теперь пользователь полностью удален, вместе со своими файлами и домашней директорией из вашей системы.

Настройка Samba в Ubuntu 16.04

Ставим Samba и если у кого нет — пакет gksu, для возможности запуска окна настроек Samba:

sudo apt install samba system-config-samba gksu

Теперь переходим к настройке сервера

Создаём резервную копию оригинального файла конфигурации Samba:

sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak

После этого, создаём свой файл конфигурации:

sudo gedit /etc/samba/smb.conf

Указываем глобальные настройки файлового сервера.
Копируем в файл эти строки:


workgroup = WORKGROUP
server string = Samba Server %v
netbios name = SambaSrv
security = user
map to guest = bad user
name resolve order = bcast host
wins support = no
dns proxy = no

Что мы скопировали?
А вот что:

workgroup - рабочая группа, в которой находятся все наши машины
server string - строка коментария, где %v - это макрос, который будет заменён на версию Самбы
netbios name - имя Самба-сервера, которое будет отображаться в Windows
security - по умолчанию выполнять аутентификацию на уровне пользователя
map to guest - это инструкция демону, которая сообщает, что делать с запросами. bad user - означает,
что запросы с неправильным паролем будут отклонены, если такое имя пользователя существует
name resolve order - очередность разрешения IP адресов по NetBIOS имени. bcast - означает отправить
в локальную сеть широковещательный запрос. Если все компьютеры между которыми планируется взаимодействие
находятся в одной сети этот вариант оптимальный.
wins support - не устанавливайте этот параметр в yes если у вас нет нескольких подсетей и вы не хотите,
чтобы ваш nmbd работал как WINS сервер

Сохраняем изменения.

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

Общий доступ к папке в Ubuntu

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

sudo mkdir -p /samba/obmen

Ключ -p разрешает создавать вложенные папки.
~ — создать каталоги в домашней папке пользователя

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

cd /samba
sudo chmod -R 0755 obmen
sudo chown -R nobody:nogroup obmen/

Внесём изменения в файл настройки samba, добавив следующий раздел:


path = /samba/obmen
browsable = yes
writable = yes
guest ok = yes
read only = no

Теперь ваш конфигурационный файл должен выглядеть вот так:


workgroup = WORKGROUP
server string = Samba Server %v
netbios name = SambaSrv
security = user
map to guest = bad user
name resolve order = bcast host
dns proxy = no


path = /samba/obmen
browsable =yes
writable = yes
guest ok = yes
read only = no

Чтобы применить изменения, перезапустите сервер Samba:

sudo service smbd restart

С анонимным доступом к общему ресурсу мы закончили.

Теперь можем проверить доступность этой папки в Windows-машине.

Нажимаем Win+R и в адресной строке пишем:

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

Защищенный общий доступ к папке Ubuntu

Чтобы расшарить папку для Windows в Ubuntu, к которой будут иметь доступ только пользователи из определенной группы, создадим отдельную папку и опишем ее в файле настройки Samba в Ubuntu.

Создаем папку:

sudo mkdir -p /samba/obmen/sec

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

Создаем группу:

sudo addgroup securedgroup

Настраиваем права:

cd /samba/obmen
sudo chmod -R 0770 sec/
sudo chown -R alex:securedgroup sec

Добавляем настройки в конфигурационный файл samba

Открываем конфигурационный файл

sudo gedit /etc/samba/smb.conf

И добавляем в него этот блок:


path = /samba/obmen/sec
valid users = @securedgroup
guest ok = no
writable = yes
browsable = yes

Перезапускаем сервер Samba.

Теперь доступ к общей папке в Ubuntu могут получить только пользователи группы securegroup.

Чтобы проверить как это работает добавим пользователя alex в нашу группу:

sudo usermod -a -G securedgroup alex

Чтобы пользователь мог работать с расшаренными папками в Ubuntu, он должен быть в базе данных Samba.

Создаём для него пароль Samba:

sudo smbpasswd -a alex

После ввода команды будет предложено ввести новый пароль.

Для применения изменений перезагружаем файловый сервер.

Для того, чтобы доступ к папке мог получить только определённый пользователь, заменяем @securedgroup на имя пользователя.

Вот и всё

10 октября 2016, 18:32
  
Александр

Linux

  
13349

Из этой категории

Установка LAMP-сервера и phpMyAdmin в Debian 10Установка XAMPP в Debian 10 (Ubuntu) LinuxОтключить пароль SUDO в LinuxBash-команды для экономии времениУстанавливаем Brackets в Debian 10Работа с пакетами при помощи dpkgНастройка Linux Debian 10Скачиваем сайты целиком — утилита wget15 специальных символов-команд, которые нужно знать для работы в Bash Linux42 команды Linux

Файл /etc/passwd – описание локальных учётных записей

Если в системе не используется какая-либо автоматизированная служба управления каталогами (например LDAP, NIS), то файл /etc/passwd – это именно тот файл, в котором хранится информация об учётных записях пользователей, известных системе. К этому файлу система обращается всякий раз при попытке авторизации пользователя в поисках требуемого идентификатора пользователя и определения его домашнего каталога. Формат этого файла заключается в том, что каждая строка в нём соответствует одному конкретному пользователю (учётной записи), в которой (в строке) перечислены атрибуты (поля) учётной записи, разделяемые символом двоеточия:

  1. Имя пользователя.
  2. Пароль пользователя (в шифрованном виде) или «заполнитель» пароля.
  3. Идентификатор пользователя.
  4. Идентификатор группы пользователя (по умолчанию).
  5. Информация GECOS — полное имя, офис, телефоны и т. д.
  6. Домашний каталог.
  7. Регистрационная оболочка.

Содержимое файла /etc/passwd может выглядеть следующим образом: Как можно видеть, второе поле для всех записей содержит символ «x» — заполнитель пароля. В Linux-системах зашифрованные пароли хранятся отдельно, в файле /etc/shadow. В случае, если совместно с файлом /etc/passwd используется служба автоматизированного управления каталогами, то в этом же файле имеются записи, начинающиеся с символа «+». Такие записи содержат инструкции по интеграции службы управления каталогами в системе. Стоит вкратце рассмотреть поля учётных записей:

  • Имя пользователя или регистрационное имя
    — уникальное имя, которое должно составляться согласно правилам построения регистрационных имён для той или иной системы. Для Linux длина регистрационного имени может быть не более 32 символов. Допускается использование только строчных букв с включением цифр. Начинаться регистрационное имя должно с буквы.
  • Зашифрованный пароль
    — как уже отмечалось, пароли для локальных учётных записей хранятся в /etc/shadow в зашифрованном виде. В Linux в качестве криптографических инструментов для шифрования паролей используются алгоритмы crypt, MD5, Blowfish. Минимальная длина пароля составляет 5 символов, максимальная 8
  • Идентификатор пользователя
    — это целое число без знака, по которому система «распознаёт» отдельных пользователей, поэтому идентификаторы пользователей используются системой и программной средой, в то время как имена пользователей служат для наглядности и удобства представления пользователей в системе. Для пользователя root зарезервирован идентификатор под номером 0, также рекомендуется присваивать реальным пользователям идентификаторы, следующие после 500, поскольку в системе может быть много «неперсонифицированных» пользователей, таких как bin или daemon – это позволит содержать в порядке список пользователей и избегать путаницы. Также в Linux-системах предусмотрен псевдопользователь nobody, с идентификатором -1 или -2. Обычно этот псевдопользователь используется, когда суперпользователь системы пытается получить доступ к файлам, примонтированным с другого компьютера, у которого нет доверия к исходному компьютеру.
  • Идентификатор группы
    — целое число без знака, аналогично идентификатору пользователя предназначено для обозначения в системе уникальных групп пользователей. Под номером 0 зарезервирована группа root. Группы используются в основном для удобного управления и организации совместного доступа к файлам. Как и в случае с идентификаторами пользователей, в системе зарезервированы группы (например bin) для использования самой системой.
  • Поле
    GECOS
    – информация, которая не имеет чётко определённой спецификации, отражает в себе дополнительные данные о пользователе: его полное имя, телефоны, сведения о должности и отделе и т. д. Информацию в этом поле можно менять с помощью команды chfn.
  • Домашний каталог
    — «место» в дереве файловой системы, которое отведено для хранения данных определённого пользователя. Этот каталог из соображений безопасности должен быть доступен только пользователю-владельцу этого каталога. Если домашний каталог отсутствует на момент регистрации, то пользовательские данные помещаются в каталог /. Также, если в файле /etc/login.defs в опции DEFAULT_HOME, задающем домашний каталог по умолчанию указано значение no, то авторизация/регистрация пользователя будет невозможной.
  • Регистрационная оболочка
    — командная оболочка интерпретатора команд (или любая другая программа), которая запускается при входе пользователя в свою учётную запись. Для Linux используется интерпретатор

Смена владельца и группы

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

Чтобы изменить владельца файла, необходимо применить команду (сокр. от «change owner»), синтаксис которой довольно прост:

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

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

Или же используйте команду (сокр. от «change group«), специально применяемую для изменения владельца группы файла или каталога:

В качестве тренировки давайте сменим владельца и группу файла Адреса.txt на пользователя root и группу root (при этом вам могут понадобиться права суперпользователя):

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

Заметьте, что мне пришлось использовать с . Это потому, что здесь задействован пользователь root, и чтобы иметь с ним дело, вам нужны права суперпользователя.

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

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

Userdel john

Удалит пользователя john, но зачастую (как и команда useradd
, кстати) не в «чистом» виде, а в виде Perl-оболочек с использованием сценария удаления учётной записи. Например, в дистрибутивах Ubuntu используется команда deluser, которая является обычным сценарием на Perl. Который, в свою очередь, вызывает саму команду userdel для удаления и очистки всего того, что было сделано ранее командой useradd
. При этом, используется файл сценария (обычно это файл /etc/deluser.conf в Ubuntu и /etc/login.defs в RedHat). Который позволяет задать следующие опции для работы команды userdel:

Использование: userdel ПОЛЬЗОВАТЕЛЬ

Параметры:-f
, —force принудительное удаление пользователя и файлов, даже если они используются в настоящее время-r
, —remove удалить домашний каталог и почтовый ящик-R
, —root КАТ_CHROOT каталог, в который выполняется chroot-Z
, —selinux-user удалить все пользовательские сопоставления
SELinux для пользователя

Добавляем нового пользователя в Ubuntu

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

Способ 1: Терминал

Незаменимое приложение в любой операционной системе на ядре Linux — «Терминал». Благодаря этой консоли производится множество самых разнообразных операций, в том числе и добавление пользователей. Задействована при этом будет всего лишь одна встроенная утилита, но с разными аргументами, о которых мы расскажем ниже.

  1. Откройте меню и запустите «Терминал», либо же вы можете зажать комбинацию клавиш Ctrl + Alt + T.

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

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

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

На этом процедура создания учетной записи со стандартными параметрами успешно завершена, после активации команды отобразится новое поле. Здесь вы можете ввести аргумент -p, указав пароль, а также аргумент -s, задав используемую оболочку. Пример такой команды выглядит так: , где passsword — любой удобный пароль, /bin/bash — расположение оболочки, а user — имя нового пользователя. Таким образом создается юзер с применением определенных аргументов.

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

Из основных групп выделяются такие:

  • adm — разрешение на прочтение логов из папки /var/log;
  • cdrom — позволяется использовать привод;
  • wheel — возможность использовать команду sudo для предоставления доступа к определенным задачам;
  • plugdev — разрешение на монтирование внешних накопителей;
  • video, audio — доступ к аудио и видеодрайверам.

На скриншоте выше вы видите, в каком именно формате вводятся группы при использовании команды useradd с аргументом -G.

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

  • -b — использование базовой директории для размещения файлов юзера, обычно это папка /home;
  • -c — добавление комментария к записи;
  • -e — время, через которое созданный юзер будет заблокирован. Заполнять следует в формате ГГГГ-ММ-ДД;
  • -f — блокировка юзера сразу после добавления.

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

Способ 2: Меню «Параметры»

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

  1. Откройте меню и через поиск отыщите «Параметры».

На панели снизу нажмите на «Сведения о системе».

Перейдите в категорию «Пользователи».

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

Укажите свой пароль и щелкните на «Подтвердить».

Теперь активируется кнопка «Добавить пользователя».

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

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

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

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

Опишите, что у вас не получилось.
Наши специалисты постараются ответить максимально быстро.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

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