1 '\" te
2 .\" This file and its contents are supplied under the terms of the
3 .\" Common Development and Distribution License ("CDDL"), version 1.0.
4 .\" You may only use this file in accordance with the terms of version
5 .\" 1.0 of the CDDL.
6 .\"
7 .\" A full copy of the text of the CDDL should have accompanied this
8 .\" source. A copy of the CDDL is also available via the Internet at
9 .\" http://www.illumos.org/license/CDDL.
10 .\"
11 .\"
12 .TH "PSECFLAGS" "1" "May 3, 2014"
13 .SH "NAME"
14 \fBpsecflags\fR - inspect or modify process security flags
15 .SH "SYNOPSIS"
16 .LP
17 .nf
18 \fB/usr/bin/psecflags\fR \fI-s\fR [-+]flags \fI-e\fR \fIcommand\fR
19 [\fIarg\fR]...
20 .fi
21 .LP
22 .nf
23 \fB/usr/bin/psecflags\fR \fI-s\fR [-+]flags [\fI-i\fR \fIidtype\fR]
24 \fIid\fR ...
25 .fi
26 .LP
27 .nf
28 \fB/usr/bin/psecflags\fR [\fI-F\fR] { \fIpid\fR | \fIcore\fR }
29 .fi
30 .LP
31 .nf
32 \fB/usr/bin/psecflags\fR \fI-l\fR
33 .fi
34
35 .SH "DESCRIPTION"
36 The first invocation of the \fBpsecflags\fR command runs the specified
37 \fIcommand\fR with the security-flags modified as described by the \fI-s\fR
38 argument.
39 .P
40 The second invocation modifies the security-flags of the processes described
41 by \fIidtype\fR and \fIid\fR according as described by the \fI-s\fR argument.
42 .P
43 The third invocation describes the security-flags of the specified processes
44 or core files. The effective set is signified by '\fBE\fR', and the
45 inheritable set by '\fBI\fR'
46 .P
47 The fourth invocation lists the supported process security-flags
48
49 .SH "OPTIONS"
50 The following options are supported:
51 .sp
52 .ne 2
53 .na
54 \fB-e\fR
55 .ad
56 .RS 11n
57 Interpret the remaining arguments as a command line and run the command with
58 the security-flags specified with the \fI-s\fR flag.
59 .RE
60
61 .sp
62 .ne 2
63 .na
64 \fB-F\fR
65 .ad
66 .RS 11n
67 Force. Grab the target process even if another process has control.
68 .RE
69
70 .sp
71 .ne 2
72 .na
73 \fB-i\fR \fIidtype\fR
74 .ad
75 .RS 11n
76 This option, together with the \fIid\fR arguments specify one or more
77 processes whose security-flags will be modified. The interpretation of the
78 \fIid\fR arguments is based on \fIidtype\fR. If \fIidtype\fR is omitted the
79 default is \fBpid\fR.
80
81 Valid \fIidtype\fR options are:
82 .sp
83 .ne 2
84 .na
85 \fBall\fR
86 .ad
87 .RS 11n
88 The \fBpsecflags\fR command applies to all processes
89 .RE
90
91 .sp
92 .ne 2
93 .na
94 \fBcontract\fR, \fBctid\fR
95 .ad
96 .RS 11n
97 The security-flags of any process with a contract ID matching the \fIid\fR
98 arguments are modified.
99 .RE
100
101 .sp
102 .ne 2
103 .na
104 \fBgroup\fR, \fBgid\fR
105 .ad
106 .RS 11n
107 The security-flags of any process with a group ID matching the \fIid\fR
108 arguments are modified.
109 .RE
110
111 .sp
112 .ne 2
113 .na
114 \fBpid\fR
115 .ad
116 .RS 11n
117 The security-flags of any process with a process ID matching the \fIid\fR
118 arguments are modified. This is the default.
119 .RE
120
121 .sp
122 .ne 2
123 .na
124 \fBppid\fR
125 .ad
126 .RS 11n
127 The security-flags of any processes whose parent process ID matches the
128 \fIid\fR arguments are modified.
129 .RE
130
131 .sp
132 .ne 2
133 .na
134 \fBproject\fR, \fBprojid\fR
135 .ad
136 .RS 11n
137 The security-flags of any process whose project ID matches the \fIid\fR
138 arguments are modified.
139 .RE
140
141 .sp
142 .ne 2
143 .na
144 \fBsession\fR, \fBsid\fR
145 .ad
146 .RS 11n
147 The security-flags of any process whose session ID matches the \fIid\fR
148 arguments are modified.
149 .RE
150
151 .sp
152 .ne 2
153 .na
154 \fBtaskid\fR
155 .ad
156 .RS 11n
157 The security-flags of any process whose task ID matches the \fIid\fR arguments
158 are modified.
159 .RE
160
161 .sp
162 .ne 2
163 .na
164 \fBuser\fR, \fBuid\fR
165 .ad
166 .RS 11n
167 The security-flags of any process belonging to the users matching the \fIid\fR
168 arguments are modified.
169 .RE
170
171 .sp
172 .ne 2
173 .na
174 \fBzone\fR, \fBzoneid\fR
175 .ad
176 .RS 11n
177 The security-flags of any process running in the zones matching the given
178 \fIid\fR arguments are modified
179 .RE
180 .RE
181
182 .sp
183 .ne 2
184 .na
185 \fB-l\fR
186 .ad
187 .RS 11n
188 List all supported process security-flags
189 .RE
190
191 .sp
192 .ne 2
193 .na
194 \fB-s\fR \fIspecification\fR
195 .ad
196 .RS 11n
197 Modify the process security-flags according to
198 \fIspecification\fR. Specifications take the form \fB[-+]flagspec\fR. Where
199 \fB+\fR indicates that the given flags should be enabled in addition to the
200 current flags, \fB-\fR indicates the given flags should be disabled, and the
201 default (with neither) the given flags should replace the current flags.
202 .P
203 \fBflagspec\fR is a comma-separated list of security flags, or the string
204 \fB"none"\fR, which indicates that the security-flags are to be cleared.
205 .P
206 For a list of valid security-flags, see \fBpsecflags -l\fR
207 .RE
208
209 .SH "EXAMPLES"
210 .LP
211 \fBExample 1\fR Display the security-flags of the current shell
212 .sp
213 .in +2
214 .nf
215 example$ \fBpsecflags $$\fR
216 100718: -sh
217 E: aslr
218 I: aslr
219 .fi
220 .in -2
221 .sp
222
223 .LP
224 \fBExample 2\fR Run a user command with ASLR enabled in addition to any
225 inherited security flags.
226 .sp
227 .in +2
228 .nf
229 example$ \fBpsecflags -s +aslr -e /bin/sh\fR
230 $ psecflags $$
231 100724: -sh
232 E: none
233 I: aslr
234 .fi
235 .in -2
236 .sp
237
238 .LP
239 \fBExample 3\fR Remove aslr from the inheritable flags of all Bob's processes.
240 .sp
241 .in +2
242 .nf
243 example# \fBpsecflags -s -aslr -i uid bob\fR
244 .fi
245 .in -2
246
247 .SH "EXIT STATUS"
248 The following exit values are returned:
249
250 .TP
251 \fB0\fR
252 .IP
253 Success
254
255 .TP
256 \fBnon-zero\fR
257 .IP
258 An error has occured
259
260 .SH "ATTRIBUTES"
261 .sp
262 .LP
263 See \fBattributes\fR(5) for descriptions of the following attributes:
264 .sp
265
266 .sp
267 .TS
268 box;
269 c | c
270 l | l .
271 ATTRIBUTE TYPE ATTRIBUTE VALUE
272 _
273 Interface Stability Volatile
274 .TE
275
276 .SH "SEE ALSO"
277 .BR exec (2),
278 .BR attributes (5),
279 .BR contract (4),
280 .BR security-flags (5),
281 .BR zones (5)