]> git.ipfire.org Git - thirdparty/cups.git/blob - man/cups-files.conf.man.in
Fix local privilege escalation to root and sandbox bypasses in scheduler
[thirdparty/cups.git] / man / cups-files.conf.man.in
1 .\"
2 .\" cups-files.conf man page for CUPS.
3 .\"
4 .\" Copyright 2007-2017 by Apple Inc.
5 .\" Copyright 1997-2006 by Easy Software Products.
6 .\"
7 .\" These coded instructions, statements, and computer programs are the
8 .\" property of Apple Inc. and are protected by Federal copyright
9 .\" law. Distribution and use rights are outlined in the file "LICENSE.txt"
10 .\" which should have been included with this file. If this file is
11 .\" file is missing or damaged, see the license at "http://www.cups.org/".
12 .\"
13 .TH cups-files.conf 5 "CUPS" "21 September 2017" "Apple Inc."
14 .SH NAME
15 cups\-files.conf \- file and directory configuration file for cups
16 .SH DESCRIPTION
17 The \fBcups\-files.conf\fR file configures the files and directories used by the CUPS scheduler,
18 .BR cupsd (8).
19 It is normally located in the \fI/etc/cups\fR directory.
20 .LP
21 Each line in the file can be a configuration directive, a blank line, or a comment.
22 Configuration directives typically consist of a name and zero or more values separated by whitespace.
23 The configuration directive name and values are case-insensitive.
24 Comment lines start with the # character.
25 .SS DIRECTIVES
26 The following directives are understood by
27 .BR cupsd (8):
28 .\"#AccessLog
29 .TP 5
30 \fBAccessLog\fR
31 .TP 5
32 \fBAccessLog \fIfilename\fR
33 .TP 5
34 \fBAccessLog stderr\fR
35 .TP 5
36 \fBAccessLog syslog\fR
37 Defines the access log filename.
38 Specifying a blank filename disables access log generation.
39 The value "stderr" causes log entries to be sent to the standard error file when the scheduler is running in the foreground, or to the system log daemon when run in the background.
40 The value "syslog" causes log entries to be sent to the system log daemon.
41 The server name may be included in filenames using the string "%s", for example:
42 .nf
43
44 AccessLog /var/log/cups/%s-access_log
45
46 .fi
47 The default is "/var/log/cups/access_log".
48 .\"#CacheDir
49 .TP 5
50 \fBCacheDir \fIdirectory\fR
51 Specifies the directory to use for long-lived temporary (cache) files.
52 The default is "/var/spool/cups/cache" or "/var/cache/cups" depending on the platform.
53 .\"#ConfigFilePerm
54 .TP 5
55 \fBConfigFilePerm \fImode\fR
56 Specifies the permissions for all configuration files that the scheduler writes.
57 The default is "0644" on macOS and "0640" on all other operating systems.
58 .LP
59 \fBNote:\fR The permissions for the \fIprinters.conf\fR file are currently masked to only allow access from the scheduler user (typically root).
60 This is done because printer device URIs sometimes contain sensitive authentication information that should not be generally known on the system.
61 There is no way to disable this security feature.
62 .\"#CreateSelfSignedCerts
63 .TP 5
64 \fBCreateSelfSignedCerts yes\fR
65 .TP 5
66 \fBCreateSelfSignedCerts no\fR
67 Specifies whether the scheduler automatically creates self-signed certificates for client connections using TLS.
68 The default is yes.
69 .\"#DataDir
70 .TP 5
71 \fBDataDir \fIpath\fR
72 Specifies the directory where data files can be found.
73 The default is usually "/usr/share/cups".
74 .\"#DocumentRoot
75 .TP 5
76 \fBDocumentRoot \fIdirectory\fR
77 Specifies the root directory for the CUPS web interface content.
78 The default is usually "/usr/share/doc/cups".
79 .\"#ErrorLog
80 .TP 5
81 \fBErrorLog\fR
82 .TP 5
83 \fBErrorLog \fIfilename\fR
84 .TP 5
85 \fBErrorLog stderr\fR
86 .TP 5
87 \fBErrorLog syslog\fR
88 Defines the error log filename.
89 Specifying a blank filename disables error log generation.
90 The value "stderr" causes log entries to be sent to the standard error file when the scheduler is running in the foreground, or to the system log daemon when run in the background.
91 The value "syslog" causes log entries to be sent to the system log daemon.
92 The server name may be included in filenames using the string "%s", for example:
93 .nf
94
95 ErrorLog /var/log/cups/%s-error_log
96
97 .fi
98 The default is "/var/log/cups/error_log".
99 .\"#FatalErrors
100 .TP 5
101 \fBFatalErrors none\fR
102 .TP 5
103 \fBFatalErrors all \fI\-kind \fR[ ... \fI\-kind \fR]
104 .TP 5
105 \fBFatalErrors \fIkind \fR[ ... \fIkind \fR]
106 Specifies which errors are fatal, causing the scheduler to exit.
107 The default is "config".
108 The \fIkind\fR strings are:
109 .RS 5
110 .TP 5
111 .B none
112 No errors are fatal.
113 .TP 5
114 .B all
115 All of the errors below are fatal.
116 .TP 5
117 .B browse
118 Browsing initialization errors are fatal, for example failed connections to the DNS-SD daemon.
119 .TP 5
120 .B config
121 Configuration file syntax errors are fatal.
122 .TP 5
123 .B listen
124 Listen or Port errors are fatal, except for IPv6 failures on the loopback or "any" addresses.
125 .TP 5
126 .B log
127 Log file creation or write errors are fatal.
128 .TP 5
129 .B permissions
130 Bad startup file permissions are fatal, for example shared TLS certificate and key files with world-read permissions.
131 .RE
132 .\"#Group
133 .TP 5
134 \fBGroup \fIgroup-name-or-number\fR
135 Specifies the group name or ID that will be used when executing external programs.
136 The default group is operating system specific but is usually "lp" or "nobody".
137 .\"#LogFilePerm
138 .TP 5
139 \fBLogFilePerm \fImode\fR
140 Specifies the permissions of all log files that the scheduler writes.
141 The default is "0644".
142 .\"#PageLog
143 .TP 5
144 \fBPageLog \fR[ \fIfilename\fR ]
145 .TP 5
146 \fBPageLog stderr\fR
147 .TP 5
148 \fBPageLog syslog\fR
149 Defines the page log filename.
150 The value "stderr" causes log entries to be sent to the standard error file when the scheduler is running in the foreground, or to the system log daemon when run in the background.
151 The value "syslog" causes log entries to be sent to the system log daemon.
152 Specifying a blank filename disables page log generation.
153 The server name may be included in filenames using the string "%s", for example:
154 .nf
155
156 PageLog /var/log/cups/%s-page_log
157
158 .fi
159 The default is "/var/log/cups/page_log".
160 .\"#PassEnv
161 .TP 5
162 \fBPassEnv \fIvariable \fR[ ... \fIvariable \fR]
163 Passes the specified environment variable(s) to child processes.
164 Note: the standard CUPS filter and backend environment variables cannot be overridden using this directive.
165 .\"#RemoteRoot
166 .TP 5
167 \fBRemoteRoot \fIusername\fR
168 Specifies the username that is associated with unauthenticated accesses by clients claiming to be the root user.
169 The default is "remroot".
170 .\"#RequestRoot
171 .TP 5
172 \fBRequestRoot \fIdirectory\fR
173 Specifies the directory that contains print jobs and other HTTP request data.
174 The default is "/var/spool/cups".
175 .\"#Sandboxing
176 .TP 5
177 \fBSandboxing relaxed\fR
178 .TP 5
179 \fBSandboxing strict\fR
180 Specifies the level of security sandboxing that is applied to print filters, backends, and other child processes of the scheduler.
181 The default is "strict".
182 This directive is currently only used/supported on macOS.
183 .\"#ServerBin
184 .TP 5
185 \fBServerBin \fIdirectory\fR
186 Specifies the directory containing the backends, CGI programs, filters, helper programs, notifiers, and port monitors.
187 The default is "/usr/lib/cups" or "/usr/libexec/cups" depending on the platform.
188 .\"#ServerKeychain
189 .TP 5
190 \fBServerKeychain \fIpath\fR
191 Specifies the location of TLS certificates and private keys.
192 The default is "/Library/Keychains/System.keychain" on macOS and "/etc/cups/ssl" on all other operating systems.
193 macOS uses its keychain database to store certificates and keys while other platforms use separate files in the specified directory, *.crt for PEM-encoded certificates and *.key for PEM-encoded private keys.
194 .\"#ServerRoot
195 .TP 5
196 \fBServerRoot \fIdirectory\fR
197 Specifies the directory containing the server configuration files.
198 The default is "/etc/cups".
199 .\"#SetEnv
200 .TP 5
201 \fBSetEnv \fIvariable value\fR
202 Set the specified environment variable to be passed to child processes.
203 Note: the standard CUPS filter and backend environment variables cannot be overridden using this directive.
204 .\"#StateDir
205 .TP 5
206 \fBStateDir \fIdirectory\fR
207 Specifies the directory to use for PID and local certificate files.
208 The default is "/var/run/cups" or "/etc/cups" depending on the platform.
209 .\"#SyncOnClose
210 .TP 5
211 \fBSyncOnClose Yes\fR
212 .TP 5
213 \fBSyncOnClose No\fR
214 Specifies whether the scheduler calls
215 .BR fsync (2)
216 after writing configuration or state files.
217 The default is "No".
218 .\"#SystemGroup
219 .TP 5
220 \fBSystemGroup \fIgroup-name \fR[ ... \fIgroup-name\fR ]
221 Specifies the group(s) to use for \fI@SYSTEM\fR group authentication.
222 The default contains "admin", "lpadmin", "root", "sys", and/or "system".
223 .\"#TempDir
224 .TP 5
225 \fBTempDir \fIdirectory\fR
226 Specifies the directory where short-term temporary files are stored.
227 The default is "/var/spool/cups/tmp".
228 .\"#User
229 .TP 5
230 \fBUser \fIusername\fR
231 Specifies the user name or ID that is used when running external programs.
232 The default is "lp".
233 .SS DEPRECATED DIRECTIVES
234 The following directives are deprecated and will be removed from a future version of CUPS:
235 .\"#FileDevice
236 .TP 5
237 \fBFileDevice Yes\fR
238 .TP 5
239 \fBFileDevice No\fR
240 Specifies whether the file pseudo-device can be used for new printer queues.
241 The URI "file:///dev/null" is always allowed.
242 File devices cannot be used with "raw" print queues - a PPD file is required.
243 The specified file is overwritten for every print job.
244 Writing to directories is not supported.
245 .\"#FontPath
246 .TP 5
247 \fBFontPath \fIdirectory[:...:directoryN]\fR
248 Specifies a colon separated list of directories where fonts can be found.
249 On Linux the
250 .BR font-config (1)
251 mechanism is used instead.
252 On macOS the Font Book application manages system-installed fonts.
253 .\"#LPDConfigFile
254 .TP 5
255 \fB LPDConfigFile \fIfilename\fR
256 Specifies the LPD service configuration file to update.
257 .\"#Printcap
258 .TP 5
259 \fBPrintcap \fIfilename\fR
260 Specifies a file that is filled with a list of local print queues.
261 .\"#PrintcapFormat
262 .TP 5
263 \fBPrintcapFormat bsd\fR
264 .TP 5
265 \fBPrintcapFormat plist\fR
266 .TP 5
267 \fBPrintcapFormat solaris\fR
268 Specifies the format to use for the Printcap file.
269 "bsd" is the historical LPD printcap file format.
270 "plist" is the Apple plist file format.
271 "solaris" is the historical Solaris LPD printcap file format.
272 .\"#SMBConfigFile
273 .TP 5
274 \fBSMBConfigFile \fIfilename\fR
275 Specifies the SMB service configuration file to update.
276 .SH SEE ALSO
277 .BR classes.conf (5),
278 .BR cups (1),
279 .BR cupsd (8),
280 .BR cupsd.conf (5),
281 .BR mime.convs (5),
282 .BR mime.types (5),
283 .BR printers.conf (5),
284 .BR subscriptions.conf (5),
285 CUPS Online Help (http://localhost:631/help)
286 .SH COPYRIGHT
287 Copyright \[co] 2007-2017 by Apple Inc.