reference.sgml 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742
  1. <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [
  2. <!ENTITY debian "<productname>Debian</productname>">
  3. <!ENTITY dpkg "<command>dpkg</command>">
  4. <!ENTITY dselect "<command>dselect</command>">
  5. <!ENTITY deb "<filename>.deb</filename>">
  6. ]>
  7. <book id="packaging-manual">
  8. <bookinfo>
  9. <title>dpkg reference Manual</title>
  10. <edition>draft</edition>
  11. <authorgroup>
  12. <author>
  13. <firstname>Wichert</firstname>
  14. <surname>Akkerman</surname>
  15. <affiliation>
  16. <address>
  17. <email>wichert@deephackmode.org</email>
  18. </address>
  19. </affiliation>
  20. </author>
  21. </authorgroup>
  22. <copyright>
  23. <year>2001</year>
  24. <year>2002</year>
  25. <holder>Wichert Akkerman</holder>
  26. </copyright>
  27. <legalnotice>
  28. <para>
  29. Permission is granted to copy, distribute and/or modify this document
  30. under the terms of the GNU Free Documentation License, Version 1.1 or any
  31. later version published by the Free Software Foundation. There are
  32. no invariant sections. A copy of the license is included in the section
  33. entitled "GNU Free Documentation License".
  34. </para>
  35. </legalnotice>
  36. </bookinfo>
  37. <preface>
  38. <title>Preface</title>
  39. <para>
  40. This manual is a reference to the &debian; package management system.
  41. </para>
  42. <para>
  43. This manual is currently being written based on the previous packaging
  44. manual and as such is a work in progress.
  45. </para>
  46. </preface>
  47. <chapter id="intro">
  48. <title>Introduction</title>
  49. <para>
  50. The Debian package management system is build up from various seperate
  51. tools that work together form a comprehensive system to manage your
  52. system.
  53. </para>
  54. <para>
  55. This document describes all the tools that used to handle and produce
  56. them as well as the file formats used.
  57. </para>
  58. </chapter>
  59. <chapter id="diversions">
  60. <title>Managing diversions</title>
  61. <para>
  62. Diversions are a method to instruct &dpkg; to use a different filename
  63. when installing a file. This can be useful to prevent conflicts between
  64. related packages or when a system administator wants to replace a file
  65. with another version.
  66. </para>
  67. <para>
  68. Diversions are specific to either a package or the local system. A
  69. package specific diversion will only divert a file if it does not
  70. belongs to a specific package that was given when the diversion was
  71. created. This allow a package to divert a file from other packages and
  72. replacing them with its own copy. Local diversions are applied to all
  73. packages and can be used by the system administrator.
  74. </para>
  75. <section>
  76. <title>Managing diversions with dpkg-divert</title>
  77. <tip>
  78. <para>
  79. The official documentation for <command>dpkg-divert</command> can always
  80. be found online in the
  81. <citerefentry><refentrytitle>dpkg-divert</refentrytitle>
  82. <manvolnum>8</manvolnum></citerefentry> manual page.
  83. </para>
  84. </tip>
  85. <section>
  86. <title>Adding new diversions</title>
  87. <para>New options can be added using the <emphasis>--add</emphasis>
  88. option for <command>dpkg-divert</command>. Its syntax is:
  89. </para>
  90. </section>
  91. </section>
  92. </chapter>
  93. <chapter id="permissions">
  94. <title>Managing file permissions / ownership</title>
  95. <para>
  96. When you install a package &dpkg; will use the ownership and permissions
  97. that are used inside the package. In some situations you might not agree
  98. with those defaults and would like to use other settings. To support this
  99. a feature called statoverrides was introduced in &dpkg; 1.8.0, and an
  100. accompanying tool called <command>dpkg-statoverride</command>.
  101. </para>
  102. <note>
  103. <para>
  104. Even though we use the word file here, this applies to all filesystem
  105. objects that &dpkg; handles, including directories,
  106. devices, etc.
  107. </para>
  108. </note>
  109. <caution>
  110. <para>
  111. If you look at the &dpkg; changelog you will see that statoverrides
  112. were actually added in version 1.7.0. However that version had
  113. some problems both in <command>dpkg-statoverrides</command> which
  114. broke adding and removing of overrides and in &dpkg; itself which
  115. made it only apply overrides to normal files. Both problems
  116. were fixed in version 1.8.0.
  117. </para>
  118. </caution>
  119. <section>
  120. <title>How permissions and ownership are applied</title>
  121. <para>
  122. &dpkg; uses the following logic to determine the ownership and
  123. permissions to use when installing a file:
  124. </para>
  125. <orderedlist>
  126. <listitem><para>Check if there is a statoverride registered for this file
  127. </para></listitem>
  128. <listitem><para>If an override is present use the ownership and permission
  129. specified in the override.</para></listitem>
  130. <listitem><para>If no override is present:</para>
  131. <orderedlist>
  132. <listitem><para>Check if there is a system account with the same name
  133. as the owner used inside the archive. If so use that as owner,
  134. otherwise use the uid as used in the package.
  135. </para></listitem>
  136. <listitem><para>Check if there is a system group with the same name
  137. as the group used inside the archive. If so use that as group,
  138. otherwise use the gid as used in the package.
  139. </para></listitem>
  140. <listitem><para>Use the permissions as used in the package.
  141. </para></listitem>
  142. </orderedlist>
  143. </listitem>
  144. </orderedlist>
  145. <para>
  146. The exact method that &dpkg; uses to set the ownership and permissions
  147. depends on the type of file that is being created:
  148. </para>
  149. <variablelist>
  150. <varlistentry>
  151. <term>regular files</term>
  152. <listitem><para>Created with owner and group set to
  153. <filename>root</filename> and with mode 0. After the data has
  154. been written to the file the ownership and mode are set to their
  155. final values.
  156. </para></listitem>
  157. </varlistentry>
  158. <varlistentry>
  159. <term>FIFOs</term>
  160. <term>character and block devices</term>
  161. <term>directories</term>
  162. <listitem><para>Created with owner and group set to
  163. <filename>root</filename> and with mode 0, and then updated
  164. to set the ownership and mode to their final values.
  165. </para></listitem>
  166. </varlistentry>
  167. <varlistentry>
  168. <term>Hardlinks</term>
  169. <listitem><para>After the link has been made its ownership and
  170. permissions are setup. <emphasis>This means the original file
  171. will also be changed!</emphasis>
  172. </para></listitem>
  173. </varlistentry>
  174. </variablelist>
  175. </section>
  176. <section>
  177. <title>Managing overrides with dpkg-statoverride</title>
  178. <tip>
  179. <para>
  180. The official documentation for <command>dpkg-statoverride</command> can
  181. always be found online in the
  182. <citerefentry><refentrytitle>dpkg-statoverride</refentrytitle>
  183. <manvolnum>8</manvolnum></citerefentry> manual page.
  184. </para>
  185. </tip>
  186. <section>
  187. <title>Listing overrides</title>
  188. <para>
  189. You can get a list of all overrides present in the database by using the
  190. <option>--list</option> option:
  191. </para>
  192. <blockquote><para>
  193. <synopsis><command>dpkg-statoverride</command> <option>--list</option> <parameter>&lt;glob&gt;</parameter></synopsis>
  194. </para></blockquote>
  195. <para>
  196. There is an optional glob option that restricts the output from
  197. <option>--list</option> to overrides for files that match the glob
  198. expression.
  199. <para>
  200. <footnote>
  201. <para>
  202. Please see the <citerefentry><refentrytitle>sh</refentrytitle>
  203. <manvolnum>1</manvolnum></citerefentry> or
  204. <citerefentry><refentrytitle>glob</refentrytitle><manvolnum>7</manvolnum>
  205. </citerefentry> for a description of glob syntax.
  206. </para>
  207. </footnote>
  208. <example>
  209. <title>Listing overrides</title>
  210. <programlisting>
  211. [fog;~]-1# dpkg-statoverride --list
  212. root root 0755 /bin/mount
  213. root root 0755 /bin/ping
  214. [fog;~]-2# dpkg-statoverride --list '*mount*'
  215. root root 0755 /bin/mount
  216. </programlisting>
  217. </example>
  218. </section>
  219. <section>
  220. <title>Adding new overrides</title>
  221. <para>
  222. New options can be added using the <option>--add</option> option
  223. for <command>dpkg-statoverride</command>. Its syntax is:
  224. </para>
  225. <blockquote><para>
  226. <synopsis><command>dpkg-statoverride</command> <option>--add</option> <parameter>&lt;user&gt;</parameter> <parameter>&lt;group&gt;</parameter> <parameter>&lt;mode&gt;</parameter> <parameter>&lt;file&gt;</parameter>
  227. </synopsis></para></blockquote>
  228. <para>
  229. This will add an override for <filename>&lt;file&gt;</filename> by
  230. telling &dpkg; to use the user, group and mode given to
  231. <command>dpkg-statoverride</command>. The user and group can be
  232. specified in two ways: either by using the name as found in the
  233. system account database (ie <filename>/etc/passwd</filename>, NIS or
  234. another source configured in
  235. <filename>/etc/nsswitch.conf</filename>), or by using a number
  236. prefixed with <computeroutput>#</computeroutput>.
  237. </para>
  238. <example>
  239. <title>Adding an override</title>
  240. <programlisting>
  241. [fog;~]-1# ls -l /bin/mount
  242. -rwsr-xr-x 1 root root 56284 Nov 23 06:14 /bin/mount
  243. [fog;~]-2# dpkg-statoverride --add root root 0755 /bin/mount
  244. [fog;~]-3# ls -l /bin/mount
  245. -rwsr-xr-x 1 root root 56284 Nov 23 06:14 /bin/mount
  246. </programlisting>
  247. </example>
  248. <para>
  249. Adding an override does not update the file on the filesystem, unless
  250. you also specify the <option>--update</option> option.
  251. </para>
  252. <example>
  253. <title>Adding an override using --update</title>
  254. <programlisting>
  255. [fog;~]-1# ls -l /bin/mount
  256. -rwsr-xr-x 1 root root 56284 Nov 23 06:14 /bin/mount
  257. [fog;~]-2# dpkg-statoverride --update --add root root 0755 /bin/mount
  258. [fog;~]-3# ls -l /bin/mount
  259. -rwxr-xr-x 1 root root 56284 Nov 23 06:14 /bin/mount
  260. </programlisting>
  261. </example>
  262. <para>
  263. If an override already exists and you want to replace it you can
  264. use the <option>--force</option> to force <command>dpkg-statoverride
  265. </command> to replace the existing override.
  266. </para>
  267. <example>
  268. <title>Replacing an existing override</title>
  269. <programlisting>
  270. [fog;~/sources/play/pkg-manual]-1# dpkg-statoverride --add root root 0755 /bin/mount
  271. An override for "/bin/mount" already exists, aborting
  272. [fog;~/sources/play/pkg-manual]-2# dpkg-statoverride --force --add root root 0755 /bin/mount
  273. An override for "/bin/mount" already exists, but --force specified so lets ignore it.
  274. [fog;~/sources/play/pkg-manual]-3# dpkg-statoverride --list /bin/mount
  275. root root 0755 /bin/mount
  276. </programlisting>
  277. </example>
  278. </section>
  279. <section>
  280. <title>Removing overrides</title>
  281. <para>
  282. Overrides can be removed using the <option>--remove</option> option,
  283. which takes a single filename as argument:
  284. </para>
  285. <blockquote><para>
  286. <synopsis><command>dpkg-statoverride</command> <option>--remove</option> <parameter>&lt;file&gt;</parameter></synopsis>
  287. </para></blockquote>
  288. <para>
  289. This will remove the override for <filename>&lt;file&gt;</filename>
  290. from the database.
  291. </para>
  292. <note>
  293. <para>When an override for a file is removed its ownership and permission
  294. are <emphasis>not</emphasis> restored to the original value.
  295. </para>
  296. </note>
  297. <example>
  298. <title>Removing an override</title>
  299. <programlisting>
  300. [fog;~]-1# dpkg-statoverride --list
  301. root root 0755 /bin/mount
  302. [fog;~]-2# dpkg-statoverride --remove /bin/mount
  303. [fog;~]-3# dpkg-statoverride --list
  304. [fog;~]-4#
  305. </programlisting>
  306. </example>
  307. </section>
  308. </section>
  309. </chapter>
  310. <chapter id="formats">
  311. <title>File formats</title>
  312. <para>
  313. This chapter describes all the file formats used by the package tools.
  314. All files are text files which you can view and modify using any normal
  315. text editor if needed.
  316. </para>
  317. <para>
  318. Most file formats are based on the RFC822 format, which is best known
  319. as the format used in e-mail headers.
  320. </para>
  321. <section>
  322. <title>RFC822</title>
  323. <para>
  324. A RFC822 style messages consists of one or more blocks, seperated by
  325. null lines (an empty line). Each block is made up of fields. Fields
  326. can be folded over multiple lines by inserting a 'newline whitespace'
  327. pair. This combination is interpreted as a single whitespace.
  328. </para>
  329. <para>
  330. Each fiels s a single line consisting of a field-name and a
  331. field-body, seperated by a colon (:). The field-name is made up
  332. from printable ASCII characters minus the colon. The field-body
  333. may be composed of all ASCII characters except CR or LF (they
  334. are automatically removed when unfolding lines).
  335. </para>
  336. <example>
  337. <title>RFC822 style file</title>
  338. <programlisting>
  339. Header: value
  340. Description: this is an example of an RFC822 style message
  341. Section: new
  342. Name: body
  343. Description: this is block 2 of the example
  344. X-Fortune:
  345. To be excellent when engaged in administration is to be like the North
  346. Star. As it remains in its one position, all the other stars surround it.
  347. -- Confucius
  348. </programlisting>
  349. </example>
  350. </section>
  351. <section>
  352. <title>changes file</title>
  353. <para>
  354. Bla
  355. </para>
  356. </section>
  357. <section>
  358. <title>dsc file</title>
  359. <para>
  360. The <filename>.dsc</filename> file describes the source for a Debian
  361. package: it contains general information over the source such as the
  362. name of the package and which binary package it produces as well as
  363. the files that contain the sourcecode.
  364. </para>
  365. <para>
  366. Just like other dpkg datafiles this file is formated using RFC822
  367. syntax. In addition the file can signed as an OpenPGP ASCII armored
  368. message (see RFC2440). The table below lists the allowed fields
  369. in a <filename>.dsc</filename> file. The order used is not important,
  370. although <command>dpkg-source</command> will output the fields using
  371. the ordering used in the table.
  372. </para>
  373. <table>
  374. <title>Fields in a <filename>.dsc</filename> file</title>
  375. <tgroup cols="2">
  376. <thead>
  377. <row><entry>Field</entry><entry>Description</entry></row>
  378. </thead>
  379. <tbody>
  380. <row><entry>Format</entry>
  381. <entry>Version of the <filename>.dsc</filename> file format used
  382. </entry></row>
  383. <row><entry>Source</entry>
  384. <entry>Name of the source package</entry></row>
  385. <row><entry>Version</entry>
  386. <entry>Version number of the source</entry></row>
  387. <row><entry>Binary</entry>
  388. <entry>comma seperated list of binary packages build from this
  389. source</entry></row>
  390. <row><entry>Origin</entry>
  391. <entry>Name of the organization that procudes this package
  392. </entry></row>
  393. <row><entry>Maintainer</entry>
  394. <entry>Maintainer of this package</entry></row>
  395. <row><entry>Uploaders</entry>
  396. <entry>Multi-line field with list of people authorized to make
  397. uploads of a package (optional)</entry>
  398. <row><entry>Architecture</entry>
  399. <entry>Space seperated list of architectures for which package
  400. are build from this source</entry></row>
  401. <row><entry>Standards-Version</entry>
  402. <entry>Version of &debian; policy this package is complient
  403. with</entry></row>
  404. <row><entry>Files</entry>
  405. <entry>Multi-line field with list of files with the actual source
  406. code</entry></row>
  407. </tbody>
  408. </tgroup>
  409. </table>
  410. <para>
  411. The current version of the <filename>.dsc</filename> is 1.0 . The first
  412. digit in the version number is the major version. Within a major version
  413. the only allowed changes in format are additiong of new fields. This
  414. guarantees that tools like <command>dpkg-source</command> will be
  415. fully backwards and upwards compatible within a major version.
  416. </para>
  417. <para>
  418. The Files field contains one line for each file that is
  419. contains source for this package (only 2 files are supported: a
  420. <filename>.tar.gz</filename> file with the (original) source, and
  421. an optional <filename>.diff.gz</filename> with Debian changes to the
  422. source). Each file description consists of 3 items, seperated by
  423. a single space:
  424. <orderedlist>
  425. <listitem><para>A MD5 checksum of the file</para></listitem>
  426. <listitem><para>The filesize in bytes</para></listitem>
  427. <listitem><para>The filename</para></listitem>
  428. </orderedlist>
  429. </para>
  430. <example>
  431. <title>modutils .dsc file</title>
  432. <programlisting>
  433. -----BEGIN PGP SIGNED MESSAGE-----
  434. Hash: SHA1
  435. Format: 1.0
  436. Source: modutils
  437. Version: 2.4.1-1
  438. Binary: modutils
  439. Origin: debian
  440. Maintainer: Wichert Akkerman &lt;wakkerma@debian.org&gt;
  441. Architecture: any
  442. Standards-Version: 3.2.0
  443. Files:
  444. 6d69ff476c964e703659d950999e411c 246022 modutils_2.4.1.orig.tar.gz
  445. 3de7100460662472404f8a83cccde6da 17219 modutils_2.4.1-1.diff.gz
  446. -----BEGIN PGP SIGNATURE-----
  447. Version: GnuPG v1.0.4 (GNU/Linux)
  448. Comment: For info see http://www.gnupg.org
  449. iEYEARECAAYFAjpbNIAACgkQPLiSUC+jvC1CFQCePvKBH6qT7/BKXVHCamKXZvZq
  450. Be8An1QDPcyDFtMddYJw/BwTVphbwzU6
  451. =Zl3g
  452. -----END PGP SIGNATURE-----
  453. </programlisting>
  454. </example>
  455. </section>
  456. <section>
  457. <title>control</title>
  458. <table>
  459. <title>Fields in the source section of the <filename>control</filename>
  460. file</title>
  461. <tgroup cols="2">
  462. <thead>
  463. <row><entry>Field</entry>
  464. <entry>required</entry>
  465. <entry>Description</entry>
  466. </row>
  467. </thead>
  468. <tbody>
  469. <row><entry>Source</entry><entry>yes</entry>
  470. <entry>Name of the source package</entry></row>
  471. <row><entry>Section</entry><entry>no</entry>
  472. <entry>Package category for this package, used by frontends.
  473. </entry></row>
  474. <row><entry>Priority</entry><entry>no</entry>
  475. <entry>Indication of package importance. Legal values are
  476. extra, important, optional, required and standard.
  477. </entry></row>
  478. <row><entry>Maintainer</entry><entry>yes</entry>
  479. <entry>Name of the source package</entry></row>
  480. <row><entry>Standards-Version</entry><entry>no</entry>
  481. <entry>Version of &debian; policy this package is complient
  482. with</entry></row>
  483. <row><entry>Build-Depends, Build-Conflicts,
  484. Build-Depends-Indep, Build-Conflicts-Indep</entry><entry>no</entry>
  485. <entry>Specify demands on the build environment</entry></row>
  486. <row><entry>Bugs</entry><entry>no</entry>
  487. <entry>Name of the source package</entry></row>
  488. <row><entry>Origin</entry><entry>no</entry>
  489. <entry>Name of the source package</entry></row>
  490. </tbody>
  491. </tgroup>
  492. </table>
  493. <table>
  494. <title>Fields in the package section of the <filename>control</filename>
  495. file</title>
  496. <tgroup cols="2">
  497. <thead>
  498. <row><entry>Field</entry>
  499. <entry>required</entry>
  500. <entry>Description</entry>
  501. </row>
  502. </thead>
  503. <tbody>
  504. <row><entry>Package</entry><entry>yes</entry>
  505. <entry>Name of the package</entry></row>
  506. <row><entry>Architecture</entry><entry>yes</entry>
  507. <entry>Space seperated list of architectures for which package
  508. are build from this source</entry></row>
  509. <row><entry>Essential</entry><entry>no</entry>
  510. <entry>Indicates if a package is essential to the system
  511. </entry></row>
  512. <row><entry>Pre-Depends, Depends, Recommends, Suggests, Replaces,
  513. Conflicts</entry><entry>no</entry>
  514. <entry>Specify relations to other packages</entry></row>
  515. <row><entry>Description</entry><entry>yes</entry>
  516. <entry>Description of the package</entry></row>
  517. </tbody>
  518. </tgroup>
  519. </table>
  520. </section>
  521. <section>
  522. <title>diversions</title>
  523. <para>
  524. The <filename>diversions</filename> file contains all the alternatives
  525. defined on this system. It is located in the &dpkg; admin directory.
  526. </para>
  527. <note>
  528. <para>
  529. This is an internal &dpkg; file: do not edit it by hand unless really
  530. needed, but use the <command>dpkg-divert</command> tool instead.
  531. </para>
  532. </note>
  533. <para>
  534. For each diversion there are 3 lines in the diversions file:
  535. <orderedlist>
  536. <listitem><para>
  537. The name of the file that will be diverted.
  538. </para></listitem>
  539. <listitem><para>
  540. The filename that the diverted file will be diverted to.
  541. </para></listitem>
  542. <listitem><para>
  543. The name of the package that made this diversion. If it is a
  544. local (ie user) diversion the magic packagename `:' is used
  545. instead.
  546. </para></listitem>
  547. </orderedlist>
  548. </para>
  549. <example>
  550. <title>Example <filename>diversions</filename> file</title>
  551. <programlisting>
  552. /sbin/modprobe
  553. /sbin/modprobe.orig
  554. :
  555. /usr/bin/locate
  556. /usr/bin/locate.notslocate
  557. slocate
  558. </programlisting>
  559. </example>
  560. </section>
  561. <section>
  562. <title>statoverrides</title>
  563. <para>
  564. This file contains the list of all statoverrides that &dpkg; uses
  565. when unpacking packages. It is located in the &dpkg; admin
  566. directory. Each line in the file represents one override, and
  567. comments are not allowed.
  568. </para>
  569. <note>
  570. <para>
  571. This is an internal &dpkg; file: do not edit it by hand unless really
  572. needed, but use the <command>dpkg-statoverride</command> tool instead.
  573. </para>
  574. </note>
  575. <para>
  576. Each line contains 4 items, seperated by whitespace:
  577. <orderedlist>
  578. <listitem><para>
  579. The owner to use. This can be either an accountname that must
  580. be present on the system, or a numerical uid. Uids are prefixed
  581. with a <computeroutput>#</computeroutput>.
  582. </para></listitem>
  583. <listitem><para>
  584. The group to use. This can be either a group that must be present on
  585. the system, or a numerical gid. Gids are prefixed
  586. with a <computeroutput>#</computeroutput>.
  587. </para></listitem>
  588. <listitem><para>
  589. Mode to use for this file. This is an octal number.
  590. </para></listitem>
  591. <listitem><para>
  592. The filesystem object (file, directory, device, FIFO or link)
  593. to which this override should be applied. Since this is the
  594. last item on a line it may contain whitespace.
  595. </para></listitem>
  596. </orderedlist>
  597. </para>
  598. <example>
  599. <title>Example <filename>statoverride</filename> file</title>
  600. <programlisting>
  601. root wheel 04750 /bin/su
  602. root adm 0750 /var/log/apache
  603. </programlisting>
  604. <para>
  605. This will tell &dpkg; to do the following:
  606. </para>
  607. <itemizedlist>
  608. <listitem><para><filename>/bin/su</filename> is installed owned by
  609. user <computeroutput>root</computeroutput> and group
  610. <computeroutput>wheel</computeroutput> with mode 04750. This means
  611. that only people in the <computeroutput>wheel</computeroutput>
  612. group are allowed to run <command>su</command>.
  613. </para></listitem>
  614. <listitem><para><filename>/var/log/apache</filename> is installed
  615. owned by user <computeroutput>root</computeroutput> and group
  616. <computeroutput>adm</computeroutput> with mode 0750. This
  617. restricts the ability to view the
  618. <productname>apache</productname> to people in the
  619. <computeroutput>adm</computeroutput> group by disallowing others
  620. to access the <filename>/var/log/apache</filename> directory.
  621. </para></listitem>
  622. </itemizedlist>
  623. </example>
  624. </section>
  625. <section>
  626. <title>alternatives</title>
  627. <para>
  628. Bla
  629. </para>
  630. </section>
  631. </chapter>
  632. </book>
  633. <!-- vim: sw=2
  634. -->