вторник, 12 сентября 2017 г.

Как сделать раздел жесткого диска доступным нескольким пользователям

Данная заметка написана для начинающих пользователей Linux. В ней описывается как примонтировать раздел жесткого диска таким образом, что бы у нескольких пользователей в системе были права на доступ к файлам (на чтение и запись). Вся информация подходит только для файловых систем использующих unix права доступа (таких как ext3, ext4 и т.п.) и не подходит для файловых систем NTFS и FAT.
Допустим, у нас есть два пользователя состоящие в разных группах
sudo cat /etc/passwd

ruslan:x:1000:1000:Руслан:/home/ruslan:/bin/zsh
marina:x:1001:1001:Марина:/home/marina:/bin/bash
В данном случае файл созданный одним пользователем не может быть прочитан или изменен другим пользователем. Нам же необходимо сделать так, что бы у обоих пользователей по-умолчанию была возможность просматривать и редактировать файлы друг друга. Для этого добавляем новую группу users(можно назвать её как угодно):
sudo groupadd users
Добавляем в данную группу наших пользователей:
sudo gpasswd -a ruslan users
sudo gpasswd -a marina users
Теперь подключим наш раздел жесткого диска. К примеру, мы хотим смонтировать раздел в директорию /mnt/data. Добавляем запись в файл /etc/ftab:
UUID=298cf7e7-634e-4f21-bd49-358cb02de76c    /mnt/data   ext4    defaults    0 2
В поле UUID вы должны прописать идентификатор своего раздела, который можно узнать выполнив команду sudo blkid.
Создаем необходимую директорию и меняем её группу на users:
sudo mkdir /mnt/data
sudo chgrp users /mnt/data
sudo chmod g+s /mnt/data
Последней командой мы выставляем бит setgid для директории. Данный бит нужен для того, что бы создаваемые в директории файлы наследовали группу этой директирии, вместо группы пользователя создавшего файл. Таким образом все новые файлы будут принадлежать группе users и пользователи смогут совместно работать с ними. Все создаваемые поддиректории также будут автоматически получать бит setgid.
Теперь можете смонтировать директорию (sudo mount -a) и начинать работать с расшареным диском. Хочу отметить, что всё вышесказанное подходит не только для создания общедоступных дисков, но и для совершенно любой директории на существующем диске (просто включите директорию в необходимую группу и установите бит setgid).

понедельник, 4 сентября 2017 г.

КАК ПОЛЬЗОВАТЬСЯ PHPMYADMIN

 Управление базами данных — один из самых важных моментов в разработке веб-сайтов приложений и других программных продуктов. Для многих программ нужно вручную создавать базы данных перед тем, как они смогут быть установлены и настроены. Если вы используете хостинг, то там есть веб-интерфейс для решения таких задач, но на VPS все придется делать вручную, через терминал или использовать phpmyadmin.
Это очень популярный инструмент для управления базой данных mysql. Здесь вы можете сделать практически все, начиная от создания базы данных и настройки прав доступа до создания пользователей и резервного копирования. В этой статье мы рассмотрим как пользоваться Phpmyadmin для решения своих задач.

КАК ПОЛЬЗОВАТЬСЯ PHPMYADMIN

Первое что вам предстоит после установки phpmyadmin — это открыть веб-интерфейс и авторизоваться в нем. Обычно веб-интерфейс доступен по адресу:
http://адрес_сайта/phpmyadmin
Это если вы ничего не меняли. Просто откройте этот адрес в браузере.

1. АВТОРИЗАЦИЯ

Когда вы откроете указанный выше адрес, перед вами откроется поле ввода логина и пароля. Я буду использовать суперпользователя, поскольку я собираюсь создавать базы данных, создавать новых пользователей и управлять их правами. Если вам нужно только выполнить SQL запрос как базе данных пользователя, то можно использовать его. В mysql для каждого пользователя можно прикрепить базу данных, к которой у него будет доступ что очень удобно.
Теперь вы знаете как войти в phpmyadmin.

2. ПЕРВОНАЧАЛЬНАЯ НАСТРОЙКА

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

3. ИНТЕРФЕЙС

