Commit | Line | Data |
---|---|---|
8c0da00b KB |
1 | .\" Copyright (c) 1990, 1991, 1993 |
2 | .\" The Regents of the University of California. All rights reserved. | |
37291407 KB |
3 | .\" |
4 | .\" %sccs.include.redist.man% | |
5 | .\" | |
f69b3713 | 6 | .\" @(#)strmode.3 8.3 (Berkeley) %G% |
37291407 | 7 | .\" |
ae59e04c CL |
8 | .Dd |
9 | .Dt STRMODE 3 | |
10 | .Os | |
11 | .Sh NAME | |
12 | .Nm strmode | |
13 | .Nd convert inode status information into a symbolic string | |
14 | .Sh SYNOPSIS | |
15 | .Fd #include <string.h> | |
16 | .Ft void | |
17 | .Fn strmode "mode_t mode" "char *bp" | |
18 | .Sh DESCRIPTION | |
19 | The | |
20 | .Fn strmode | |
21 | function | |
37291407 | 22 | converts a file |
ae59e04c | 23 | .Fa mode |
37291407 | 24 | (the type and permission information associated with an inode, see |
ae59e04c | 25 | .Xr stat 2 ) |
37291407 | 26 | into a symbolic string which is stored in the location referenced by |
ae59e04c | 27 | .Fa bp . |
bd8ecad4 CL |
28 | This stored string is eleven characters in length plus a trailing |
29 | .Dv NULL . | |
ae59e04c | 30 | .Pp |
37291407 | 31 | The first character is the inode type, and will be one of the following: |
bd8ecad4 CL |
32 | .Pp |
33 | .Bl -tag -width flag -offset indent -compact | |
ae59e04c | 34 | .It \- |
37291407 | 35 | regular file |
ae59e04c | 36 | .It b |
37291407 | 37 | block special |
ae59e04c | 38 | .It c |
37291407 | 39 | character special |
ae59e04c | 40 | .It d |
37291407 | 41 | directory |
ae59e04c | 42 | .It l |
37291407 | 43 | symbolic link |
ae59e04c | 44 | .It p |
37291407 | 45 | fifo |
ae59e04c | 46 | .It s |
37291407 | 47 | socket |
f69b3713 JSP |
48 | .It w |
49 | whiteout | |
ae59e04c | 50 | .It ? |
37291407 | 51 | unknown inode type |
ae59e04c CL |
52 | .El |
53 | .Pp | |
37291407 KB |
54 | The next nine characters encode three sets of permissions, in three |
55 | characters each. | |
56 | The first three characters are the permissions for the owner of the | |
57 | file, the second three for the group the file belongs to, and the | |
58 | third for the ``other'', or default, set of users. | |
ae59e04c | 59 | .Pp |
37291407 KB |
60 | Permission checking is done as specifically as possible. |
61 | If read permission is denied to the owner of a file in the first set | |
653ba8b6 | 62 | of permissions, the owner of the file will not be able to read the file. |
37291407 KB |
63 | This is true even if the owner is in the file's group and the group |
64 | permissions allow reading or the ``other'' permissions allow reading. | |
ae59e04c | 65 | .Pp |
37291407 KB |
66 | If the first character of the three character set is an ``r'', the file is |
67 | readable for that set of users; if a dash ``\-'', it is not readable. | |
ae59e04c | 68 | .Pp |
37291407 KB |
69 | If the second character of the three character set is a ``w'', the file is |
70 | writable for that set of users; if a dash ``\-'', it is not writable. | |
ae59e04c | 71 | .Pp |
37291407 | 72 | The third character is the first of the following characters that apply: |
ae59e04c CL |
73 | .Bl -tag -width xxxx |
74 | .It S | |
37291407 | 75 | If the character is part of the owner permissions and the file is not |
653ba8b6 | 76 | executable or the directory is not searchable by the owner, and the |
37291407 | 77 | set-user-id bit is set. |
ae59e04c | 78 | .It S |
37291407 | 79 | If the character is part of the group permissions and the file is not |
653ba8b6 | 80 | executable or the directory is not searchable by the group, and the |
37291407 | 81 | set-group-id bit is set. |
ae59e04c | 82 | .It T |
37291407 | 83 | If the character is part of the other permissions and the file is not |
653ba8b6 | 84 | executable or the directory is not searchable by others, and the ``sticky'' |
ae59e04c CL |
85 | .Pq Dv S_ISVTX |
86 | bit is set. | |
87 | .It s | |
37291407 | 88 | If the character is part of the owner permissions and the file is |
653ba8b6 | 89 | executable or the directory searchable by the owner, and the set-user-id |
37291407 | 90 | bit is set. |
ae59e04c | 91 | .It s |
37291407 | 92 | If the character is part of the group permissions and the file is |
653ba8b6 | 93 | executable or the directory searchable by the group, and the set-group-id |
37291407 | 94 | bit is set. |
ae59e04c | 95 | .It t |
37291407 | 96 | If the character is part of the other permissions and the file is |
653ba8b6 | 97 | executable or the directory searchable by others, and the ``sticky'' |
ae59e04c CL |
98 | .Pq Dv S_ISVTX |
99 | bit is set. | |
100 | .It x | |
37291407 | 101 | The file is executable or the directory is searchable. |
ae59e04c | 102 | .It \- |
37291407 | 103 | None of the above apply. |
ae59e04c CL |
104 | .El |
105 | .Pp | |
37291407 KB |
106 | The last character is a plus sign ``+'' if any there are any alternate |
107 | or additional access control methods associated with the inode, otherwise | |
108 | it will be a space. | |
ae59e04c CL |
109 | .Sh RETURN VALUES |
110 | The | |
111 | .Fn strmode | |
112 | function | |
37291407 | 113 | always returns 0. |
ae59e04c CL |
114 | .Sh SEE ALSO |
115 | .Xr chmod 1 , | |
116 | .Xr find 1 , | |
117 | .Xr stat 2 , | |
118 | .Xr getmode 3 , | |
119 | .Xr setmode 3 | |
120 | .Sh HISTORY | |
121 | The | |
122 | .Fn strmode | |
7e76fa85 | 123 | function first appeared in 4.4BSD. |