Translation components API.

See the Weblate's Web API documentation for detailed description of the API.

GET /api/translations/documentation/booksarch-handbookjail_index/fa/units/?format=api
HTTP 200 OK
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "count": 92,
    "next": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/units/?format=api&page=2",
    "previous": null,
    "results": [
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "Chapter 4. The Jail Subsystem"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -3250775974277800280,
            "content_hash": -3250775974277800280,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:1",
            "context": "",
            "note": "type: YAML Front Matter: title",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 2,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 5,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127610/?format=api",
            "priority": 100,
            "id": 1127794,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=52e2ec7988cc1ea8",
            "url": "https://translate-dev.freebsd.org/api/units/1127794/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:10.192739Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "The Jail Subsystem"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 6463077580901437616,
            "content_hash": 6463077580901437616,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:1, documentation/content/en/books/arch-handbook/jail/_index.adoc:13",
            "context": "",
            "note": "type: Title =",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 1,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 3,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127612/?format=api",
            "priority": 100,
            "id": 1127795,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=d9b176d1256bd0b0",
            "url": "https://translate-dev.freebsd.org/api/units/1127795/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:10.198293Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "On most UNIX(R) systems, `root` has omnipotent power. This promotes insecurity. If an attacker gained `root` on a system, he would have every function at his fingertips. In FreeBSD there are sysctls which dilute the power of `root`, in order to minimize the damage caused by an attacker. Specifically, one of these functions is called `secure levels`. Similarly, another function which is present from FreeBSD 4.0 and onward, is a utility called man:jail[8]. Jail chroots an environment and sets certain restrictions on processes which are forked within the jail. For example, a jailed process cannot affect processes outside the jail, utilize certain system calls, or inflict any damage on the host environment."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -3090259247672452580,
            "content_hash": -3090259247672452580,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:51",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 3,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 112,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127614/?format=api",
            "priority": 100,
            "id": 1127796,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=551d31964e9e1a1c",
            "url": "https://translate-dev.freebsd.org/api/units/1127796/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:10.282530Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "Architecture"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -3937639386123481026,
            "content_hash": -3937639386123481026,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:55",
            "context": "",
            "note": "type: Title ==",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 5,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 1,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127618/?format=api",
            "priority": 100,
            "id": 1127798,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=495ab1d74085d03e",
            "url": "https://translate-dev.freebsd.org/api/units/1127798/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:10.296986Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "Jail consists of two realms: the userland program, man:jail[8], and the code implemented within the kernel: the man:jail[2] system call and associated restrictions. I will be discussing the userland program and then how jail is implemented within the kernel."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -2409291593802527476,
            "content_hash": -2409291593802527476,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:58",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 6,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 39,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127620/?format=api",
            "priority": 100,
            "id": 1127799,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=5e907a0f7710cd0c",
            "url": "https://translate-dev.freebsd.org/api/units/1127799/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:10.379167Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "Userland Code"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -3407155355412333946,
            "content_hash": -3407155355412333946,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:59",
            "context": "",
            "note": "type: Title ===",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 7,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127622/?format=api",
            "priority": 100,
            "id": 1127800,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=50b75a419213fa86",
            "url": "https://translate-dev.freebsd.org/api/units/1127800/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:10.395566Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "The source for the userland jail is located in [.filename]#/usr/src/usr.sbin/jail#, consisting of one file, [.filename]#jail.c#. The program takes these arguments: the path of the jail, hostname, IP address, and the command to be executed."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -6487354178446795079,
            "content_hash": -6487354178446795079,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:62",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 8,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 34,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127624/?format=api",
            "priority": 100,
            "id": 1127801,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=25f849bf05885eb9",
            "url": "https://translate-dev.freebsd.org/api/units/1127801/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:10.475878Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "Data Structures"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 8778769654741155345,
            "content_hash": 8778769654741155345,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:63",
            "context": "",
            "note": "type: Title ====",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 9,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127626/?format=api",
            "priority": 100,
            "id": 1127802,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=f9d4747d33d33e11",
            "url": "https://translate-dev.freebsd.org/api/units/1127802/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:10.482958Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "In [.filename]#jail.c#, the first thing I would note is the declaration of an important structure `struct jail j;` which was included from [.filename]#/usr/include/sys/jail.h#."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 7106865839802019613,
            "content_hash": 7106865839802019613,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:66",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 10,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 23,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127628/?format=api",
            "priority": 100,
            "id": 1127803,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=e2a0a8d3d7c1ef1d",
            "url": "https://translate-dev.freebsd.org/api/units/1127803/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:10.488533Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "The definition of the `jail` structure is:"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 2547334454532694562,
            "content_hash": 2547334454532694562,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:68",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 11,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 7,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127630/?format=api",
            "priority": 100,
            "id": 1127804,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=a359f330a688e222",
            "url": "https://translate-dev.freebsd.org/api/units/1127804/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:10.495018Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "/usr/include/sys/jail.h:\n"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -5623322682502080988,
            "content_hash": -5623322682502080988,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:72",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 12,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 1,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127632/?format=api",
            "priority": 100,
            "id": 1127805,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=31f5f1d05c111624",
            "url": "https://translate-dev.freebsd.org/api/units/1127805/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:10.575061Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "struct jail {\n        u_int32_t       version;\n        char            *path;\n        char            *hostname;\n        u_int32_t       ip_number;\n};\n"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 7516986899559650965,
            "content_hash": 7516986899559650965,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:79",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 13,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 12,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127634/?format=api",
            "priority": 100,
            "id": 1127806,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=e851b3c229849695",
            "url": "https://translate-dev.freebsd.org/api/units/1127806/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:10.581801Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "As you can see, there is an entry for each of the arguments passed to the man:jail[8] program, and indeed, they are set during its execution."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 1635401472362919889,
            "content_hash": 1635401472362919889,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:82",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 14,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 26,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127636/?format=api",
            "priority": 100,
            "id": 1127807,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=96b21cf97157b7d1",
            "url": "https://translate-dev.freebsd.org/api/units/1127807/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:10.590031Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "/usr/src/usr.sbin/jail/jail.c\nchar path[PATH_MAX];\n...\nif (realpath(argv[0], path) == NULL)\n    err(1, \"realpath: %s\", argv[0]);\nif (chdir(path) != 0)\n    err(1, \"chdir: %s\", path);\nmemset(&j, 0, sizeof(j));\nj.version = 0;\nj.path = path;\nj.hostname = argv[1];\n"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 2225248786196371510,
            "content_hash": 2225248786196371510,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:96",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 15,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 33,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127638/?format=api",
            "priority": 100,
            "id": 1127808,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=9ee1abfb2e1a9836",
            "url": "https://translate-dev.freebsd.org/api/units/1127808/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:10.596079Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "Networking"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 5971631064820480690,
            "content_hash": 5971631064820480690,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:98",
            "context": "",
            "note": "type: Title ====",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 16,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 1,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127640/?format=api",
            "priority": 100,
            "id": 1127809,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=d2df7ed07c4ffab2",
            "url": "https://translate-dev.freebsd.org/api/units/1127809/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:10.674190Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "One of the arguments passed to the man:jail[8] program is an IP address with which the jail can be accessed over the network. man:jail[8] translates the IP address given into host byte order and then stores it in `j` (the `jail` structure)."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 110489864242767489,
            "content_hash": 110489864242767489,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:101",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 17,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 42,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127642/?format=api",
            "priority": 100,
            "id": 1127810,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=818889f23578a681",
            "url": "https://translate-dev.freebsd.org/api/units/1127810/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:10.683355Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "/usr/src/usr.sbin/jail/jail.c:\nstruct in_addr in;\n...\nif (inet_aton(argv[2], &in) == 0)\n    errx(1, \"Could not make sense of ip-number: %s\", argv[2]);\nj.ip_number = ntohl(in.s_addr);\n"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -549596674364967959,
            "content_hash": -549596674364967959,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:110",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 18,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 22,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127644/?format=api",
            "priority": 100,
            "id": 1127811,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=785f70bc8ebd73e9",
            "url": "https://translate-dev.freebsd.org/api/units/1127811/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:10.691379Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "The man:inet_aton[3] function \"interprets the specified character string as an Internet address, placing the address into the structure provided.\" The `ip_number` member in the `jail` structure is set only when the IP address placed onto the `in` structure by man:inet_aton[3] is translated into host byte order by man:ntohl[3]."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 8660002705204191520,
            "content_hash": 8660002705204191520,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:113",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 19,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 48,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127646/?format=api",
            "priority": 100,
            "id": 1127812,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=f82e8293e59e2120",
            "url": "https://translate-dev.freebsd.org/api/units/1127812/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:10.776280Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "Jailing the Process"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -808379272149399813,
            "content_hash": -808379272149399813,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:114",
            "context": "",
            "note": "type: Title ====",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 20,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 3,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127648/?format=api",
            "priority": 100,
            "id": 1127813,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=74c80f55bfbf06fb",
            "url": "https://translate-dev.freebsd.org/api/units/1127813/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:10.782084Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "Finally, the userland program jails the process. Jail now becomes an imprisoned process itself and then executes the command given using man:execv[3]."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -8400553832468691540,
            "content_hash": -8400553832468691540,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:117",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 21,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 22,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127650/?format=api",
            "priority": 100,
            "id": 1127814,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=0b6b3ccc232845ac",
            "url": "https://translate-dev.freebsd.org/api/units/1127814/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:10.788069Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "/usr/src/usr.sbin/jail/jail.c\ni = jail(&j);\n...\nif (execv(argv[3], argv + 3) != 0)\n    err(1, \"execv: %s\", argv[3]);\n"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 3634903989889763660,
            "content_hash": 3634903989889763660,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:125",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 22,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 16,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127652/?format=api",
            "priority": 100,
            "id": 1127815,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=b271c5eb9607894c",
            "url": "https://translate-dev.freebsd.org/api/units/1127815/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:10.794525Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "As you can see, the `jail()` function is called, and its argument is the `jail` structure which has been filled with the arguments given to the program. Finally, the program you specify is executed. I will now discuss how jail is implemented within the kernel."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 496121809003613180,
            "content_hash": 496121809003613180,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:128",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 23,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 45,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127654/?format=api",
            "priority": 100,
            "id": 1127816,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=86e294281efc0bfc",
            "url": "https://translate-dev.freebsd.org/api/units/1127816/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:10.799889Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "Kernel Space"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 7376364836595692782,
            "content_hash": 7376364836595692782,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:129",
            "context": "",
            "note": "type: Title ===",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 24,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127656/?format=api",
            "priority": 100,
            "id": 1127817,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=e65e1cbcbaf7f4ee",
            "url": "https://translate-dev.freebsd.org/api/units/1127817/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:10.805806Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "We will now be looking at the file [.filename]#/usr/src/sys/kern/kern_jail.c#. This is the file where the man:jail[2] system call, appropriate sysctls, and networking functions are defined."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -1649060115857407283,
            "content_hash": -1649060115857407283,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:132",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 25,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 25,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127658/?format=api",
            "priority": 100,
            "id": 1127818,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=691d5c8fcd0e02cd",
            "url": "https://translate-dev.freebsd.org/api/units/1127818/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:10.810812Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "Sysctls"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -367458239449168958,
            "content_hash": -367458239449168958,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:133",
            "context": "",
            "note": "type: Title ====",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 26,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 1,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127660/?format=api",
            "priority": 100,
            "id": 1127819,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=7ae686ad97d783c2",
            "url": "https://translate-dev.freebsd.org/api/units/1127819/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:10.815712Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "In [.filename]#kern_jail.c#, the following sysctls are defined:"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 2985997180239267152,
            "content_hash": 2985997180239267152,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:136",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 27,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 7,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127662/?format=api",
            "priority": 100,
            "id": 1127820,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=a970649d6c7ac550",
            "url": "https://translate-dev.freebsd.org/api/units/1127820/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:10.820881Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "/usr/src/sys/kern/kern_jail.c:\nint     jail_set_hostname_allowed = 1;\nSYSCTL_INT(_security_jail, OID_AUTO, set_hostname_allowed, CTLFLAG_RW,\n    &jail_set_hostname_allowed, 0,\n    \"Processes in jail can set their hostnames\");\n"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -6894746641274081629,
            "content_hash": -6894746641274081629,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:144",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 28,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 18,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127664/?format=api",
            "priority": 100,
            "id": 1127821,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=2050f075ae8a6ea3",
            "url": "https://translate-dev.freebsd.org/api/units/1127821/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:10.826704Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "int     jail_socket_unixiproute_only = 1;\nSYSCTL_INT(_security_jail, OID_AUTO, socket_unixiproute_only, CTLFLAG_RW,\n    &jail_socket_unixiproute_only, 0,\n    \"Processes in jail are limited to creating UNIX/IPv4/route sockets only\");\n"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 1643145899104961345,
            "content_hash": 1643145899104961345,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:149",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 29,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 20,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127666/?format=api",
            "priority": 100,
            "id": 1127822,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=96cda07d4e4a8341",
            "url": "https://translate-dev.freebsd.org/api/units/1127822/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:10.884858Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "int     jail_sysvipc_allowed = 0;\nSYSCTL_INT(_security_jail, OID_AUTO, sysvipc_allowed, CTLFLAG_RW,\n    &jail_sysvipc_allowed, 0,\n    \"Processes in jail can use System V IPC primitives\");\n"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 8263414253409649936,
            "content_hash": 8263414253409649936,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:154",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 30,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 19,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127668/?format=api",
            "priority": 100,
            "id": 1127823,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=f2ad8b7b6661c510",
            "url": "https://translate-dev.freebsd.org/api/units/1127823/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:10.891506Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "static int jail_enforce_statfs = 2;\nSYSCTL_INT(_security_jail, OID_AUTO, enforce_statfs, CTLFLAG_RW,\n    &jail_enforce_statfs, 0,\n    \"Processes in jail cannot see all mounted file systems\");\n"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 7086444911031229209,
            "content_hash": 7086444911031229209,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:159",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 31,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 20,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127670/?format=api",
            "priority": 100,
            "id": 1127824,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=e2581c19da641b19",
            "url": "https://translate-dev.freebsd.org/api/units/1127824/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:10.897530Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "int    jail_allow_raw_sockets = 0;\nSYSCTL_INT(_security_jail, OID_AUTO, allow_raw_sockets, CTLFLAG_RW,\n    &jail_allow_raw_sockets, 0,\n    \"Prison root can create raw sockets\");\n"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 4210172442749308375,
            "content_hash": 4210172442749308375,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:164",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 32,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 16,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127672/?format=api",
            "priority": 100,
            "id": 1127825,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=ba6d8987bd360dd7",
            "url": "https://translate-dev.freebsd.org/api/units/1127825/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:10.903402Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "int    jail_chflags_allowed = 0;\nSYSCTL_INT(_security_jail, OID_AUTO, chflags_allowed, CTLFLAG_RW,\n    &jail_chflags_allowed, 0,\n    \"Processes in jail can alter system file flags\");\n"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 8623351500801224630,
            "content_hash": 8623351500801224630,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:169",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 33,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 18,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127674/?format=api",
            "priority": 100,
            "id": 1127826,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=f7ac4c806296afb6",
            "url": "https://translate-dev.freebsd.org/api/units/1127826/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:10.921527Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "int     jail_mount_allowed = 0;\nSYSCTL_INT(_security_jail, OID_AUTO, mount_allowed, CTLFLAG_RW,\n    &jail_mount_allowed, 0,\n    \"Processes in jail can mount/unmount jail-friendly file systems\");\n"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -4455306845297956315,
            "content_hash": -4455306845297956315,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:174",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 34,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 18,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127676/?format=api",
            "priority": 100,
            "id": 1127827,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=422b920788a62a25",
            "url": "https://translate-dev.freebsd.org/api/units/1127827/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:10.991491Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "Each of these sysctls can be accessed by the user through the man:sysctl[8] program. Throughout the kernel, these specific sysctls are recognized by their name. For example, the name of the first sysctl is `security.jail.set_hostname_allowed`."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -4797247478760127929,
            "content_hash": -4797247478760127929,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:177",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 35,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 35,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127678/?format=api",
            "priority": 100,
            "id": 1127828,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=3d6cc0d5c0dd4247",
            "url": "https://translate-dev.freebsd.org/api/units/1127828/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:10.998014Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "man:jail[2] System Call"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -967542894849609191,
            "content_hash": -967542894849609191,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:178",
            "context": "",
            "note": "type: Title ====",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 36,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 3,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127680/?format=api",
            "priority": 100,
            "id": 1127829,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=729298dd07893219",
            "url": "https://translate-dev.freebsd.org/api/units/1127829/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:11.004718Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "Like all system calls, the man:jail[2] system call takes two arguments, `struct thread *td` and `struct jail_args *uap`. `td` is a pointer to the `thread` structure which describes the calling thread. In this context, `uap` is a pointer to the structure in which a pointer to the `jail` structure passed by the userland [.filename]#jail.c# is contained. When I described the userland program before, you saw that the man:jail[2] system call was given a `jail` structure as its own argument."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 9013346056197970445,
            "content_hash": 9013346056197970445,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:181",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 37,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 79,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127682/?format=api",
            "priority": 100,
            "id": 1127830,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=fd15d67bbd591a0d",
            "url": "https://translate-dev.freebsd.org/api/units/1127830/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:11.077644Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "/usr/src/sys/kern/kern_jail.c:\n/*\n * struct jail_args {\n *  struct jail *jail;\n * };\n */\nint\njail(struct thread *td, struct jail_args *uap)\n"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -1243308460338656409,
            "content_hash": -1243308460338656409,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:192",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 38,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 20,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127684/?format=api",
            "priority": 100,
            "id": 1127831,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=6ebee18aeb46cb67",
            "url": "https://translate-dev.freebsd.org/api/units/1127831/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:11.085424Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "Therefore, `uap->jail` can be used to access the `jail` structure which was passed to the system call. Next, the system call copies the `jail` structure into kernel space using the man:copyin[9] function. man:copyin[9] takes three arguments: the address of the data which is to be copied into kernel space, `uap->jail`, where to store it, `j` and the size of the storage. The `jail` structure pointed by `uap->jail` is copied into kernel space and is stored in another `jail` structure, `j`."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -2301170070801123202,
            "content_hash": -2301170070801123202,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:195",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 39,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 80,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127686/?format=api",
            "priority": 100,
            "id": 1127832,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=60109a034223787e",
            "url": "https://translate-dev.freebsd.org/api/units/1127832/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:11.091562Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "/usr/src/sys/kern/kern_jail.c:\nerror = copyin(uap->jail, &j, sizeof(j));\n"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 6264453319605962226,
            "content_hash": 6264453319605962226,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:200",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 40,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 6,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127688/?format=api",
            "priority": 100,
            "id": 1127833,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=d6efcf1a8b2145f2",
            "url": "https://translate-dev.freebsd.org/api/units/1127833/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:11.098762Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "There is another important structure defined in [.filename]#jail.h#. It is the `prison` structure. The `prison` structure is used exclusively within kernel space. Here is the definition of the `prison` structure."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 6972112472407591249,
            "content_hash": 6972112472407591249,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:203",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 41,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 30,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127690/?format=api",
            "priority": 100,
            "id": 1127834,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=e0c1eb5a93ecc951",
            "url": "https://translate-dev.freebsd.org/api/units/1127834/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:11.178738Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "/usr/include/sys/jail.h:\nstruct prison {\n        LIST_ENTRY(prison) pr_list;                     /* (a) all prisons */\n        int              pr_id;                         /* (c) prison id */\n        int              pr_ref;                        /* (p) refcount */\n        char             pr_path[MAXPATHLEN];           /* (c) chroot path */\n        struct vnode    *pr_root;                       /* (c) vnode to rdir */\n        char             pr_host[MAXHOSTNAMELEN];       /* (p) jail hostname */\n        u_int32_t        pr_ip;                         /* (c) ip addr host */\n        void            *pr_linux;                      /* (p) linux abi */\n        int              pr_securelevel;                /* (p) securelevel */\n        struct task      pr_task;                       /* (d) destroy task */\n        struct mtx       pr_mtx;\n      void            **pr_slots;                     /* (p) additional data */\n};\n"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 4727944564179966863,
            "content_hash": 4727944564179966863,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:221",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 42,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 87,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127692/?format=api",
            "priority": 100,
            "id": 1127835,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=c19d088809af9b8f",
            "url": "https://translate-dev.freebsd.org/api/units/1127835/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:11.184862Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "The man:jail[2] system call then allocates memory for a `prison` structure and copies data between the `jail` and `prison` structure."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 1362813537788451818,
            "content_hash": 1362813537788451818,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:224",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 43,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 20,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127694/?format=api",
            "priority": 100,
            "id": 1127836,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=92e9afb12ef95bea",
            "url": "https://translate-dev.freebsd.org/api/units/1127836/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:11.191754Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "/usr/src/sys/kern/kern_jail.c:\nMALLOC(pr, struct prison *, sizeof(*pr), M_PRISON, M_WAITOK | M_ZERO);\n...\nerror = copyinstr(j.path, &pr->pr_path, sizeof(pr->pr_path), 0);\nif (error)\n    goto e_killmtx;\n...\nerror = copyinstr(j.hostname, &pr->pr_host, sizeof(pr->pr_host), 0);\nif (error)\n     goto e_dropvnref;\npr->pr_ip = j.ip_number;\n"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 5849979940733045296,
            "content_hash": 5849979940733045296,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:238",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 44,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 35,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127696/?format=api",
            "priority": 100,
            "id": 1127837,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=d12f4dc2f68dca30",
            "url": "https://translate-dev.freebsd.org/api/units/1127837/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:11.198531Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "Next, we will discuss another important system call man:jail_attach[2], which implements the function to put a process into the jail."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 2821496895528284922,
            "content_hash": 2821496895528284922,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:241",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 45,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 20,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127698/?format=api",
            "priority": 100,
            "id": 1127838,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=a727f87a40d4b2fa",
            "url": "https://translate-dev.freebsd.org/api/units/1127838/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:11.205110Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "/usr/src/sys/kern/kern_jail.c:\n/*\n * struct jail_attach_args {\n *      int jid;\n * };\n */\nint\njail_attach(struct thread *td, struct jail_attach_args *uap)\n"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 9197118896977923279,
            "content_hash": 9197118896977923279,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:252",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 46,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 19,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127700/?format=api",
            "priority": 100,
            "id": 1127839,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=ffa2bae88b66cccf",
            "url": "https://translate-dev.freebsd.org/api/units/1127839/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:11.278554Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "This system call makes the changes that can distinguish a jailed process from those unjailed ones. To understand what man:jail_attach[2] does for us, certain background information is needed."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 5165204134795130532,
            "content_hash": 5165204134795130532,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:255",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 47,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 28,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127702/?format=api",
            "priority": 100,
            "id": 1127840,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=c7ae7dcb4ed7b6a4",
            "url": "https://translate-dev.freebsd.org/api/units/1127840/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:11.288717Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "On FreeBSD, each kernel visible thread is identified by its `thread` structure, while the processes are described by their `proc` structures. You can find the definitions of the `thread` and `proc` structure in [.filename]#/usr/include/sys/proc.h#. For example, the `td` argument in any system call is actually a pointer to the calling thread's `thread` structure, as stated before. The `td_proc` member in the `thread` structure pointed by `td` is a pointer to the `proc` structure which represents the process that contains the thread represented by `td`. The `proc` structure contains members which can describe the owner's identity(`p_ucred`), the process resource limits(`p_limit`), and so on. In the `ucred` structure pointed by `p_ucred` member in the `proc` structure, there is a pointer to the `prison` structure(`cr_prison`)."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 4995226892358564251,
            "content_hash": 4995226892358564251,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:257",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 48,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 122,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127704/?format=api",
            "priority": 100,
            "id": 1127841,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=c5529c648b82b99b",
            "url": "https://translate-dev.freebsd.org/api/units/1127841/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:11.295548Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "/usr/include/sys/proc.h:\nstruct thread {\n    ...\n    struct proc *td_proc;\n    ...\n};\nstruct proc {\n    ...\n    struct ucred *p_ucred;\n    ...\n};\n/usr/include/sys/ucred.h\nstruct ucred {\n    ...\n    struct prison *cr_prison;\n    ...\n};\n"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -423689365307653301,
            "content_hash": -423689365307653301,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:277",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 49,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 29,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127706/?format=api",
            "priority": 100,
            "id": 1127842,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=7a1ec0c45dba034b",
            "url": "https://translate-dev.freebsd.org/api/units/1127842/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:11.304126Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "In [.filename]#kern_jail.c#, the function `jail()` then calls function `jail_attach()` with a given `jid`. And `jail_attach()` calls function `change_root()` to change the root directory of the calling process. The `jail_attach()` then creates a new `ucred` structure, and attaches the newly created `ucred` structure to the calling process after it has successfully attached the `prison` structure to the `ucred` structure. From then on, the calling process is recognized as jailed. When the kernel routine `jailed()` is called in the kernel with the newly created `ucred` structure as its argument, it returns 1 to tell that the credential is connected with a jail. The public ancestor process of all the process forked within the jail, is the process which runs man:jail[8], as it calls the man:jail[2] system call. When a program is executed through man:execve[2], it inherits the jailed property of its parent's `ucred` structure, therefore it has a jailed `ucred` structure."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -5312930558792477038,
            "content_hash": -5312930558792477038,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:280",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 50,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 149,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127708/?format=api",
            "priority": 100,
            "id": 1127843,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=3644adce4edb5692",
            "url": "https://translate-dev.freebsd.org/api/units/1127843/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:11.378535Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/fa/?format=api",
            "source": [
                "/usr/src/sys/kern/kern_jail.c\nint\njail(struct thread *td, struct jail_args *uap)\n{\n...\n    struct jail_attach_args jaa;\n...\n    error = jail_attach(td, &jaa);\n    if (error)\n        goto e_dropprref;\n...\n}\n"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 5998018216358103867,
            "content_hash": 5998018216358103867,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:295",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 51,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 24,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127710/?format=api",
            "priority": 100,
            "id": 1127844,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/fa/?checksum=d33d3dc9f658cb3b",
            "url": "https://translate-dev.freebsd.org/api/units/1127844/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:11.385410Z"
        }
    ]
}