Теперь пора более детально остановиться на интерфейсе программы. Перед вами открылось главное окно, оно выглядит вот так:
Условно его можно разделить на несколько частей:
  • Боковая панель — находится слева, тут отображается вертикальный список доступных для вас в данный момент баз данных, а также их таблиц. Вы можете развернуть каждую из них чтобы посмотреть таблицы. Также тут есть быстрые кнопки — обновить, домой и так далее;
  • Главное меню — это полоска, которая находится под именем сервера. Именно с помощью нее мы будем перемещаться по различным возможностям программы, таким как базы данных, пользователи, экспорт и импорт и так далее;
  • Рабочая область — тут отображается рабочая информация, сейчас, в главном окне тут находится информация о сервере, в других же случаях может находится содержимое базы данных или поле ввода текста.
Как видите, все довольно просто, несмотря на то, что на первый взгляд, интерфейс может показаться сложным.

4. СОЗДАНИЕ БАЗЫ ДАННЫХ

Теперь нас интересует первая вкладка меню. Базы данных. Здесь вы увидите список доступных вам баз данных, а также поле для создания новой базы над ними. Введите в это поле имя для новой базы, а затем выберите кодировку utf8-general-ci:
После этого нажмите кнопку «Создать». Будет создана новая база данных, и вы сразу перейдете в нее. Теперь вы управляете только ею и главное меню немного изменилось.

5. СОЗДАНИЕ ТАБЛИЦ

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

На следующем шаге нам предстоит выбрать типы данных для столбцов и их имена:
Я создам четыре поля:
  • id — формат INT, длина 255, AUTOINDEX, автоматически увеличивается для каждой новой записи, PRIMARY — используется как первичный ключ для ускорения поиска по этому полю;
  • time — формат TIMESTAMP — временная метка в формате Unix, CURRENT_TIMESTAMP — автоматически устанавливается текущее время когда создается запись в этом поле;
  • name и lastname — обычные строки VARCHAR длиной 1024 символа;
Внизу окна можно еще выбрать тип движка таблиц. Самый популярный — InnoDB, он самый производительный, но требователен к ресурсам. Можно еще выбрать AriaDB, но тогда производительность упадет. Когда завершите, нажмите кнопку «Сохранить» в самом низу:
Далее вы попадете на страницу этой таблицы и меню снова изменится. Тут вы можете настроить связи между таблицами, изменить ее структуру, добавить новые поля, выполнить поиск и вставить новые записи.

6. ВСТАВКА ЗАПИСЕЙ

Phpmyadmin позволяет делать практически все с таблицами баз данных, самое простое, что мы можем сейчас сделать — это вставить новую запись. Для этого перейдите на вкладку «Вставить»:
Здесь вы можете вставить несколько записей за один раз. Заполнять нужно только те поля, для которых не были заданы значения по умолчанию — name и lastname.
Когда завершите, пролистайте в самый низ и нажмите «Вперед». Здесь же можно установить количество полей, которые вы хотите добавить.

Далее перед вами откроется либо редактор SQL с только что выполненным запросом, либо обзор полей таблицы:

7. ВЫПОЛНЕНИЕ SQL ЗАПРОСА

Если вы не знаете как пользоваться phpmyadmin для выполнение того или иного действия, но знаете как его выполнить через SQL, то это не проблема в phpmyadmin можно выполнить любой SQL запрос. Для этого в меню таблицы или базы данных перейдите на вкладку SQL:
Сразу же тут вы найдете различные шаблоны для запросов.
Или можете ввести нужный запрос сами, вручную. Для выполнения запроса нажмите «Вперед». Перед вами откроется результат запроса, если были получены какие-либо поля, то они будут выведены, если же нет, то просто будет выведено сообщение о том что все прошло успешно.

8. СОЗДАНИЕ ПОЛЬЗОВАТЕЛЯ

