Закончен модуль chmod, апдейт структуры репозитория

This commit is contained in:
Alexander Zhirov 2022-05-10 23:20:10 +03:00
parent 4ded2c1f13
commit 3bb3f4df5d
9 changed files with 172 additions and 24 deletions

View File

@ -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)

3
databases/README.md Normal file
View File

@ -0,0 +1,3 @@
# Базы данных
- [PostgreSQL](postgresql.md)

View File

@ -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
```
### Возможные ошибки
## Возможные ошибки
При подключении к удалённой БД может возникнуть ошибка:

View File

@ -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
```

11
programming/README.md Normal file
View File

@ -0,0 +1,11 @@
# Программирование
- [Работа с библиотеками](libs.md)
## [Язык программирования C](c)
- [Компиляция C](c/c_compilation.md)
## [Язык программирования D](d)
- [Проект dub.json](d/dub.md)

3
programming/c/README.md Normal file
View File

@ -0,0 +1,3 @@
# Язык программирования C
[Компиляция C](c_compilation.md)

3
programming/d/README.md Normal file
View File

@ -0,0 +1,3 @@
# Язык программирования D
[Проект dub.json](dub.md)