From 3bb3f4df5daa706e6733edd75f426fd486f405fb Mon Sep 17 00:00:00 2001 From: Alexander Zhirov Date: Tue, 10 May 2022 23:20:10 +0300 Subject: [PATCH] =?UTF-8?q?=D0=97=D0=B0=D0=BA=D0=BE=D0=BD=D1=87=D0=B5?= =?UTF-8?q?=D0=BD=20=D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D1=8C=20chmod,=20=D0=B0?= =?UTF-8?q?=D0=BF=D0=B4=D0=B5=D0=B9=D1=82=20=D1=81=D1=82=D1=80=D1=83=D0=BA?= =?UTF-8?q?=D1=82=D1=83=D1=80=D1=8B=20=D1=80=D0=B5=D0=BF=D0=BE=D0=B7=D0=B8?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 14 +-- databases/README.md | 3 + databases/{db.md => postgresql.md} | 18 ++-- linux/chmod.md | 144 +++++++++++++++++++++++++-- programming/README.md | 11 ++ programming/c/README.md | 3 + programming/{ => c}/c_compilation.md | 0 programming/d/README.md | 3 + programming/{ => d}/dub.md | 0 9 files changed, 172 insertions(+), 24 deletions(-) create mode 100644 databases/README.md rename databases/{db.md => postgresql.md} (94%) create mode 100644 programming/README.md create mode 100644 programming/c/README.md rename programming/{ => c}/c_compilation.md (100%) create mode 100644 programming/d/README.md rename programming/{ => d}/dub.md (100%) diff --git a/README.md b/README.md index ca66bc5..f9b2ff6 100644 --- a/README.md +++ b/README.md @@ -10,18 +10,18 @@ - [Настройка SSH](linux/ssh.md) - [Копирование файлов на удалённый сервер через SSH](linux/scp.md) -## Базы данных +## [Базы данных](databases) -- [Базы данных](databases/db.md) +- [PostgreSQL](databases/postgresql.md) -## Программирование +## [Программирование](programming) - [Работа с библиотеками](programming/libs.md) -### Язык программирования D +### [Язык программирования C](programming/c) -- [Проект dub.json](programming/dub.md) +- [Компиляция C](programming/c/c_compilation.md) -### Язык программирования C +### [Язык программирования D](programming/d) -- [Компиляция C](programming/c_compilation.md) +- [Проект dub.json](programming/d/dub.md) diff --git a/databases/README.md b/databases/README.md new file mode 100644 index 0000000..3acbbbb --- /dev/null +++ b/databases/README.md @@ -0,0 +1,3 @@ +# Базы данных + +- [PostgreSQL](postgresql.md) \ No newline at end of file diff --git a/databases/db.md b/databases/postgresql.md similarity index 94% rename from databases/db.md rename to databases/postgresql.md index 8eba47b..4560512 100644 --- a/databases/db.md +++ b/databases/postgresql.md @@ -1,8 +1,6 @@ -# Базы данных +# PostgreSQL -## PostgreSQL - -### Установка +## Установка Установка `PostgreSQL` в `Ubuntu`: @@ -21,7 +19,7 @@ sudo eopkg it postgresql postgresql-contrib В процессе установки создаётся учётная запись `postgres`, которая связана с используемой по умолчанию ролью `postgres`. -### Использование +## Использование После установки, чтобы подключиться к СУБД PostgreSQL необходимо открыть `shell` из под пользователя `postgres`: @@ -43,7 +41,7 @@ psql sudo -u postgres psql ``` -### Создание новой роли +## Создание новой роли После входа в оболочку под пользователем `postgres`, можно создать новую роль с помощью следующей команды: @@ -66,7 +64,7 @@ createdb user При этом должен существовать пользователь Linux с тем же именем, что и имя роли и базы данных в Postgres. -### Смена пароля +## Смена пароля Для установки/смены пароля выполнить в `psql` команду: @@ -76,7 +74,7 @@ createdb user где `user` - имя пользователя, у которого необходимо сменить пароль. -### Удалённый доступ +## Удалённый доступ Для открытия удалённого доступа необходимо отредактировать файл `/etc/postgresql/14/main/postgresql.conf`, где `14` - версия PostgreSQL: @@ -102,7 +100,7 @@ sudo systemctl restart postgresql.service sudo service postgresql restart ``` -### Восстановление бэкапа +## Восстановление бэкапа Восстановление бэкапа из файла `*.sql`: @@ -110,7 +108,7 @@ sudo service postgresql restart psql -f backup.sql ``` -### Возможные ошибки +## Возможные ошибки При подключении к удалённой БД может возникнуть ошибка: diff --git a/linux/chmod.md b/linux/chmod.md index 1242020..7b0a404 100644 --- a/linux/chmod.md +++ b/linux/chmod.md @@ -8,17 +8,30 @@ chmod опции права /путь/к/файлу ``` +где `опции`: + +- `-c` - выводить информацию обо всех изменениях +- `-f` - не выводить сообщения об ошибках +- `-v` - выводить максимум информации +- `-R` - включить поддержку рекурсии + ## Права и пользователи Основные права на файл (директорию): -|Символ|Атрибут| -|-:|-| -|Первый символ|`r` - чтение (*reading*)| -|Второй символ|`w` - запись (*writing*)| -|Третий символ|`x` - выполнение (*execution*) -||`s` - атрибуты SUID или SGID позволяющие запускать файл на выполнение с правами владельца файла или группы соответственно -||`t` - устанавливая `t-бит` на каталог - меняется правило таким образом, что удалить файл может только владелец этого файла| +||Атрибут|Описание| +|:-:|:-:|-| +|Первый символ|`r`| чтение (*reading*)| +|Второй символ|`w`| запись (*writing*)| +|Третий символ|`x`| выполнение (*execution*)| + +Расширенные права: + +|Права|Числовое значение|Относительный режим|Применение к файлам|Применение к каталогам| +|:-:|:-:|:-:|-|-| +|`SUID`|`4`|`u+s`|Пользователь выполняет файл с разрешениями владельца файла|Нет смысла применять| +|`SGID`|`2`|`g+s`|Пользователь выполняет файл с разрешениями владельца группы|Файлы, созданные в каталоге получают одного и того же владельца группы| +|`sticky bit`|`1`|`+t`|Нет смысла применять|Запрещает пользователям удалять файлы от других пользователей| Категории пользователей, для которых вы можете установить эти права на файл: @@ -41,6 +54,20 @@ chmod опции права /путь/к/файлу 001 --- --- --x │ ``` +Расширенные права: + +```sh +400 --s ── SUID +200 --s ── SGID +100 --t ── sticky bit +``` + +Если в триаде присутствует право на выполнение (`x`), то символ устанавливает строчный, иначе - заглавный: + +```sh +drwSr-sr-T 2 alexander alexander 4096 мая 10 19:36 folder +``` + Комбинации прав: ```sh @@ -72,3 +99,106 @@ rwx 7 (4 + 2 + 1) 111 ## Использование +Установка|добавление|изменение|удаление прав может осуществляться как установкой цифровым значением, так и символьным: + +- Установка: `=` +- Добавление: `+` +- Удаление: `-` + +Например, установка прав: + +```sh +u=rwx,g=rx,o=rx +``` + +или + +```sh +u=rwx,go=rx +``` + +Добавление прав: + +```sh +u+s,go+w +``` + +Удаление прав: + +```sh +ug-wx,o= +``` + +## Примеры + +Установка прав на чтение и запись пользователю и группе и на только чтение всем остальным: + +```sh +chmod 664 file +``` + +или + +```sh +chmod ug=rw,o=r file +``` + +результат: + +```sh +-rw-rw-r-- 1 alexander alexander 0 мая 10 19:05 file +``` + +Установить права на чтение, запись и выполнение только пользователю: + +```sh +chmod 700 file +``` + +или + +```sh +chmod u=rwx,go= file +``` + +результат: + +```sh +-rwx------ 1 alexander alexander 0 мая 10 19:05 file +``` + +а теперь добавить только на выполнение группе и всем остальным: + +```sh +chmod 711 file +``` + +или + +```sh +chmod go+x file +``` + +результат: + +```sh +-rwx--x--x 1 alexander alexander 0 мая 10 19:05 file +``` + +Установить права на каталог (`drwxr-xr-x`), чтобы удалить файл внутри каталога мог только владелец файла: + +```sh +chmod 1755 folder +``` + +или + +```sh +chmod +t folder +``` + +результат: + +```sh +drwxr-xr-t 2 alexander alexander 4096 мая 10 19:36 folder +``` diff --git a/programming/README.md b/programming/README.md new file mode 100644 index 0000000..6ca15c4 --- /dev/null +++ b/programming/README.md @@ -0,0 +1,11 @@ +# Программирование + +- [Работа с библиотеками](libs.md) + +## [Язык программирования C](c) + +- [Компиляция C](c/c_compilation.md) + +## [Язык программирования D](d) + +- [Проект dub.json](d/dub.md) diff --git a/programming/c/README.md b/programming/c/README.md new file mode 100644 index 0000000..9c49704 --- /dev/null +++ b/programming/c/README.md @@ -0,0 +1,3 @@ +# Язык программирования C + +[Компиляция C](c_compilation.md) \ No newline at end of file diff --git a/programming/c_compilation.md b/programming/c/c_compilation.md similarity index 100% rename from programming/c_compilation.md rename to programming/c/c_compilation.md diff --git a/programming/d/README.md b/programming/d/README.md new file mode 100644 index 0000000..3c88784 --- /dev/null +++ b/programming/d/README.md @@ -0,0 +1,3 @@ +# Язык программирования D + +[Проект dub.json](dub.md) \ No newline at end of file diff --git a/programming/dub.md b/programming/d/dub.md similarity index 100% rename from programming/dub.md rename to programming/d/dub.md