С основными операциями над базой данных мы разобрались, как вы могли убедится, работа с phpmyadmin очень проста, теперь давайте рассмотрим как настроить привилегии. Сначала нам нужно создать пользователя для базы данных. Для этого перейдите на домашний экран, а затем выберите «Учетные записи пользователей»:
Здесь отображен список всех пользователей, если вы авторизовались не от имени root, то, возможно, вам придется выйти и авторизоваться заново. Под списком есть ссылка «Добавить учетную запись пользователя»:
Тут вам нужно заполнить несколько полей. Во-первых, это имя пользователя. Оно может состоять из символов английского алфавита, цифр или дефиса, другие символы использовать можно, но лучше не нужно во избежание проблем. Следующее поле — это хост, с которого сможет авторизоваться этот пользователь, по умолчанию установлено значение %, это любой хост. Но нам нужно чтобы пользователь мог войти только локально, поэтому пишем localhost. Следующие два поля — пароль:
Чуть ниже вы можете создать базу данных с таким же именем, как у пользователя, или же настроить для него глобальные привилегии. Когда завершите, нажмите «Вперед».

9. ПРИВИЛЕГИИ ПОЛЬЗОВАТЕЛЯ

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

Здесь вам нужно выбрать базу данных, к которой у пользователя будет доступ, например, site-control:
Дальше нажмите «Вперед». На следующем экране вам нужно отметить права, которые будут у пользователя на эту базу, можно просто нажать «Отметить все»:
На вкладке «Глобальные» вы все еще можете изменить глобальные привилегии пользователя.

10. ЭКСПОРТ И ИМПОРТ

Резервное копирование базы данных имеет очень важное значение. И эту функцию вы можете выполнять с помощью Phpmyadmin. Для этого перейдите на вкладку «Экспорт»:
В быстром режиме можно выполнить резервное копирование всех баз в формате SQL. Просто нажмите «Вперед»:
Для импорта перейдите на вкладку «Импорт» и выберите файл *.sql из которого вы хотите импортировать команды.

воскресенье, 27 августа 2017 г.

КОМАНДА LS LINUX

Если вы часто используете терминал, то довольно часто возникает необходимость посмотреть содержимое той или иной папки. Автодополнение спасает во многих случаях, но если вы не знаете что искать и не хотите использовать файловый менеджер, то быстро посмотреть что находится в папке может быть очень полезно. Другое применение команды ls — посмотреть разрешения для файлов и папок.
Установка правильных прав и владельца файла имеет очень важное значение для работы различного программного обеспечения, например, того же самого веб-сервера. В этой статье будет рассмотрена команда ls linux, основные ее опции и возможности, а также примеры применения.

КОМАНДА LS LINUX

Как обычно, в таких статьях сначала нам нужно понять синтаксис команды, чтобы вы знали как правильно ее использовать. На самом деле, синтаксис очень прост, вы набираете саму команду, а после нее путь к папке, содержимое которой хотите посмотреть. Если вы запустите команду без пути, то она выдаст содержимое текущего каталога:
$ ls опции /путь/к/папке
Опции команды указывают как именно и в каком виде нужно выводить информацию на экран, а путь, это та папка, которую нужно отобразить. Рассмотрим основные опции утилиты:
  • -a — отображать все файлы, включая скрытые, это те, перед именем которых стоит точка;
  • -A — не отображать ссылку на текущую папку и корневую папку . и ..;
  • —author — выводить создателя файла в режиме подробного списка;
  • -b — выводить Escape последовательности вместо непечатаемых символов;
  • —block-size — выводить размер каталога или файла в определенной единице измерения, например, мегабайтах, гигабайтах или килобайтах;
  • -B — не выводить резервные копии, их имена начинаются с ~;
  • -c — сортировать файлы по времени модификации или создания, сначала будут выведены новые файлы;
  • -C — выводить колонками;
  • —color — включить цветной режим вывода, автоматически активирована во многих дистрибутивах;
  • -d — выводить только директории, без их содержимого, полезно при рекурсивном выводе;
  • -D — использовать режим вывода, совместимый с Emacs;
  • -f — не сортировать;
  • -F — показывать тип объекта, к каждому объекту будет добавлен один из специализированных символов */=>@|;
  • —full-time — показывать подробную информацию, плюс вся информация о времени в формате ISO;
  • -g — показывать подробную информацию, но кроме владельца файла;
  • —group-directories-first — сначала отображать директории, а уже потом файлы;
  • -G — не выводить имена групп;
  • -h — выводить размеры папок в удобном для чтения формате;
  • -H — открывать символические ссылки при рекурсивном использовании;
  • —hide — не отображать файлы, которые начинаются с указанного символа;
  • -i — отображать номер индекса inode, в которой хранится этот файл;
  • -l — выводить подробный список, в котором будет отображаться владелец, группа, дата создания, размер и другие параметры;
  • -L — для символических ссылок отображать информацию о файле, на который они ссылаются;
  • -m — разделять элементы списка запятой;
  • -n — выводить UID и GID вместо имени и группы пользователя;
  • -N — выводить имена как есть, не обрабатывать контролирующие последовательности;
  • -Q — брать имена папок и файлов в кавычки;
  • -r — обратный порядок сортировки;
  • -R — рекурсивно отображать содержимое поддиректорий;
  • -s — выводить размер файла в блоках;
  • -S — сортировать по размеру, сначала большие;
  • -t — сортировать по времени последней модификации;
  • -u — сортировать по времени последнего доступа;
  • -U — не сортировать;
  • -X — сортировать по алфавиту;
  • -Z — отображать информацию о расширениях SELinux;
  • -1 — отображать один файл на одну строку.
