mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-18 15:45:54 -08:00
Translated ['src/README.md', 'src/banners/hacktricks-training.md', 'src/
This commit is contained in:
@@ -1,107 +1,103 @@
|
||||
# Basic Gitea Information
|
||||
# Основна інформація про Gitea
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
## Basic Structure
|
||||
## Основна структура
|
||||
|
||||
The basic Gitea environment structure is to group repos by **organization(s),** each of them may contain **several repositories** and **several teams.** However, note that just like in github users can have repos outside of the organization.
|
||||
Основна структура середовища Gitea полягає в групуванні репозиторіїв за **організаціями**, кожна з яких може містити **кілька репозиторіїв** та **кілька команд**. Однак, зверніть увагу, що, як і в github, користувачі можуть мати репозиторії поза організацією.
|
||||
|
||||
Moreover, a **user** can be a **member** of **different organizations**. Within the organization the user may have **different permissions over each repository**.
|
||||
Більше того, **користувач** може бути **членом** **різних організацій**. У межах організації користувач може мати **різні дозволи на кожен репозиторій**.
|
||||
|
||||
A user may also be **part of different teams** with different permissions over different repos.
|
||||
Користувач також може бути **частиною різних команд** з різними дозволами на різні репозиторії.
|
||||
|
||||
And finally **repositories may have special protection mechanisms**.
|
||||
І нарешті, **репозиторії можуть мати спеціальні механізми захисту**.
|
||||
|
||||
## Permissions
|
||||
## Дозволи
|
||||
|
||||
### Organizations
|
||||
### Організації
|
||||
|
||||
When an **organization is created** a team called **Owners** is **created** and the user is put inside of it. This team will give **admin access** over the **organization**, those **permissions** and the **name** of the team **cannot be modified**.
|
||||
Коли **організація створюється**, команда під назвою **Owners** є **створеною**, і користувач потрапляє до неї. Ця команда надасть **адміністративний доступ** до **організації**, ці **дозволи** та **назва** команди **не можуть бути змінені**.
|
||||
|
||||
**Org admins** (owners) can select the **visibility** of the organization:
|
||||
**Адміністратори організації** (власники) можуть вибрати **видимість** організації:
|
||||
|
||||
- Public
|
||||
- Limited (logged in users only)
|
||||
- Private (members only)
|
||||
- Публічна
|
||||
- Обмежена (тільки для авторизованих користувачів)
|
||||
- Приватна (тільки для членів)
|
||||
|
||||
**Org admins** can also indicate if the **repo admins** can **add and or remove access** for teams. They can also indicate the max number of repos.
|
||||
**Адміністратори організації** також можуть вказати, чи можуть **адміністратори репозиторіїв** **додавати або видаляти доступ** для команд. Вони також можуть вказати максимальну кількість репозиторіїв.
|
||||
|
||||
When creating a new team, several important settings are selected:
|
||||
При створенні нової команди вибираються кілька важливих налаштувань:
|
||||
|
||||
- It's indicated the **repos of the org the members of the team will be able to access**: specific repos (repos where the team is added) or all.
|
||||
- It's also indicated **if members can create new repos** (creator will get admin access to it)
|
||||
- The **permissions** the **members** of the repo will **have**:
|
||||
- **Administrator** access
|
||||
- **Specific** access:
|
||||
- Вказується, до яких **репозиторіїв організації члени команди зможуть отримати доступ**: конкретні репозиторії (репозиторії, до яких додана команда) або всі.
|
||||
- Також вказується, **чи можуть члени створювати нові репозиторії** (творець отримає адміністративний доступ до нього)
|
||||
- **Дозволи**, які **матимуть** **члени** репозиторію:
|
||||
- **Адміністративний** доступ
|
||||
- **Специфічний** доступ:
|
||||
|
||||
.png>)
|
||||
|
||||
### Teams & Users
|
||||
### Команди та користувачі
|
||||
|
||||
In a repo, the **org admin** and the **repo admins** (if allowed by the org) can **manage the roles** given to collaborators (other users) and teams. There are **3** possible **roles**:
|
||||
У репозиторії **адміністратор організації** та **адміністратори репозиторіїв** (якщо це дозволено організацією) можуть **керувати ролями**, наданими співпрацівникам (іншим користувачам) та командам. Є **3** можливі **ролі**:
|
||||
|
||||
- Administrator
|
||||
- Write
|
||||
- Read
|
||||
- Адміністратор
|
||||
- Запис
|
||||
- Читання
|
||||
|
||||
## Gitea Authentication
|
||||
## Аутентифікація Gitea
|
||||
|
||||
### Web Access
|
||||
### Веб-доступ
|
||||
|
||||
Using **username + password** and potentially (and recommended) a 2FA.
|
||||
Використовуючи **ім'я користувача + пароль** і потенційно (і рекомендовано) 2FA.
|
||||
|
||||
### **SSH Keys**
|
||||
### **SSH ключі**
|
||||
|
||||
You can configure your account with one or several public keys allowing the related **private key to perform actions on your behalf.** [http://localhost:3000/user/settings/keys](http://localhost:3000/user/settings/keys)
|
||||
Ви можете налаштувати свій обліковий запис з одним або кількома відкритими ключами, що дозволяє відповідному **закритому ключу виконувати дії від вашого імені.** [http://localhost:3000/user/settings/keys](http://localhost:3000/user/settings/keys)
|
||||
|
||||
#### **GPG Keys**
|
||||
#### **GPG ключі**
|
||||
|
||||
You **cannot impersonate the user with these keys** but if you don't use it it might be possible that you **get discover for sending commits without a signature**.
|
||||
Ви **не можете видавати себе за користувача з цими ключами**, але якщо ви їх не використовуєте, може бути можливим, що ви **будете виявлені за відправку комітів без підпису**.
|
||||
|
||||
### **Personal Access Tokens**
|
||||
### **Персональні токени доступу**
|
||||
|
||||
You can generate personal access token to **give an application access to your account**. A personal access token gives full access over your account: [http://localhost:3000/user/settings/applications](http://localhost:3000/user/settings/applications)
|
||||
Ви можете згенерувати персональний токен доступу, щоб **надати додатку доступ до вашого облікового запису**. Персональний токен доступу надає повний доступ до вашого облікового запису: [http://localhost:3000/user/settings/applications](http://localhost:3000/user/settings/applications)
|
||||
|
||||
### Oauth Applications
|
||||
### Oauth додатки
|
||||
|
||||
Just like personal access tokens **Oauth applications** will have **complete access** over your account and the places your account has access because, as indicated in the [docs](https://docs.gitea.io/en-us/oauth2-provider/#scopes), scopes aren't supported yet:
|
||||
Так само, як і персональні токени доступу, **Oauth додатки** матимуть **повний доступ** до вашого облікового запису та місць, до яких має доступ ваш обліковий запис, оскільки, як зазначено в [документації](https://docs.gitea.io/en-us/oauth2-provider/#scopes), області ще не підтримуються:
|
||||
|
||||
.png>)
|
||||
|
||||
### Deploy keys
|
||||
### Ключі для розгортання
|
||||
|
||||
Deploy keys might have read-only or write access to the repo, so they might be interesting to compromise specific repos.
|
||||
Ключі для розгортання можуть мати доступ лише для читання або запису до репозиторію, тому вони можуть бути цікавими для компрометації конкретних репозиторіїв.
|
||||
|
||||
## Branch Protections
|
||||
## Захист гілок
|
||||
|
||||
Branch protections are designed to **not give complete control of a repository** to the users. The goal is to **put several protection methods before being able to write code inside some branch**.
|
||||
Захист гілок призначений для **не надання повного контролю над репозиторієм** користувачам. Мета полягає в тому, щоб **встановити кілька методів захисту перед тим, як можна буде писати код у деякій гілці**.
|
||||
|
||||
The **branch protections of a repository** can be found in _https://localhost:3000/\<orgname>/\<reponame>/settings/branches_
|
||||
**Захист гілок репозиторію** можна знайти за адресою _https://localhost:3000/\<orgname>/\<reponame>/settings/branches_
|
||||
|
||||
> [!NOTE]
|
||||
> It's **not possible to set a branch protection at organization level**. So all of them must be declared on each repo.
|
||||
> **Неможливо встановити захист гілки на рівні організації**. Тому всі вони повинні бути оголошені в кожному репозиторії.
|
||||
|
||||
Different protections can be applied to a branch (like to master):
|
||||
Різні захисти можуть бути застосовані до гілки (наприклад, до master):
|
||||
|
||||
- **Disable Push**: No-one can push to this branch
|
||||
- **Enable Push**: Anyone with access can push, but not force push.
|
||||
- **Whitelist Restricted Push**: Only selected users/teams can push to this branch (but no force push)
|
||||
- **Enable Merge Whitelist**: Only whitelisted users/teams can merge PRs.
|
||||
- **Enable Status checks:** Require status checks to pass before merging.
|
||||
- **Require approvals**: Indicate the number of approvals required before a PR can be merged.
|
||||
- **Restrict approvals to whitelisted**: Indicate users/teams that can approve PRs.
|
||||
- **Block merge on rejected reviews**: If changes are requested, it cannot be merged (even if the other checks pass)
|
||||
- **Block merge on official review requests**: If there official review requests it cannot be merged
|
||||
- **Dismiss stale approvals**: When new commits, old approvals will be dismissed.
|
||||
- **Require Signed Commits**: Commits must be signed.
|
||||
- **Block merge if pull request is outdated**
|
||||
- **Protected/Unprotected file patterns**: Indicate patterns of files to protect/unprotect against changes
|
||||
- **Вимкнути Push**: Ніхто не може пушити в цю гілку
|
||||
- **Увімкнути Push**: Будь-хто з доступом може пушити, але не може примусово пушити.
|
||||
- **Список дозволених обмежених Push**: Тільки вибрані користувачі/команди можуть пушити в цю гілку (але без примусового пушу)
|
||||
- **Увімкнути список дозволених для злиття**: Тільки користувачі/команди зі списку дозволених можуть зливати PR.
|
||||
- **Увімкнути перевірки статусу:** Вимагати, щоб перевірки статусу пройшли перед злиттям.
|
||||
- **Вимагати схвалення**: Вказати кількість схвалень, необхідних перед злиттям PR.
|
||||
- **Обмежити схвалення до списку дозволених**: Вказати користувачів/команди, які можуть схвалювати PR.
|
||||
- **Блокувати злиття на основі відхилених оглядів**: Якщо запитуються зміни, його не можна зливати (навіть якщо інші перевірки проходять)
|
||||
- **Блокувати злиття на основі офіційних запитів на огляд**: Якщо є офіційні запити на огляд, його не можна зливати
|
||||
- **Скасувати застарілі схвалення**: Коли є нові коміти, старі схвалення будуть скасовані.
|
||||
- **Вимагати підписаних комітів**: Коміти повинні бути підписані.
|
||||
- **Блокувати злиття, якщо запит на злиття застарілий**
|
||||
- **Захищені/незахищені шаблони файлів**: Вказати шаблони файлів для захисту/незахисту від змін
|
||||
|
||||
> [!NOTE]
|
||||
> As you can see, even if you managed to obtain some credentials of a user, **repos might be protected avoiding you to pushing code to master** for example to compromise the CI/CD pipeline.
|
||||
> Як ви можете бачити, навіть якщо вам вдалося отримати деякі облікові дані користувача, **репозиторії можуть бути захищені, що заважає вам пушити код до master**, наприклад, для компрометації CI/CD конвеєра.
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user