# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2024-06-01 06:08+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. type: TH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "path_resolution" msgstr "" #. type: TH #: archlinux debian-unstable opensuse-tumbleweed #, no-wrap msgid "2024-05-02" msgstr "" #. type: TH #: archlinux debian-unstable #, no-wrap msgid "Linux man-pages 6.8" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "NAME" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "path_resolution - how a pathname is resolved to a file" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "DESCRIPTION" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Some UNIX/Linux system calls have as parameter one or more filenames. A " "filename (or pathname) is resolved as follows." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Step 1: start of the resolution process" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If the pathname starts with the \\[aq]/\\[aq] character, the starting lookup " "directory is the root directory of the calling process. A process inherits " "its root directory from its parent. Usually this will be the root directory " "of the file hierarchy. A process may get a different root directory by use " "of the B(2) system call, or may temporarily use a different root " "directory by using B(2) with the B flag set." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A process may get an entirely private mount namespace in case it\\[em]or one " "of its ancestors\\[em]was started by an invocation of the B(2) " "system call that had the B flag set. This handles the \\[aq]/" "\\[aq] part of the pathname." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If the pathname does not start with the \\[aq]/\\[aq] character, the " "starting lookup directory of the resolution process is the current working " "directory of the process \\[em] or in the case of B(2)-style system " "calls, the I argument (or the current working directory if B " "is passed as the I argument). The current working directory is " "inherited from the parent, and can be changed by use of the B(2) " "system call." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Pathnames starting with a \\[aq]/\\[aq] character are called absolute " "pathnames. Pathnames not starting with a \\[aq]/\\[aq] are called relative " "pathnames." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Step 2: walk along the path" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Set the current lookup directory to the starting lookup directory. Now, for " "each nonfinal component of the pathname, where a component is a substring " "delimited by \\[aq]/\\[aq] characters, this component is looked up in the " "current lookup directory." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If the process does not have search permission on the current lookup " "directory, an B error is returned (\"Permission denied\")." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If the component is not found, an B error is returned (\"No such " "file or directory\")." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If the component is found, but is neither a directory nor a symbolic link, " "an B error is returned (\"Not a directory\")." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If the component is found and is a directory, we set the current lookup " "directory to that directory, and go to the next component." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If the component is found and is a symbolic link, we first resolve this " "symbolic link (with the current lookup directory as starting lookup " "directory). Upon error, that error is returned. If the result is not a " "directory, an B error is returned. If the resolution of the " "symbolic link is successful and returns a directory, we set the current " "lookup directory to that directory, and go to the next component. Note that " "the resolution process here can involve recursion if the prefix ('dirname') " "component of a pathname contains a filename that is a symbolic link that " "resolves to a directory (where the prefix component of that directory may " "contain a symbolic link, and so on). In order to protect the kernel against " "stack overflow, and also to protect against denial of service, there are " "limits on the maximum recursion depth, and on the maximum number of symbolic " "links followed. An B error is returned when the maximum is exceeded " "(\"Too many levels of symbolic links\")." msgstr "" # #. presently: max recursion depth during symlink resolution: 5 #. max total number of symbolic links followed: 40 #. _POSIX_SYMLOOP_MAX is 8 #. MAXSYMLINKS is 40 #. MAX_NESTED_LINKS #. commit 894bc8c4662ba9daceafe943a5ba0dd407da5cd3 #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "As currently implemented on Linux, the maximum number of symbolic links that " "will be followed while resolving a pathname is 40. Before Linux 2.6.18, the " "limit on the recursion depth was 5. Starting with Linux 2.6.18, this limit " "was raised to 8. In Linux 4.2, the kernel's pathname-resolution code was " "reworked to eliminate the use of recursion, so that the only limit that " "remains is the maximum of 40 resolutions for the entire pathname." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The resolution of symbolic links during this stage can be blocked by using " "B(2), with the B flag set." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Step 3: find the final entry" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The lookup of the final component of the pathname goes just like that of all " "other components, as described in the previous step, with two differences: " "(i) the final component need not be a directory (at least as far as the path " "resolution process is concerned\\[em]it may have to be a directory, or a " "nondirectory, because of the requirements of the specific system call), and " "(ii) it is not necessarily an error if the component is not found\\[em]maybe " "we are just creating it. The details on the treatment of the final entry " "are described in the manual pages of the specific system calls." msgstr "" #. type: SS #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed #, no-wrap msgid "\\&. and .." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "By convention, every directory has the entries \".\" and \"..\", which refer " "to the directory itself and to its parent directory, respectively." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The path resolution process will assume that these entries have their " "conventional meanings, regardless of whether they are actually present in " "the physical filesystem." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "One cannot walk up past the root: \"/..\" is the same as \"/\"." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Mount points" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "After a I command, the pathname \"path\" refers to the root " "of the filesystem hierarchy on the device \"dev\", and no longer to whatever " "it referred to earlier." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "One can walk out of a mounted filesystem: \"path/..\" refers to the parent " "directory of \"path\", outside of the filesystem hierarchy on \"dev\"." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Traversal of mount points can be blocked by using B(2), with the " "B flag set (though note that this also restricts bind mount " "traversal)." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Trailing slashes" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If a pathname ends in a \\[aq]/\\[aq], that forces resolution of the " "preceding component as in Step 2: the component preceding the slash either " "exists and resolves to a directory or it names a directory that is to be " "created immediately after the pathname is resolved. Otherwise, a trailing " "\\[aq]/\\[aq] is ignored." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Final symbolic link" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If the last component of a pathname is a symbolic link, then it depends on " "the system call whether the file referred to will be the symbolic link or " "the result of path resolution on its contents. For example, the system call " "B(2) will operate on the symbolic link, while B(2) operates " "on the file pointed to by the symbolic link." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Length limit" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "There is a maximum length for pathnames. If the pathname (or some " "intermediate pathname obtained while resolving symbolic links) is too long, " "an B error is returned (\"Filename too long\")." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Empty pathname" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "In the original UNIX, the empty pathname referred to the current directory. " "Nowadays POSIX decrees that an empty pathname must not be resolved " "successfully. Linux returns B in this case." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Permissions" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The permission bits of a file consist of three groups of three bits; see " "B(1) and B(2). The first group of three is used when the " "effective user ID of the calling process equals the owner ID of the file. " "The second group of three is used when the group ID of the file either " "equals the effective group ID of the calling process, or is one of the " "supplementary group IDs of the calling process (as set by B(2)). " "When neither holds, the third group is used." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Of the three bits used, the first bit determines read permission, the second " "write permission, and the last execute permission in case of ordinary files, " "or search permission in case of directories." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Linux uses the fsuid instead of the effective user ID in permission checks. " "Ordinarily the fsuid will equal the effective user ID, but the fsuid can be " "changed by the system call B(2)." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "(Here \"fsuid\" stands for something like \"filesystem user ID\". The " "concept was required for the implementation of a user space NFS server at a " "time when processes could send a signal to a process with the same effective " "user ID. It is obsolete now. Nobody should use B(2).)" msgstr "" #. FIXME . say something about filesystem mounted read-only ? #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Similarly, Linux uses the fsgid (\"filesystem group ID\") instead of the " "effective group ID. See B(2)." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Bypassing permission checks: superuser and capabilities" msgstr "" #. (but for exec at least one x bit must be set) -- AEB #. but there is variation across systems on this point: for #. example, HP-UX and Tru64 are as described by AEB. However, #. on some implementations (e.g., Solaris, FreeBSD), #. access(X_OK) by superuser will report success, regardless #. of the file's execute permission bits. -- MTK (Oct 05) #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "On a traditional UNIX system, the superuser (I, user ID 0) is all-" "powerful, and bypasses all permissions restrictions when accessing files." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "On Linux, superuser privileges are divided into capabilities (see " "B(7)). Two capabilities are relevant for file permissions " "checks: B and B. (A process has " "these capabilities if its fsuid is 0.)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The B capability overrides all permission checking, but " "grants execute permission only when at least one of the file's three execute " "permission bits is set." msgstr "" #. FIXME . say something about immutable files #. FIXME . say something about ACLs #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The B capability grants read and search permission on " "directories, and read permission on ordinary files." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "SEE ALSO" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "B(2), B(7), B(7), B(7)" msgstr "" #. type: TH #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "2023-02-05" msgstr "" #. type: TH #: debian-bookworm #, no-wrap msgid "Linux man-pages 6.03" msgstr "" #. type: SS #: debian-bookworm fedora-40 mageia-cauldron opensuse-leap-15-6 #, no-wrap msgid ". and .." msgstr "" #. type: TH #: fedora-40 mageia-cauldron #, no-wrap msgid "2023-10-31" msgstr "" #. type: TH #: fedora-40 mageia-cauldron #, no-wrap msgid "Linux man-pages 6.06" msgstr "" #. type: TH #: fedora-rawhide #, no-wrap msgid "2024-02-18" msgstr "" #. type: TH #: fedora-rawhide #, no-wrap msgid "Linux man-pages 6.7" msgstr "" #. type: TH #: opensuse-leap-15-6 #, no-wrap msgid "Linux man-pages 6.04" msgstr "" #. type: TH #: opensuse-tumbleweed #, no-wrap msgid "Linux man-pages (unreleased)" msgstr ""