Это были все основные параметры команды ls, которые нам может когда-либо понадобиться использовать. Их очень много, но на деле будут нужны только некоторые из них, вы их быстро запомните, а все остальные сможете всегда найти в этой статье или на странице справки man ls. А теперь давайте рассмотрим несколько примеров использования команды ls linux.

ИСПОЛЬЗОВАНИЕ LS В LINUX

Как вы уже поняли, ls — это сокращение от list, эта команда представляет из себя аналог команды dir для Linux. Самый простой способ использовать команду, запустить ее без параметров и посмотреть содержимое текущей папки:
ls
Чтобы посмотреть список файлов в папке linux для точно заданной папки, вам нужно указать путь к ней. Например, смотрим содержимое корневой папки:
ls /
Или папки /bin:
ls /bin/
По умолчанию включен цветной вывод, поэтому вы видите столько различных цветов. Например, исполняемые файлы обозначаются салатовым, а ссылки голубым. Теперь посмотрим содержимое домашней папки снова, только на этот раз в виде списка с максимальным количеством информации:
ls -l
Тут вывод уже разделен на отдельные колонки, в первой колонке указаны права доступа к файлу в формате владелец группа остальные. Следующая колонка — это тип файла или папки, дальше владелец и группа, затем размер, дата создания и последний параметр — имя. Если вы еще хотите знать кто создал файл, можно использовать опцию author:
ls -l --author
Колонка создателя будет добавлена после группы. Дальше размер. Он выводится в байтах, килобайтах или еще в чем-то и нам не совсем понятно что там происходит, поэтому добавьте опцию -h чтобы выводить размер в более удобном виде:
ls -lh

Для папок размер выводится не сумой всех размеров всех файлов, а всего лишь то место, которое занимает сама папка, поэтому давайте посмотрим пример с файлами:
ls -l Фото
ls -lh Фото
Если вы хотите видеть скрытые файлы, а в домашней папке их просто море, то используйте опцию -a:
ls -a
Или смотрим скрытые файлы без ссылок на текущую и родительскую папку:
ls -A
Теперь нас будет интересовать сортировка. Сначала отсортируем файлы по размеру:
ls -lSh Фото



Обратите внимание, что файлы расположены от большего к меньшему. Теперь мы можем включить обратный порядок:
ls -lShr
С помощью опции -r мы вывели файлы в обратном порядке. Теперь отсортируем по алфавиту:
ls -lX
Или сортируем по времени последней модификации:
ls -lt

Обратите внимание на колонку времени, действительно, самые новые файлы будут вверху списка. Если вы хотите посмотреть какие метки SELinux присвоены файлу, необходимо использовать опцию -Z:
ls -lZ
Но это возможно только в системах, где установлена надстройка SELinux. Если вы хотите рекурсивно вывести содержимое всех папок, используйте опцию -R:
ls -lR /usr/
Если же вам нужно список папок и файлов в директории через запятую, что можно использовать -m:
ls -m