]> git.ipfire.org Git - thirdparty/cups.git/blame - doc/help/ref-cups-files-conf.html.in
Sync up with CUPS 1.7svn-r10893
[thirdparty/cups.git] / doc / help / ref-cups-files-conf.html.in
CommitLineData
c41769ff
MS
1<HTML>
2<!-- SECTION: References -->
3<HEAD>
4 <TITLE>cups-files.conf</TITLE>
5 <LINK REL="STYLESHEET" TYPE="text/css" HREF="../cups-printable.css">
6</HEAD>
7<BODY>
8
9<H1 CLASS="title">cups-files.conf</H1>
10
11<P>The <VAR>/etc/cups/cups-files.conf</VAR> file contains configuration <I>directives</I> that control the files, directories. users. and groups that are used by the CUPS scheduler, <CODE>cupsd(8)</CODE>. Each directive is listed on a line by itself followed by its value. Comments are introduced using the number sign ("#") character at the beginning of a line.</P>
12
13<H2 CLASS="title"><A NAME="AccessLog">AccessLog</A></H2>
14
15<H3>Examples</H3>
16
17<PRE CLASS="command">
18AccessLog /var/log/cups/access_log
19AccessLog /var/log/cups/access_log-%s
20AccessLog syslog
21</PRE>
22
23<H3>Description</H3>
24
25<P>The <CODE>AccessLog</CODE> directive sets the name of the
26access log file. If the filename is not absolute then it is
27assumed to be relative to the <A
28HREF="#ServerRoot"><CODE>ServerRoot</CODE></A> directory. The
29access log file is stored in "common log format" and can be used
30by any web access reporting tool to generate a report on CUPS
31server activity.</P>
32
33<P>The server name can be included in the filename by using
34<CODE>%s</CODE> in the name.</P>
35
36<P>The special name "syslog" can be used to send the access
37information to the system log instead of a plain file.</P>
38
39<P>The default access log file is
40<VAR>@CUPS_LOGDIR@/access_log</VAR>.</P>
41
42
43<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.1.15</SPAN><A NAME="ConfigFilePerm">ConfigFilePerm</A></H2>
44
45<H3>Examples</H3>
46
47<PRE CLASS="command">
48ConfigFilePerm 0644
49ConfigFilePerm 0640
50</PRE>
51
52<H3>Description</H3>
53
54<P>The <CODE>ConfigFilePerm</CODE> directive specifies the permissions to use when the scheduler writes configuration and cache files, typically in response to IPP or HTTP requests. The default is @CUPS_CONFIG_FILE_PERM@.</P>
55
56<BLOCKQUOTE><B>Note:</B>
57
58<P>The permissions for the <VAR>printers.conf</VAR> file are always masked to only allow access from the scheduler user (typically root). This is done because printer device URIs sometimes contain sensitive authentication information that should not be generally known on the system. There is no way to disable this security feature.</P>
59
60</BLOCKQUOTE>
61
62
63<H2 CLASS="title"><A NAME="DataDir">DataDir</A></H2>
64
65<H3>Examples</H3>
66
67<PRE CLASS="command">
68DataDir /usr/share/cups
69</PRE>
70
71<H3>Description</H3>
72
73<P>The <CODE>DataDir</CODE> directive sets the directory to use
74for data files.</P>
75
76
c41769ff
MS
77<H2 CLASS="title"><A NAME="DocumentRoot">DocumentRoot</A></H2>
78
79<H3>Examples</H3>
80
81<PRE CLASS="command">
82DocumentRoot /usr/share/doc/cups
83DocumentRoot /foo/bar/doc/cups
84</PRE>
85
86<H3>Description</H3>
87
88<P>The <CODE>DocumentRoot</CODE> directive specifies the location
89of web content for the HTTP server in CUPS. If an absolute path
90is not specified then it is assumed to be relative to the <A
91HREF="#ServerRoot"><CODE>ServerRoot</CODE></A> directory. The
92default directory is <VAR>@CUPS_DOCROOT@</VAR>.</P>
93
94<P>Documents are first looked up in a sub-directory for the
95primary language requested by the client (e.g.
96<VAR>@CUPS_DOCROOT@/fr/...</VAR>) and then directly under
97the <CODE>DocumentRoot</CODE> directory (e.g.
98<VAR>@CUPS_DOCROOT@/...</VAR>), so it is possible to
99localize the web content by providing subdirectories for each
100language needed.</P>
101
102
103<H2 CLASS="title"><A NAME="ErrorLog">ErrorLog</A></H2>
104
105<H3>Examples</H3>
106
107<PRE CLASS="command">
108ErrorLog /var/log/cups/error_log
109ErrorLog /var/log/cups/error_log-%s
110ErrorLog syslog
111</PRE>
112
113<H3>Description</H3>
114
115<P>The <CODE>ErrorLog</CODE> directive sets the name of the error
116log file. If the filename is not absolute then it is assumed to
117be relative to the <A
118HREF="#ServerRoot"><CODE>ServerRoot</CODE></A> directory. The
119default error log file is <VAR>@CUPS_LOGDIR@/error_log</VAR>.</P>
120
121<P>The server name can be included in the filename by using
122<CODE>%s</CODE> in the name.</P>
123
124<P>The special name "syslog" can be used to send the error
125information to the system log instead of a plain file.</P>
126
127
128<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.4/OS X 10.6</SPAN><A NAME="FatalErrors">FatalErrors</A></H2>
129
130<H3>Examples</H3>
131
132<PRE CLASS="command">
133FatalErrors none
134FatalErrors all
135FatalErrors browse
136FatalErrors config
137FatalErrors listen
138FatalErrors log
139FatalErrors permissions
140FatalErrors all -permissions
141FatalErrors config permissions log
142</PRE>
143
144<H3>Description</H3>
145
146<P>The <CODE>FatalErrors</CODE> directive determines whether certain kinds of
147errors are fatal. The following kinds of errors are currently recognized:</P>
148
149<UL>
150
151 <LI><CODE>none</CODE> - No errors are fatal</LI>
152
153 <LI><CODE>all</CODE> - All of the errors below are fatal</LI>
154
155 <LI><CODE>browse</CODE> - Browsing initialization errors are fatal,
156 for example failed binding to the CUPS browse port or failed connections
157 to LDAP servers</LI>
158
159 <LI><CODE>config</CODE> - Configuration file syntax errors are
160 fatal</LI>
161
162 <LI><CODE>listen</CODE> - Listen or Port errors are fatal, except for
163 IPv6 failures on the loopback or "any" addresses</LI>
164
165 <LI><CODE>log</CODE> - Log file creation or write errors are fatal</LI>
166
167 <LI><CODE>permissions</CODE> - Bad startup file permissions are
168 fatal, for example shared SSL certificate and key files with world-
169 read permissions</LI>
170
171</UL>
172
173<P>Multiple errors can be listed, and the form "-kind" can be used with
174<CODE>all</CODE> to remove specific kinds of errors. The default setting is
175<CODE>@CUPS_FATAL_ERRORS@</CODE>.</P>
176
177
178<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.1.18</SPAN><A NAME="FileDevice">FileDevice</A></H2>
179
180<H3>Examples</H3>
181
182<PRE CLASS="command">
183FileDevice Yes
184FileDevice No
185</PRE>
186
187<H3>Description</H3>
188
189<P>The <CODE>FileDevice</CODE> directive determines whether the
190scheduler allows new printers to be added using device URIs of
191the form <CODE>file:/filename</CODE>. File devices are most often
192used to test new printer drivers and do not support raw file
193printing.</P>
194
195<P>The default setting is <CODE>No</CODE>.</P>
196
197<BLOCKQUOTE><B>Note:</B>
198
199<P>File devices are managed by the scheduler. Since the
200scheduler normally runs as the root user, file devices
201can be used to overwrite system files and potentially
202gain unauthorized access to the system. If you must
203create printers using file devices, we recommend that
204you set the <CODE>FileDevice</CODE> directive to
205<CODE>Yes</CODE> for only as long as you need to add the
206printers to the system, and then reset the directive to
207<CODE>No</CODE>.</P>
208
209</BLOCKQUOTE>
210
211
212<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.1.3</SPAN><A NAME="FontPath">FontPath</A></H2>
213
214<H3>Examples</H3>
215
216<PRE CLASS="command">
217FontPath /foo/bar/fonts
218FontPath /usr/share/cups/fonts:/foo/bar/fonts
219</PRE>
220
221<H3>Description</H3>
222
223<P>The <CODE>FontPath</CODE> directive specifies the font path to
224use when searching for fonts. The default font path is
225<CODE>/usr/share/cups/fonts</CODE>.</P>
226
227
228<H2 CLASS="title"><A NAME="Group">Group</A></H2>
229
230<H3>Examples</H3>
231
232<PRE CLASS="command">
233Group lp
234Group nobody
235</PRE>
236
237<H3>Description</H3>
238
239<P>The <CODE>Group</CODE> directive specifies the UNIX group that
240filter and CGI programs run as. The default group is
241system-specific but is usually <CODE>lp</CODE> or
242<CODE>nobody</CODE>.</P>
243
244
245<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.1.15</SPAN><A NAME="LogFilePerm">LogFilePerm</A></H2>
246
247<H3>Examples</H3>
248
249<PRE CLASS="command">
250LogFilePerm 0644
251LogFilePerm 0600
252</PRE>
253
254<H3>Description</H3>
255
256<P>The <CODE>LogFilePerm</CODE> directive specifies the
257permissions to use when writing log files. The default
258is @CUPS_LOG_FILE_PERM@.</P>
259
260
261<H2 CLASS="title"><A NAME="PageLog">PageLog</A></H2>
262
263<H3>Examples</H3>
264
265<PRE CLASS="command">
266PageLog /var/log/cups/page_log
267PageLog /var/log/cups/page_log-%s
268PageLog syslog
269</PRE>
270
271<H3>Description</H3>
272
273<P>The <CODE>PageLog</CODE> directive sets the name of the page
274log file. If the filename is not absolute then it is assumed to
275be relative to the <A
276HREF="#ServerRoot"><CODE>ServerRoot</CODE></A> directory. The
277default page log file is <VAR>@CUPS_LOGDIR@/page_log</VAR>.</P>
278
279<P>The server name can be included in the filename by using
280<CODE>%s</CODE> in the name.</P>
281
282<P>The special name "syslog" can be used to send the page
283information to the system log instead of a plain file.</P>
284
285
286<H2 CLASS="title"><A NAME="Printcap">Printcap</A></H2>
287
288<H3>Examples</H3>
289
290<PRE CLASS="command">
291Printcap
292Printcap /etc/printcap
293Printcap /etc/printers.conf
294Printcap /Library/Preferences/org.cups.printers.plist
295</PRE>
296
297<H3>Description</H3>
298
299<P>The <CODE>Printcap</CODE> directive controls whether or not a
300printcap file is automatically generated and updated with a list
301of available printers. If specified with no value, then no
302printcap file will be generated. The default is to generate a
303file named <VAR>@CUPS_DEFAULT_PRINTCAP@</VAR>.</P>
304
305<P>When a filename is specified (e.g. <VAR>@CUPS_DEFAULT_PRINTCAP@</VAR>),
306the printcap file is written whenever a printer is added or
307removed. The printcap file can then be used by applications that
308are hardcoded to look at the printcap file for the available
309printers.</P>
310
311
312<H2 CLASS="title"><A NAME="PrintcapFormat">PrintcapFormat</A></H2>
313
314<H3>Examples</H3>
315
316<PRE CLASS="command">
317PrintcapFormat BSD
318PrintcapFormat Solaris
319PrintcapFormat plist
320</PRE>
321
322<H3>Description</H3>
323
324<P>The <CODE>PrintcapFormat</CODE> directive controls the output format of the
325printcap file. The default is to generate the plist format on OS X, the
326Solaris format on Solaris, and the BSD format on other operating systems.</P>
327
328
329<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.1.3</SPAN><A NAME="RemoteRoot">RemoteRoot</A></H2>
330
331<H3>Examples</H3>
332
333<PRE CLASS="command">
334RemoteRoot remroot
335RemoteRoot root
336</PRE>
337
338<H3>Description</H3>
339
340<P>The <CODE>RemoteRoot</CODE> directive sets the username for
341unauthenticated root requests from remote hosts. The default
342username is <VAR>remroot</VAR>. Setting <CODE>RemoteRoot</CODE>
343to <VAR>root</VAR> effectively disables this security
344mechanism.</P>
345
346
347<H2 CLASS="title"><A NAME="RequestRoot">RequestRoot</A></H2>
348
349<H3>Examples</H3>
350
351<PRE CLASS="command">
352RequestRoot /var/spool/cups
353RequestRoot /foo/bar/spool/cups
354</PRE>
355
356<H3>Description</H3>
357
358<P>The <CODE>RequestRoot</CODE> directive sets the directory for
359incoming IPP requests and HTML forms. If an absolute path is not
360provided then it is assumed to be relative to the <A
361HREF="#ServerRoot"><CODE>ServerRoot</CODE></A> directory. The
362default request directory is <VAR>@CUPS_REQUESTS@</VAR>.</P>
363
364
365<H2 CLASS="title"><A NAME="ServerBin">ServerBin</A></H2>
366
367<H3>Examples</H3>
368
369<PRE CLASS="command">
370ServerBin /usr/lib/cups
371ServerBin /foo/bar/lib/cups
372</PRE>
373
374<H3>Description</H3>
375
376<P>The <CODE>ServerBin</CODE> directive sets the directory for
377server-run executables. If an absolute path is not provided then
378it is assumed to be relative to the <A
379HREF="#ServerRoot"><CODE>ServerRoot</CODE></A> directory. The
380default executable directory is <VAR>/usr/lib/cups</VAR>,
381<VAR>/usr/lib32/cups</VAR>, or <VAR>/usr/libexec/cups</VAR>
382depending on the operating system.</P>
383
384
385<H2 CLASS="title"><A NAME="ServerCertificate">ServerCertificate</A></H2>
386
387<H3>Examples</H3>
388
389<PRE CLASS="command">
390ServerCertificate /etc/cups/ssl/server.crt
391</PRE>
392
393<H3>Description</H3>
394
395<P>The <CODE>ServerCertificate</CODE> directive specifies the
396location of the SSL certificate file used by the server when
397negotiating encrypted connections. The certificate must not be
398encrypted (password protected) since the scheduler normally runs
399in the background and will be unable to ask for a password.</P>
400
401<P>The default certificate file is
402<VAR>/etc/cups/ssl/server.crt</VAR>.</P>
403
404
405<H2 CLASS="title"><A NAME="ServerKey">ServerKey</A></H2>
406
407<H3>Examples</H3>
408
409<PRE CLASS="command">
410ServerKey /etc/cups/ssl/server.key
411</PRE>
412
413<H3>Description</H3>
414
415<P>The <CODE>ServerKey</CODE> directive specifies the location of
416the SSL private key file used by the server when negotiating
417encrypted connections.</P>
418
419<P>The default key file is
420<VAR>/etc/cups/ssl/server.crt</VAR>.</P>
421
422
423<H2 CLASS="title"><A NAME="ServerRoot">ServerRoot</A></H2>
424
425<H3>Examples</H3>
426
427<PRE CLASS="command">
428ServerRoot /etc/cups
429ServerRoot /foo/bar/cups
430</PRE>
431
432<H3>Description</H3>
433
434<P>The <CODE>ServerRoot</CODE> directive specifies the absolute
435path to the server configuration and state files. It is also used
436to resolve relative paths in the <VAR>cupsd.conf</VAR> file. The
437default server directory is <VAR>/etc/cups</VAR>.</P>
438
439
440<H2 CLASS="title"><A NAME="SystemGroup">SystemGroup</A></H2>
441
442<H3>Examples</H3>
443
444<PRE CLASS="command">
445SystemGroup lpadmin
446SystemGroup sys
447SystemGroup system
448SystemGroup root
449SystemGroup root lpadmin
450</PRE>
451
452<H3>Description</H3>
453
454<P>The <CODE>SystemGroup</CODE> directive specifies the system
455administration group for <CODE>System</CODE> authentication.
456Multiple groups can be listed, separated with spaces. The default
457group list is <CODE>@CUPS_SYSTEM_GROUPS@</CODE>.</P>
458
459
460<H2 CLASS="title"><A NAME="TempDir">TempDir</A></H2>
461
462<H3>Examples</H3>
463
464<PRE CLASS="command">
465TempDir /var/tmp
466TempDir /foo/bar/tmp
467</PRE>
468
469<H3>Description</H3>
470
471<P>The <CODE>TempDir</CODE> directive specifies an absolute path
472for the directory to use for temporary files. The default
473directory is <VAR>@CUPS_REQUESTS@/tmp</VAR>.</P>
474
475<P>Temporary directories must be world-writable and should have
476the "sticky" permission bit enabled so that other users cannot
477delete filter temporary files. The following commands will create
478an appropriate temporary directory called
479<VAR>/foo/bar/tmp</VAR>:</P>
480
481<PRE CLASS="command">
482<KBD>mkdir /foo/bar/tmp</KBD>
483<KBD>chmod a+rwxt /foo/bar/tmp</KBD>
484</PRE>
485
486
487<H2 CLASS="title"><A NAME="User">User</A></H2>
488
489<H3>Examples</H3>
490
491<PRE CLASS="command">
492User lp
493User guest
494</PRE>
495
496<H3>Description</H3>
497
498<P>The <CODE>User</CODE> directive specifies the UNIX user that
499filter and CGI programs run as. The default user is
500<CODE>@CUPS_USER@</CODE>.</P>
501
502<BLOCKQUOTE><B>Note:</B>
503
504<P>You may not use user <CODE>root</CODE>, as that would expose
505the system to unacceptable security risks. The scheduler will
506automatically choose user <CODE>nobody</CODE> if you specify a
507user whose ID is 0.</P>
508
509</BLOCKQUOTE>
510
511
512</BODY>
513</HTML>