#, fuzzy msgid "" msgstr "" "Project-Id-Version: man-pages-l10n VERSION\n" "POT-Creation-Date: 2014-07-17 17:57+0900\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. type: TH #: man-pages/man7/path_resolution.7:25 #, no-wrap msgid "PATH_RESOLUTION" msgstr "" #. type: TH #: man-pages/man7/path_resolution.7:25 #, no-wrap msgid "2009-12-05" msgstr "" #. type: TH #: man-pages/man7/path_resolution.7:25 #, no-wrap msgid "Linux" msgstr "" #. type: TH #: man-pages/man7/path_resolution.7:25 #, no-wrap msgid "Linux Programmer's Manual" msgstr "" #. type: SH #: man-pages/man7/path_resolution.7:26 #, no-wrap msgid "NAME" msgstr "" #. type: Plain text #: man-pages/man7/path_resolution.7:28 msgid "path_resolution - how a pathname is resolved to a file" msgstr "" #. type: SH #: man-pages/man7/path_resolution.7:28 #, no-wrap msgid "DESCRIPTION" msgstr "" #. type: Plain text #: man-pages/man7/path_resolution.7:31 msgid "" "Some UNIX/Linux system calls have as parameter one or more filenames. A " "filename (or pathname) is resolved as follows." msgstr "" #. type: SS #: man-pages/man7/path_resolution.7:31 #, no-wrap msgid "Step 1: start of the resolution process" msgstr "" #. type: Plain text #: man-pages/man7/path_resolution.7:50 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. A process may get an entirely private " "mount namespace in case it\\(emor one of its ancestors\\(emwas 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 #: man-pages/man7/path_resolution.7:58 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. (This is also inherited from the parent. It can be changed " "by use of the B(2) system call.)" msgstr "" #. type: Plain text #: man-pages/man7/path_resolution.7:61 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 #: man-pages/man7/path_resolution.7:61 #, no-wrap msgid "Step 2: walk along the path" msgstr "" #. type: Plain text #: man-pages/man7/path_resolution.7:66 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 #: man-pages/man7/path_resolution.7:72 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 #: man-pages/man7/path_resolution.7:77 msgid "" "If the component is not found, an B error is returned (\"No such " "file or directory\")." msgstr "" #. type: Plain text #: man-pages/man7/path_resolution.7:82 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 #: man-pages/man7/path_resolution.7:86 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 "" #. presently: max recursion depth during symlink resolution: 5 #. max total number of symbolic links followed: 40 #. _POSIX_SYMLOOP_MAX is 8 #. type: Plain text #: man-pages/man7/path_resolution.7:110 msgid "" "If the component is found and is a symbolic link (symlink), 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 " "symlink 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 involves recursion. 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 "" #. type: SS #: man-pages/man7/path_resolution.7:110 #, no-wrap msgid "Step 3: find the final entry" msgstr "" #. type: Plain text #: man-pages/man7/path_resolution.7:122 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\\(emit 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\\(emmaybe " "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 #: man-pages/man7/path_resolution.7:122 #, no-wrap msgid ". and .." msgstr "" #. type: Plain text #: man-pages/man7/path_resolution.7:126 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 #: man-pages/man7/path_resolution.7:130 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 #: man-pages/man7/path_resolution.7:132 msgid "One cannot walk down past the root: \"/..\" is the same as \"/\"." msgstr "" #. type: SS #: man-pages/man7/path_resolution.7:132 #, no-wrap msgid "Mount points" msgstr "" #. type: Plain text #: man-pages/man7/path_resolution.7:136 msgid "" "After a \"mount dev path\" 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 #: man-pages/man7/path_resolution.7:140 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: SS #: man-pages/man7/path_resolution.7:140 #, no-wrap msgid "Trailing slashes" msgstr "" #. type: Plain text #: man-pages/man7/path_resolution.7:146 msgid "" "If a pathname ends in a \\(aq/\\(aq, that forces resolution of the preceding " "component as in Step 2: it has to exist and resolve to a directory. " "Otherwise, a trailing \\(aq/\\(aq is ignored. (Or, equivalently, a pathname " "with a trailing \\(aq/\\(aq is equivalent to the pathname obtained by " "appending \\(aq.\\(aq to it.)" msgstr "" #. type: SS #: man-pages/man7/path_resolution.7:146 #, no-wrap msgid "Final symlink" msgstr "" #. type: Plain text #: man-pages/man7/path_resolution.7:155 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 symlink, while B(2) operates on the " "file pointed to by the symlink." msgstr "" #. type: SS #: man-pages/man7/path_resolution.7:155 #, no-wrap msgid "Length limit" msgstr "" #. type: Plain text #: man-pages/man7/path_resolution.7:162 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 #: man-pages/man7/path_resolution.7:162 #, no-wrap msgid "Empty pathname" msgstr "" #. type: Plain text #: man-pages/man7/path_resolution.7:169 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 #: man-pages/man7/path_resolution.7:169 #, no-wrap msgid "Permissions" msgstr "" #. type: Plain text #: man-pages/man7/path_resolution.7:182 msgid "" "The permission bits of a file consist of three groups of three bits, cf.\\& " "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 #: man-pages/man7/path_resolution.7:186 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 #: man-pages/man7/path_resolution.7:191 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 #: man-pages/man7/path_resolution.7:199 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 #: man-pages/man7/path_resolution.7:205 msgid "" "Similarly, Linux uses the fsgid (\"filesystem group ID\") instead of the " "effective group ID. See B(2)." msgstr "" #. type: SS #: man-pages/man7/path_resolution.7:205 #, 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 #: man-pages/man7/path_resolution.7:216 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 #: man-pages/man7/path_resolution.7:224 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 #: man-pages/man7/path_resolution.7:230 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 #: man-pages/man7/path_resolution.7:237 msgid "" "The B capability grants read and search permission on " "directories, and read permission on ordinary files." msgstr "" #. type: SH #: man-pages/man7/path_resolution.7:237 #, no-wrap msgid "SEE ALSO" msgstr "" #. type: Plain text #: man-pages/man7/path_resolution.7:242 msgid "B(2), B(7), B(7), B(7)" msgstr "" #. type: SH #: man-pages/man7/path_resolution.7:242 #, no-wrap msgid "COLOPHON" msgstr "" #. type: Plain text #: man-pages/man7/path_resolution.7:250 msgid "" "This page is part of release 3.70 of the Linux I project. A " "description of the project, information about reporting bugs, and the latest " "version of this page, can be found at \\%http://www.kernel.org/doc/man-pages/" "." msgstr ""