Changeset 368 for branches/samba-3.3.x/docs/htmldocs/Samba3-HOWTO/pam.html
- Timestamp:
- Jan 15, 2010, 8:21:06 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/samba-3.3.x/docs/htmldocs/Samba3-HOWTO/pam.html
r342 r368 1 <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 28. PAM-Based Distributed Authentication</title><link rel="stylesheet" href="../samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.7 4.0"><link rel="home" href="index.html" title="The Official Samba 3.3.x HOWTO and Reference Guide"><link rel="up" href="optional.html" title="Part III. Advanced Configuration"><link rel="prev" href="ProfileMgmt.html" title="Chapter 27. Desktop Profile Management"><link rel="next" href="integrate-ms-networks.html" title="Chapter 29. Integrating MS Windows Networks with Samba"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 28. PAM-Based Distributed Authentication</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ProfileMgmt.html">Prev</a> </td><th width="60%" align="center">Part III. Advanced Configuration</th><td width="20%" align="right"> <a accesskey="n" href="integrate-ms-networks.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="pam"></a>Chapter 28. PAM-Based Distributed Authentication</h2></div><div><div class="author"><h3 class="author"><span class="firstname">John</span> <span class="othername">H.</span> <span class="orgname">Samba Team</span> <span class="surname">Terpstra</span></h3><div class="affiliation"><span class="orgname">Samba Team<br></span><div class="address"><p><code class="email"><<a class="email" href="mailto:jht@samba.org">jht@samba.org</a>></code></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">Stephen</span> <span class="surname">Langasek</span></h3><div class="affiliation"><div class="address"><p><code class="email"><<a class="email" href="mailto:vorlon@netexpress.net">vorlon@netexpress.net</a>></code></p></div></div></div></div><div><p class="pubdate">May 31, 2003</p></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="pam.html#id2665180">Features and Benefits</a></span></dt><dt><span class="sect1"><a href="pam.html#id2665810">Technical Discussion</a></span></dt><dd><dl><dt><span class="sect2"><a href="pam.html#id2665864">PAM Configuration Syntax</a></span></dt><dt><span class="sect2"><a href="pam.html#id2666875">Example System Configurations</a></span></dt><dt><span class="sect2"><a href="pam.html#id2667181">smb.conf PAM Configuration</a></span></dt><dt><span class="sect2"><a href="pam.html#id2667262">Remote CIFS Authentication Using winbindd.so</a></span></dt><dt><span class="sect2"><a href="pam.html#id2667365">Password Synchronization Using pam_smbpass.so</a></span></dt></dl></dd><dt><span class="sect1"><a href="pam.html#id2667759">Common Errors</a></span></dt><dd><dl><dt><span class="sect2"><a href="pam.html#id2667770">pam_winbind Problem</a></span></dt><dt><span class="sect2"><a href="pam.html#id2667868">Winbind Is Not Resolving Users and Groups</a></span></dt></dl></dd></dl></div><p>2 <a class="indexterm" name="id26 65104"></a>3 <a class="indexterm" name="id26 65111"></a>4 <a class="indexterm" name="id26 65117"></a>5 <a class="indexterm" name="id26 65124"></a>1 <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 28. PAM-Based Distributed Authentication</title><link rel="stylesheet" href="../samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><link rel="home" href="index.html" title="The Official Samba 3.3.x HOWTO and Reference Guide"><link rel="up" href="optional.html" title="Part III. Advanced Configuration"><link rel="prev" href="ProfileMgmt.html" title="Chapter 27. Desktop Profile Management"><link rel="next" href="integrate-ms-networks.html" title="Chapter 29. Integrating MS Windows Networks with Samba"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 28. PAM-Based Distributed Authentication</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ProfileMgmt.html">Prev</a> </td><th width="60%" align="center">Part III. Advanced Configuration</th><td width="20%" align="right"> <a accesskey="n" href="integrate-ms-networks.html">Next</a></td></tr></table><hr></div><div class="chapter" title="Chapter 28. PAM-Based Distributed Authentication"><div class="titlepage"><div><div><h2 class="title"><a name="pam"></a>Chapter 28. PAM-Based Distributed Authentication</h2></div><div><div class="author"><h3 class="author"><span class="firstname">John</span> <span class="othername">H.</span> <span class="surname">Terpstra</span></h3><div class="affiliation"><span class="orgname">Samba Team<br></span><div class="address"><p><code class="email"><<a class="email" href="mailto:jht@samba.org">jht@samba.org</a>></code></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">Stephen</span> <span class="surname">Langasek</span></h3><div class="affiliation"><div class="address"><p><code class="email"><<a class="email" href="mailto:vorlon@netexpress.net">vorlon@netexpress.net</a>></code></p></div></div></div></div><div><p class="pubdate">May 31, 2003</p></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="pam.html#id2671238">Features and Benefits</a></span></dt><dt><span class="sect1"><a href="pam.html#id2671868">Technical Discussion</a></span></dt><dd><dl><dt><span class="sect2"><a href="pam.html#id2671922">PAM Configuration Syntax</a></span></dt><dt><span class="sect2"><a href="pam.html#id2672928">Example System Configurations</a></span></dt><dt><span class="sect2"><a href="pam.html#id2673234"><code class="filename">smb.conf</code> PAM Configuration</a></span></dt><dt><span class="sect2"><a href="pam.html#id2673315">Remote CIFS Authentication Using <code class="filename">winbindd.so</code></a></span></dt><dt><span class="sect2"><a href="pam.html#id2673418">Password Synchronization Using <code class="filename">pam_smbpass.so</code></a></span></dt></dl></dd><dt><span class="sect1"><a href="pam.html#id2673812">Common Errors</a></span></dt><dd><dl><dt><span class="sect2"><a href="pam.html#id2673824">pam_winbind Problem</a></span></dt><dt><span class="sect2"><a href="pam.html#id2673922">Winbind Is Not Resolving Users and Groups</a></span></dt></dl></dd></dl></div><p> 2 <a class="indexterm" name="id2671162"></a> 3 <a class="indexterm" name="id2671169"></a> 4 <a class="indexterm" name="id2671176"></a> 5 <a class="indexterm" name="id2671182"></a> 6 6 This chapter should help you to deploy Winbind-based authentication on any PAM-enabled 7 7 UNIX/Linux system. Winbind can be used to enable user-level application access authentication … … 10 10 controls that are appropriate to your Samba configuration. 11 11 </p><p> 12 <a class="indexterm" name="id26 65142"></a>13 <a class="indexterm" name="id26 65148"></a>12 <a class="indexterm" name="id2671200"></a> 13 <a class="indexterm" name="id2671207"></a> 14 14 In addition to knowing how to configure Winbind into PAM, you will learn generic PAM management 15 15 possibilities and in particular how to deploy tools like <code class="filename">pam_smbpass.so</code> to your advantage. 16 </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>16 </p><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p> 17 17 The use of Winbind requires more than PAM configuration alone. 18 18 Please refer to <a class="link" href="winbind.html" title="Chapter 24. Winbind: Use of Domain Accounts">Winbind: Use of Domain Accounts</a>, for further information regarding Winbind. 19 </p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2665180"></a>Features and Benefits</h2></div></div></div><p>20 <a class="indexterm" name="id26 65188"></a>21 <a class="indexterm" name="id26 65194"></a>22 <a class="indexterm" name="id26 65201"></a>23 <a class="indexterm" name="id26 65208"></a>24 <a class="indexterm" name="id26 65217"></a>25 <a class="indexterm" name="id26 65224"></a>26 <a class="indexterm" name="id26 65231"></a>27 <a class="indexterm" name="id26 65237"></a>19 </p></div><div class="sect1" title="Features and Benefits"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2671238"></a>Features and Benefits</h2></div></div></div><p> 20 <a class="indexterm" name="id2671246"></a> 21 <a class="indexterm" name="id2671252"></a> 22 <a class="indexterm" name="id2671259"></a> 23 <a class="indexterm" name="id2671266"></a> 24 <a class="indexterm" name="id2671275"></a> 25 <a class="indexterm" name="id2671282"></a> 26 <a class="indexterm" name="id2671289"></a> 27 <a class="indexterm" name="id2671296"></a> 28 28 A number of UNIX systems (e.g., Sun Solaris), as well as the xxxxBSD family and Linux, 29 29 now utilize the Pluggable Authentication Modules (PAM) facility to provide all authentication, … … 34 34 <code class="literal">passwd</code>, <code class="literal">chown</code>, and so on. 35 35 </p><p> 36 <a class="indexterm" name="id26 65279"></a>37 <a class="indexterm" name="id26 65286"></a>38 <a class="indexterm" name="id26 65293"></a>39 <a class="indexterm" name="id26 65300"></a>36 <a class="indexterm" name="id2671337"></a> 37 <a class="indexterm" name="id2671344"></a> 38 <a class="indexterm" name="id2671351"></a> 39 <a class="indexterm" name="id2671358"></a> 40 40 PAM provides a mechanism that disconnects these security programs from the underlying 41 41 authentication/authorization infrastructure. PAM is configured by making appropriate modifications to one file, … … 43 43 located in <code class="filename">/etc/pam.d</code>. 44 44 </p><p> 45 <a class="indexterm" name="id26 65326"></a>46 <a class="indexterm" name="id26 65333"></a>45 <a class="indexterm" name="id2671384"></a> 46 <a class="indexterm" name="id2671391"></a> 47 47 On PAM-enabled UNIX/Linux systems, it is an easy matter to configure the system to use any 48 48 authentication backend so long as the appropriate dynamically loadable library modules … … 52 52 PAM support modules are available for: 53 53 </p><div class="variablelist"><dl><dt><span class="term"><code class="filename">/etc/passwd</code></span></dt><dd><p> 54 <a class="indexterm" name="id26 65363"></a>55 <a class="indexterm" name="id26 65370"></a>56 <a class="indexterm" name="id26 65377"></a>57 <a class="indexterm" name="id26 65384"></a>58 <a class="indexterm" name="id26 65390"></a>59 <a class="indexterm" name="id26 65397"></a>54 <a class="indexterm" name="id2671421"></a> 55 <a class="indexterm" name="id2671428"></a> 56 <a class="indexterm" name="id2671435"></a> 57 <a class="indexterm" name="id2671442"></a> 58 <a class="indexterm" name="id2671449"></a> 59 <a class="indexterm" name="id2671455"></a> 60 60 There are several PAM modules that interact with this standard UNIX user database. The most common are called 61 61 <code class="filename">pam_unix.so</code>, <code class="filename">pam_unix2.so</code>, <code class="filename">pam_pwdb.so</code> and 62 62 <code class="filename">pam_userdb.so</code>. 63 63 </p></dd><dt><span class="term">Kerberos</span></dt><dd><p> 64 <a class="indexterm" name="id26 65440"></a>65 <a class="indexterm" name="id26 65447"></a>66 <a class="indexterm" name="id26 65453"></a>67 <a class="indexterm" name="id26 65460"></a>68 <a class="indexterm" name="id26 65467"></a>64 <a class="indexterm" name="id2671498"></a> 65 <a class="indexterm" name="id2671505"></a> 66 <a class="indexterm" name="id2671512"></a> 67 <a class="indexterm" name="id2671518"></a> 68 <a class="indexterm" name="id2671525"></a> 69 69 The <code class="filename">pam_krb5.so</code> module allows the use of any Kerberos-compliant server. 70 70 This tool is used to access MIT Kerberos, Heimdal Kerberos, and potentially 71 71 Microsoft Active Directory (if enabled). 72 72 </p></dd><dt><span class="term">LDAP</span></dt><dd><p> 73 <a class="indexterm" name="id26 65493"></a>74 <a class="indexterm" name="id26 65500"></a>75 <a class="indexterm" name="id26 65506"></a>76 <a class="indexterm" name="id26 65513"></a>77 <a class="indexterm" name="id26 65520"></a>78 <a class="indexterm" name="id26 65527"></a>73 <a class="indexterm" name="id2671551"></a> 74 <a class="indexterm" name="id2671558"></a> 75 <a class="indexterm" name="id2671564"></a> 76 <a class="indexterm" name="id2671571"></a> 77 <a class="indexterm" name="id2671578"></a> 78 <a class="indexterm" name="id2671585"></a> 79 79 The <code class="filename">pam_ldap.so</code> module allows the use of any LDAP v2- or v3-compatible backend 80 80 server. Commonly used LDAP backend servers include OpenLDAP v2.0 and v2.1, 81 81 Sun ONE iDentity server, Novell eDirectory server, and Microsoft Active Directory. 82 82 </p></dd><dt><span class="term">NetWare Bindery</span></dt><dd><p> 83 <a class="indexterm" name="id26 65554"></a>84 <a class="indexterm" name="id26 65561"></a>85 <a class="indexterm" name="id26 65568"></a>86 <a class="indexterm" name="id26 65575"></a>83 <a class="indexterm" name="id2671612"></a> 84 <a class="indexterm" name="id2671619"></a> 85 <a class="indexterm" name="id2671626"></a> 86 <a class="indexterm" name="id2671633"></a> 87 87 The <code class="filename">pam_ncp_auth.so</code> module allows authentication off any bindery-enabled 88 88 NetWare Core Protocol-based server. 89 89 </p></dd><dt><span class="term">SMB Password</span></dt><dd><p> 90 <a class="indexterm" name="id26 65600"></a>91 <a class="indexterm" name="id26 65607"></a>92 <a class="indexterm" name="id26 65614"></a>90 <a class="indexterm" name="id2671658"></a> 91 <a class="indexterm" name="id2671665"></a> 92 <a class="indexterm" name="id2671672"></a> 93 93 This module, called <code class="filename">pam_smbpass.so</code>, allows user authentication of 94 94 the passdb backend that is configured in the Samba <code class="filename">smb.conf</code> file. 95 95 </p></dd><dt><span class="term">SMB Server</span></dt><dd><p> 96 <a class="indexterm" name="id26 65645"></a>97 <a class="indexterm" name="id26 65652"></a>96 <a class="indexterm" name="id2671703"></a> 97 <a class="indexterm" name="id2671710"></a> 98 98 The <code class="filename">pam_smb_auth.so</code> module is the original MS Windows networking authentication 99 99 tool. This module has been somewhat outdated by the Winbind module. 100 100 </p></dd><dt><span class="term">Winbind</span></dt><dd><p> 101 <a class="indexterm" name="id26 65677"></a>102 <a class="indexterm" name="id26 65684"></a>103 <a class="indexterm" name="id26 65691"></a>104 <a class="indexterm" name="id26 65698"></a>101 <a class="indexterm" name="id2671735"></a> 102 <a class="indexterm" name="id2671742"></a> 103 <a class="indexterm" name="id2671749"></a> 104 <a class="indexterm" name="id2671756"></a> 105 105 The <code class="filename">pam_winbind.so</code> module allows Samba to obtain authentication from any 106 106 MS Windows domain controller. It can just as easily be used to authenticate 107 107 users for access to any PAM-enabled application. 108 108 </p></dd><dt><span class="term">RADIUS</span></dt><dd><p> 109 <a class="indexterm" name="id26 65724"></a>109 <a class="indexterm" name="id2671782"></a> 110 110 There is a PAM RADIUS (Remote Access Dial-In User Service) authentication 111 111 module. In most cases, administrators need to locate the source code … … 113 113 used by many routers and terminal servers. 114 114 </p></dd></dl></div><p> 115 <a class="indexterm" name="id26 65743"></a>116 <a class="indexterm" name="id26 65750"></a>115 <a class="indexterm" name="id2671802"></a> 116 <a class="indexterm" name="id2671808"></a> 117 117 Of the modules listed, Samba provides the <code class="filename">pam_smbpasswd.so</code> and the 118 118 <code class="filename">pam_winbind.so</code> modules alone. 119 119 </p><p> 120 <a class="indexterm" name="id26 65774"></a>121 <a class="indexterm" name="id26 65781"></a>122 <a class="indexterm" name="id26 65788"></a>123 <a class="indexterm" name="id26 65795"></a>120 <a class="indexterm" name="id2671832"></a> 121 <a class="indexterm" name="id2671839"></a> 122 <a class="indexterm" name="id2671846"></a> 123 <a class="indexterm" name="id2671853"></a> 124 124 Once configured, these permit a remarkable level of flexibility in the location and use 125 125 of distributed Samba domain controllers that can provide wide-area network bandwidth, … … 127 127 deployment of centrally managed and maintained distributed authentication from a 128 128 single-user account database. 129 </p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2665810"></a>Technical Discussion</h2></div></div></div><p>130 <a class="indexterm" name="id26 65818"></a>131 <a class="indexterm" name="id26 65825"></a>132 <a class="indexterm" name="id26 65832"></a>133 <a class="indexterm" name="id26 65839"></a>129 </p></div><div class="sect1" title="Technical Discussion"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2671868"></a>Technical Discussion</h2></div></div></div><p> 130 <a class="indexterm" name="id2671876"></a> 131 <a class="indexterm" name="id2671883"></a> 132 <a class="indexterm" name="id2671890"></a> 133 <a class="indexterm" name="id2671897"></a> 134 134 PAM is designed to provide system administrators with a great deal of flexibility in 135 135 configuration of the privilege-granting applications of their system. The local … … 137 137 either the single system file <code class="filename">/etc/pam.conf</code> or the 138 138 <code class="filename">/etc/pam.d/</code> directory. 139 </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2665864"></a>PAM Configuration Syntax</h3></div></div></div><p>140 <a class="indexterm" name="id26 65872"></a>141 <a class="indexterm" name="id26 65879"></a>139 </p><div class="sect2" title="PAM Configuration Syntax"><div class="titlepage"><div><div><h3 class="title"><a name="id2671922"></a>PAM Configuration Syntax</h3></div></div></div><p> 140 <a class="indexterm" name="id2671930"></a> 141 <a class="indexterm" name="id2671937"></a> 142 142 In this section we discuss the correct syntax of and generic options respected by entries to these files. 143 143 PAM-specific tokens in the configuration file are case insensitive. The module paths, however, are case … … 146 146 </p><p> 147 147 In addition to the lines described below, there are two special characters provided for the convenience 148 of the system administrator: comments are preceded by a “<span class="quote">#</span>”and extend to the next end-of-line; also,149 module specification lines may be extended with a “<span class="quote">\</span>”-escaped newline.150 </p><p> 151 <a class="indexterm" name="id26 65910"></a>152 <a class="indexterm" name="id26 65917"></a>148 of the system administrator: comments are preceded by a <span class="quote">“<span class="quote">#</span>”</span> and extend to the next end-of-line; also, 149 module specification lines may be extended with a <span class="quote">“<span class="quote">\</span>”</span>-escaped newline. 150 </p><p> 151 <a class="indexterm" name="id2671968"></a> 152 <a class="indexterm" name="id2671975"></a> 153 153 If the PAM authentication module (loadable link library file) is located in the 154 154 default location, then it is not necessary to specify the path. In the case of … … 158 158 auth required /other_path/pam_strange_module.so 159 159 </pre><p> 160 </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2665943"></a>Anatomy of <code class="filename">/etc/pam.d</code> Entries</h4></div></div></div><p>160 </p><div class="sect3" title="Anatomy of /etc/pam.d Entries"><div class="titlepage"><div><div><h4 class="title"><a name="id2672001"></a>Anatomy of <code class="filename">/etc/pam.d</code> Entries</h4></div></div></div><p> 161 161 The remaining information in this subsection was taken from the documentation of the Linux-PAM 162 162 project. For more information on PAM, see 163 163 <a class="ulink" href="http://ftp.kernel.org/pub/linux/libs/pam/" target="_top">the Official Linux-PAM home page</a>. 164 164 </p><p> 165 <a class="indexterm" name="id26 65969"></a>165 <a class="indexterm" name="id2672027"></a> 166 166 A general configuration line of the <code class="filename">/etc/pam.conf</code> file has the following form: 167 167 </p><pre class="programlisting"> … … 173 173 Once we have explained the meaning of the tokens, we describe this method. 174 174 </p><div class="variablelist"><dl><dt><span class="term">service-name</span></dt><dd><p> 175 <a class="indexterm" name="id26 66014"></a>176 <a class="indexterm" name="id26 66021"></a>177 <a class="indexterm" name="id26 66027"></a>175 <a class="indexterm" name="id2672072"></a> 176 <a class="indexterm" name="id2672079"></a> 177 <a class="indexterm" name="id2672086"></a> 178 178 The name of the service associated with this entry. Frequently, the service-name is the conventional 179 179 name of the given application for example, <code class="literal">ftpd</code>, <code class="literal">rlogind</code> and … … 186 186 </p></dd><dt><span class="term">module-type</span></dt><dd><p> 187 187 One of (currently) four types of module. The four types are as follows: 188 </p><div class="itemizedlist"><ul type="disc"><li><p>189 <a class="indexterm" name="id26 66095"></a>190 <a class="indexterm" name="id26 66102"></a>188 </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> 189 <a class="indexterm" name="id2672154"></a> 190 <a class="indexterm" name="id2672160"></a> 191 191 <em class="parameter"><code>auth:</code></em> This module type provides two aspects of authenticating the user. 192 192 It establishes that the user is who he or she claims to be by instructing the application … … 194 194 grant group membership (independently of the <code class="filename">/etc/groups</code> file) 195 195 or other privileges through its credential-granting properties. 196 </p></li><li ><p>197 <a class="indexterm" name="id26 66131"></a>198 <a class="indexterm" name="id26 66138"></a>196 </p></li><li class="listitem"><p> 197 <a class="indexterm" name="id2672190"></a> 198 <a class="indexterm" name="id2672196"></a> 199 199 <em class="parameter"><code>account:</code></em> This module performs non-authentication-based account management. 200 200 It is typically used to restrict/permit access to a service based on the time of day, currently 201 201 available system resources (maximum number of users), or perhaps the location of the user 202 login. For example, the “<span class="quote">root</span>”login may be permitted only on the console.203 </p></li><li ><p>204 <a class="indexterm" name="id26 66165"></a>202 login. For example, the <span class="quote">“<span class="quote">root</span>”</span> login may be permitted only on the console. 203 </p></li><li class="listitem"><p> 204 <a class="indexterm" name="id2672223"></a> 205 205 <em class="parameter"><code>session:</code></em> Primarily, this module is associated with doing things that need 206 206 to be done for the user before and after he or she can be given service. Such things include logging 207 207 information concerning the opening and closing of some data exchange with a user, mounting 208 208 directories, and so on. 209 </p></li><li ><p>210 <a class="indexterm" name="id26 66192"></a>209 </p></li><li class="listitem"><p> 210 <a class="indexterm" name="id2672245"></a> 211 211 <em class="parameter"><code>password:</code></em> This last module type is required for updating the authentication 212 212 token associated with the user. Typically, there is one module for each 213 “<span class="quote">challenge/response</span>”authentication <em class="parameter"><code>(auth)</code></em> module type.213 <span class="quote">“<span class="quote">challenge/response</span>”</span> authentication <em class="parameter"><code>(auth)</code></em> module type. 214 214 </p></li></ul></div></dd><dt><span class="term">control-flag</span></dt><dd><p> 215 215 The control-flag is used to indicate how the PAM library will react to the success or failure of the … … 222 222 As of Linux-PAM v0.60, this control-flag can be defined with one of two syntaxes. 223 223 </p><p> 224 <a class="indexterm" name="id26 66256"></a>225 <a class="indexterm" name="id26 66263"></a>226 <a class="indexterm" name="id26 66270"></a>227 <a class="indexterm" name="id26 66277"></a>224 <a class="indexterm" name="id2672309"></a> 225 <a class="indexterm" name="id2672316"></a> 226 <a class="indexterm" name="id2672323"></a> 227 <a class="indexterm" name="id2672330"></a> 228 228 The simpler (and historical) syntax for the control-flag is a single keyword defined to indicate the 229 229 severity of concern associated with the success or failure of a specific module. There are four such … … 232 232 </p><p> 233 233 The Linux-PAM library interprets these keywords in the following manner: 234 </p><div class="itemizedlist"><ul type="disc"><li><p>234 </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> 235 235 <em class="parameter"><code>required:</code></em> This indicates that the success of the module is required for the 236 236 module-type facility to succeed. Failure of this module will not be apparent to the user until all 237 237 of the remaining modules (of the same module-type) have been executed. 238 </p></li><li ><p>238 </p></li><li class="listitem"><p> 239 239 <em class="parameter"><code>requisite:</code></em> Like required, except that if such a module returns a 240 240 failure, control is directly returned to the application. The return value is that associated with … … 244 244 possibility should be weighed against the not insignificant concerns of exposing a sensitive 245 245 password in a hostile environment. 246 </p></li><li ><p>246 </p></li><li class="listitem"><p> 247 247 <em class="parameter"><code>sufficient:</code></em> The success of this module is deemed <em class="parameter"><code>sufficient</code></em> to satisfy 248 248 the Linux-PAM library that this module-type has succeeded in its purpose. In the event that no 249 previous required module has failed, no more “<span class="quote">stacked</span>”modules of this type are invoked.249 previous required module has failed, no more <span class="quote">“<span class="quote">stacked</span>”</span> modules of this type are invoked. 250 250 (In this case, subsequent required modules are not invoked). A failure of this module is not deemed 251 251 as fatal to satisfying the application that this module-type has succeeded. 252 </p></li><li ><p>252 </p></li><li class="listitem"><p> 253 253 <em class="parameter"><code>optional:</code></em> As its name suggests, this control-flag marks the module as not 254 254 being critical to the success or failure of the user's application for service. In general, … … 284 284 stack of modules with a number of different paths of execution. Which path is taken can be determined by the 285 285 reactions of individual modules. 286 </p><div class="itemizedlist"><ul type="disc"><li><p>286 </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> 287 287 <em class="parameter"><code>ignore:</code></em> When used with a stack of modules, the module's return status will not 288 288 contribute to the return code the application obtains. 289 </p></li><li ><p>289 </p></li><li class="listitem"><p> 290 290 <em class="parameter"><code>bad:</code></em> This action indicates that the return code should be thought of as indicative 291 291 of the module failing. If this module is the first in the stack to fail, its status value will be used 292 292 for that of the whole stack. 293 </p></li><li ><p>293 </p></li><li class="listitem"><p> 294 294 <em class="parameter"><code>die:</code></em> Equivalent to bad with the side effect of terminating the module stack and 295 295 PAM immediately returning to the application. 296 </p></li><li ><p>296 </p></li><li class="listitem"><p> 297 297 <em class="parameter"><code>ok:</code></em> This tells PAM that the administrator thinks this return code should 298 298 contribute directly to the return code of the full stack of modules. In other words, if the former … … 300 300 this value. Note, if the former state of the stack holds some value that is indicative of a module's 301 301 failure, this <em class="parameter"><code>ok</code></em> value will not be used to override that value. 302 </p></li><li ><p>302 </p></li><li class="listitem"><p> 303 303 <em class="parameter"><code>done:</code></em> Equivalent to <em class="parameter"><code>ok</code></em> with the side effect of terminating the module stack and 304 304 PAM immediately returning to the application. 305 </p></li><li ><p>305 </p></li><li class="listitem"><p> 306 306 <em class="parameter"><code>reset:</code></em> Clears all memory of the state of the module stack and starts again with 307 307 the next stacked module. … … 311 311 of the [...] syntax. They are as follows: 312 312 </p><p> 313 </p><div class="itemizedlist"><ul type="disc"><li><p>313 </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> 314 314 <em class="parameter"><code>required</code></em> is equivalent to <em class="parameter"><code>[success=ok new_authtok_reqd=ok ignore=ignore default=bad]</code></em>. 315 </p></li><li ><p>315 </p></li><li class="listitem"><p> 316 316 <em class="parameter"><code>requisite</code></em> is equivalent to <em class="parameter"><code>[success=ok new_authtok_reqd=ok ignore=ignore default=die]</code></em>. 317 </p></li><li ><p>317 </p></li><li class="listitem"><p> 318 318 <em class="parameter"><code>sufficient</code></em> is equivalent to <em class="parameter"><code>[success=done new_authtok_reqd=done default=ignore]</code></em>. 319 </p></li><li ><p>319 </p></li><li class="listitem"><p> 320 320 <em class="parameter"><code>optional</code></em> is equivalent to <em class="parameter"><code>[success=ok new_authtok_reqd=ok default=ignore]</code></em>. 321 321 </p></li></ul></div><p> … … 329 329 </p></dd><dt><span class="term">module-path</span></dt><dd><p> 330 330 The pathname of the dynamically loadable object file; the pluggable module itself. If the first character of the 331 module path is “<span class="quote">/</span>”, it is assumed to be a complete path. If this is not the case, the given module path is appended331 module path is <span class="quote">“<span class="quote">/</span>”</span>, it is assumed to be a complete path. If this is not the case, the given module path is appended 332 332 to the default module path: <code class="filename">/lib/security</code> (but see the previous notes). 333 333 </p><p> … … 341 341 squid auth required pam_mysql.so user=passwd_query passwd=mada \ 342 342 db=eminence [query=select user_name from internet_service where \ 343 user_name= “<span class="quote">%u</span>” and password=PASSWORD(“<span class="quote">%p</span>”) and service=“<span class="quote">web_proxy</span>”]344 </pre><p> 345 When using this convention, you can include “<span class="quote">[</span>” characters inside the string, and if you wish to have a “<span class="quote">]</span>”346 character inside the string that will survive the argument parsing, you should use “<span class="quote">\[</span>”. In other words,343 user_name=<span class="quote">“<span class="quote">%u</span>”</span> and password=PASSWORD(<span class="quote">“<span class="quote">%p</span>”</span>) and service=<span class="quote">“<span class="quote">web_proxy</span>”</span>] 344 </pre><p> 345 When using this convention, you can include <span class="quote">“<span class="quote">[</span>”</span> characters inside the string, and if you wish to have a <span class="quote">“<span class="quote">]</span>”</span> 346 character inside the string that will survive the argument parsing, you should use <span class="quote">“<span class="quote">\[</span>”</span>. In other words, 347 347 </p><pre class="programlisting"> 348 348 [..[..\]..] --> ..[..].. … … 351 351 side of caution) to make the authentication process fail. A corresponding error is written to the system log files 352 352 with a call to syslog(3). 353 </p></dd></dl></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2666875"></a>Example System Configurations</h3></div></div></div><p>353 </p></dd></dl></div></div></div><div class="sect2" title="Example System Configurations"><div class="titlepage"><div><div><h3 class="title"><a name="id2672928"></a>Example System Configurations</h3></div></div></div><p> 354 354 The following is an example <code class="filename">/etc/pam.d/login</code> configuration file. 355 355 This example had all options uncommented and is probably not usable … … 357 357 of the login process. Essentially, all conditions can be disabled 358 358 by commenting them out, except the calls to <code class="filename">pam_pwdb.so</code>. 359 </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2666901"></a>PAM: Original Login Config</h4></div></div></div><p>359 </p><div class="sect3" title="PAM: Original Login Config"><div class="titlepage"><div><div><h4 class="title"><a name="id2672954"></a>PAM: Original Login Config</h4></div></div></div><p> 360 360 </p><pre class="programlisting"> 361 361 #%PAM-1.0 362 # The PAM configuration file for the “<span class="quote">login</span>”service362 # The PAM configuration file for the <span class="quote">“<span class="quote">login</span>”</span> service 363 363 # 364 364 auth required pam_securetty.so … … 374 374 password required pam_pwdb.so shadow md5 375 375 </pre><p> 376 </p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2666929"></a>PAM: Login Using <code class="filename">pam_smbpass</code></h4></div></div></div><p>376 </p></div><div class="sect3" title="PAM: Login Using pam_smbpass"><div class="titlepage"><div><div><h4 class="title"><a name="id2672982"></a>PAM: Login Using <code class="filename">pam_smbpass</code></h4></div></div></div><p> 377 377 PAM allows use of replaceable modules. Those available on a sample system include: 378 378 </p><p><code class="prompt">$</code><strong class="userinput"><code>/bin/ls /lib/security</code></strong> … … 412 412 </p><pre class="programlisting"> 413 413 #%PAM-1.0 414 # The PAM configuration file for the “<span class="quote">login</span>”service414 # The PAM configuration file for the <span class="quote">“<span class="quote">login</span>”</span> service 415 415 # 416 416 auth required pam_smbpass.so nodelay … … 424 424 </p><pre class="programlisting"> 425 425 #%PAM-1.0 426 # The PAM configuration file for the “<span class="quote">samba</span>”service426 # The PAM configuration file for the <span class="quote">“<span class="quote">samba</span>”</span> service 427 427 # 428 428 auth required pam_pwdb.so nullok nodelay shadow audit … … 439 439 </p><pre class="programlisting"> 440 440 #%PAM-1.0 441 # The PAM configuration file for the “<span class="quote">samba</span>”service441 # The PAM configuration file for the <span class="quote">“<span class="quote">samba</span>”</span> service 442 442 # 443 443 auth required pam_smbpass.so nodelay … … 446 446 password required pam_smbpass.so nodelay smbconf=/etc/samba.d/smb.conf 447 447 </pre><p> 448 </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>PAM allows stacking of authentication mechanisms. It is448 </p><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>PAM allows stacking of authentication mechanisms. It is 449 449 also possible to pass information obtained within one PAM module through 450 450 to the next module in the PAM stack. Please refer to the documentation for … … 457 457 life, though, every decision has trade-offs, so you may want to examine the 458 458 PAM documentation for further helpful information. 459 </p></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2667181"></a><code class="filename">smb.conf</code> PAM Configuration</h3></div></div></div><p>459 </p></div></div></div><div class="sect2" title="smb.conf PAM Configuration"><div class="titlepage"><div><div><h3 class="title"><a name="id2673234"></a><code class="filename">smb.conf</code> PAM Configuration</h3></div></div></div><p> 460 460 There is an option in <code class="filename">smb.conf</code> called <a class="link" href="smb.conf.5.html#OBEYPAMRESTRICTIONS" target="_top">obey pam restrictions</a>. 461 461 The following is from the online help for this option in SWAT: … … 467 467 The reason is that PAM modules cannot support the challenge/response authentication mechanism needed in the presence of SMB 468 468 password encryption. 469 </p><p>Default: <a class="link" href="smb.conf.5.html#OBEYPAMRESTRICTIONS" target="_top">obey pam restrictions = no</a></p></blockquote></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2667262"></a>Remote CIFS Authentication Using <code class="filename">winbindd.so</code></h3></div></div></div><p>469 </p><p>Default: <a class="link" href="smb.conf.5.html#OBEYPAMRESTRICTIONS" target="_top">obey pam restrictions = no</a></p></blockquote></div></div><div class="sect2" title="Remote CIFS Authentication Using winbindd.so"><div class="titlepage"><div><div><h3 class="title"><a name="id2673315"></a>Remote CIFS Authentication Using <code class="filename">winbindd.so</code></h3></div></div></div><p> 470 470 All operating systems depend on the provision of user credentials acceptable to the platform. 471 471 UNIX requires the provision of a user identifier (UID) as well as a group identifier (GID). … … 490 490 particularly potent advantages compared with the use of Microsoft Active Directory Service (ADS) insofar as 491 491 the reduction of wide-area network authentication traffic. 492 </p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>492 </p><div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p> 493 493 The RID to UNIX ID database is the only location where the user and group mappings are 494 494 stored by <code class="literal">winbindd</code>. If this file is deleted or corrupted, there is no way for <code class="literal">winbindd</code> 495 495 to determine which user and group IDs correspond to Windows NT user and group RIDs. 496 </p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2667365"></a>Password Synchronization Using <code class="filename">pam_smbpass.so</code></h3></div></div></div><p>496 </p></div></div><div class="sect2" title="Password Synchronization Using pam_smbpass.so"><div class="titlepage"><div><div><h3 class="title"><a name="id2673418"></a>Password Synchronization Using <code class="filename">pam_smbpass.so</code></h3></div></div></div><p> 497 497 <code class="filename">pam_smbpass</code> is a PAM module that can be used on conforming systems to 498 498 keep the <code class="filename">smbpasswd</code> (Samba password) database in sync with the UNIX … … 507 507 </p><p> 508 508 Options recognized by this module are shown in <a class="link" href="pam.html#smbpassoptions" title="Table 28.1. Options recognized by pam_smbpass">next table</a>. 509 </p><div class="table"><a name="smbpassoptions"></a><p class="title"><b>Table 28.1. Options recognized by <em class="parameter"><code>pam_smbpass</code></em></b></p><div class="table-contents"><table summary="Options recognized by pam_smbpass" border="1"><colgroup><col align="left"><col align="justify"></colgroup><tbody><tr><td align="left">debug</td><td align="justify">Log more debugging info.</td></tr><tr><td align="left">audit</td><td align="justify">Like debug, but also logs unknown usernames.</td></tr><tr><td align="left">use_first_pass</td><td align="justify">Do not prompt the user for passwords; take them from PAM_ items instead.</td></tr><tr><td align="left">try_first_pass</td><td align="justify">Try to get the password from a previous PAM module; fall back to prompting the user.</td></tr><tr><td align="left">use_authtok</td><td align="justify">Like try_first_pass, but *fail* if the new PAM_AUTHTOK has not been previously set (intended for stacking password modules only).</td></tr><tr><td align="left">not_set_pass</td><td align="justify">Do not make passwords used by this module available to other modules.</td></tr><tr><td align="left">nodelay</td><td align="justify">dDo not insert ~1-second delays on authentication failure.</td></tr><tr><td align="left">nullok</td><td align="justify">Null passwords are allowed.</td></tr><tr><td align="left">nonull</td><td align="justify">Null passwords are not allowed. Used to override the Samba configuration.</td></tr><tr><td align="left">migrate</td><td align="justify">Only meaningful in an “<span class="quote">auth</span>”context; used to update smbpasswd file with a password used for successful authentication.</td></tr><tr><td align="left">smbconf=<em class="replaceable"><code>file</code></em></td><td align="justify">Specify an alternate path to the <code class="filename">smb.conf</code> file.</td></tr></tbody></table></div></div><p><br class="table-break">509 </p><div class="table"><a name="smbpassoptions"></a><p class="title"><b>Table 28.1. Options recognized by <em class="parameter"><code>pam_smbpass</code></em></b></p><div class="table-contents"><table summary="Options recognized by pam_smbpass" border="1"><colgroup><col align="left"><col align="justify"></colgroup><tbody><tr><td align="left">debug</td><td align="justify">Log more debugging info.</td></tr><tr><td align="left">audit</td><td align="justify">Like debug, but also logs unknown usernames.</td></tr><tr><td align="left">use_first_pass</td><td align="justify">Do not prompt the user for passwords; take them from PAM_ items instead.</td></tr><tr><td align="left">try_first_pass</td><td align="justify">Try to get the password from a previous PAM module; fall back to prompting the user.</td></tr><tr><td align="left">use_authtok</td><td align="justify">Like try_first_pass, but *fail* if the new PAM_AUTHTOK has not been previously set (intended for stacking password modules only).</td></tr><tr><td align="left">not_set_pass</td><td align="justify">Do not make passwords used by this module available to other modules.</td></tr><tr><td align="left">nodelay</td><td align="justify">dDo not insert ~1-second delays on authentication failure.</td></tr><tr><td align="left">nullok</td><td align="justify">Null passwords are allowed.</td></tr><tr><td align="left">nonull</td><td align="justify">Null passwords are not allowed. Used to override the Samba configuration.</td></tr><tr><td align="left">migrate</td><td align="justify">Only meaningful in an <span class="quote">“<span class="quote">auth</span>”</span> context; used to update smbpasswd file with a password used for successful authentication.</td></tr><tr><td align="left">smbconf=<em class="replaceable"><code>file</code></em></td><td align="justify">Specify an alternate path to the <code class="filename">smb.conf</code> file.</td></tr></tbody></table></div></div><p><br class="table-break"> 510 510 </p><p> 511 511 The following are examples of the use of <code class="filename">pam_smbpass.so</code> in the format of the Linux 512 512 <code class="filename">/etc/pam.d/</code> files structure. Those wishing to implement this 513 513 tool on other platforms will need to adapt this appropriately. 514 </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2667584"></a>Password Synchronization Configuration</h4></div></div></div><p>514 </p><div class="sect3" title="Password Synchronization Configuration"><div class="titlepage"><div><div><h4 class="title"><a name="id2673638"></a>Password Synchronization Configuration</h4></div></div></div><p> 515 515 The following is a sample PAM configuration that shows the use of pam_smbpass to make 516 516 sure <code class="filename">private/smbpasswd</code> is kept in sync when <code class="filename">/etc/passwd (/etc/shadow)</code> … … 529 529 password required pam_smbpass.so nullok use_authtok try_first_pass 530 530 session required pam_unix.so 531 </pre></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2667630"></a>Password Migration Configuration</h4></div></div></div><p>531 </pre></div><div class="sect3" title="Password Migration Configuration"><div class="titlepage"><div><div><h4 class="title"><a name="id2673683"></a>Password Migration Configuration</h4></div></div></div><p> 532 532 The following PAM configuration shows the use of <code class="filename">pam_smbpass</code> to migrate 533 533 from plaintext to encrypted passwords for Samba. Unlike other methods, … … 549 549 password optional pam_smbpass.so nullok use_authtok try_first_pass 550 550 session required pam_unix.so 551 </pre></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2667678"></a>Mature Password Configuration</h4></div></div></div><p>551 </pre></div><div class="sect3" title="Mature Password Configuration"><div class="titlepage"><div><div><h4 class="title"><a name="id2673732"></a>Mature Password Configuration</h4></div></div></div><p> 552 552 The following is a sample PAM configuration for a mature <code class="filename">smbpasswd</code> installation. 553 553 <code class="filename">private/smbpasswd</code> is fully populated, and we consider it an error if … … 565 565 password required pam_smbpass.so use_authtok use_first_pass 566 566 session required pam_unix.so 567 </pre></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2667718"></a>Kerberos Password Integration Configuration</h4></div></div></div><p>567 </pre></div><div class="sect3" title="Kerberos Password Integration Configuration"><div class="titlepage"><div><div><h4 class="title"><a name="id2673771"></a>Kerberos Password Integration Configuration</h4></div></div></div><p> 568 568 The following is a sample PAM configuration that shows <em class="parameter"><code>pam_smbpass</code></em> used together with 569 569 <em class="parameter"><code>pam_krb5</code></em>. This could be useful on a Samba PDC that is also a member of … … 582 582 password required pam_krb5.so use_authtok try_first_pass 583 583 session required pam_krb5.so 584 </pre></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2667759"></a>Common Errors</h2></div></div></div><p>584 </pre></div></div></div><div class="sect1" title="Common Errors"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2673812"></a>Common Errors</h2></div></div></div><p> 585 585 PAM can be fickle and sensitive to configuration glitches. Here we look at a few cases from 586 586 the Samba mailing list. 587 </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2667770"></a>pam_winbind Problem</h3></div></div></div><p>587 </p><div class="sect2" title="pam_winbind Problem"><div class="titlepage"><div><div><h3 class="title"><a name="id2673824"></a>pam_winbind Problem</h3></div></div></div><p> 588 588 A user reported, <span class="emphasis"><em>I have the following PAM configuration</em></span>: 589 589 </p><p> … … 599 599 </pre><p> 600 600 </p><p> 601 <span class="emphasis"><em>When I open a new console with [ctrl][alt][F1], I can't log in with my user “<span class="quote">pitie.</span>”602 I have tried with user “<span class="quote">scienceu\pitie</span>”also.</em></span>601 <span class="emphasis"><em>When I open a new console with [ctrl][alt][F1], I can't log in with my user <span class="quote">“<span class="quote">pitie.</span>”</span> 602 I have tried with user <span class="quote">“<span class="quote">scienceu\pitie</span>”</span> also.</em></span> 603 603 </p><p> 604 604 The problem may lie with the inclusion of <em class="parameter"><code>pam_stack.so … … 609 609 <code class="filename">/etc/pam.d/login</code> file. Alternatively, if you want all services to use 610 610 Winbind, you can put the Winbind-specific stuff in <code class="filename">/etc/pam.d/system-auth</code>. 611 </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2667868"></a>Winbind Is Not Resolving Users and Groups</h3></div></div></div><p>612 “<span class="quote">611 </p></div><div class="sect2" title="Winbind Is Not Resolving Users and Groups"><div class="titlepage"><div><div><h3 class="title"><a name="id2673922"></a>Winbind Is Not Resolving Users and Groups</h3></div></div></div><p> 612 <span class="quote">“<span class="quote"> 613 613 My <code class="filename">smb.conf</code> file is correctly configured. I have specified 614 614 <a class="link" href="smb.conf.5.html#IDMAPUID" target="_top">idmap uid = 12000</a> 615 615 and <a class="link" href="smb.conf.5.html#IDMAPGID" target="_top">idmap gid = 3000-3500,</a> 616 616 and <code class="literal">winbind</code> is running. When I do the following it all works fine. 617 </span>” 617 </span>”</span> 618 618 </p><pre class="screen"> 619 619 <code class="prompt">root# </code><strong class="userinput"><code>wbinfo -u</code></strong> … … 637 637 maryo:x:15000:15003:Mary Orville:/home/MIDEARTH/maryo:/bin/false 638 638 </pre><p> 639 “<span class="quote">639 <span class="quote">“<span class="quote"> 640 640 But this command fails: 641 </span>” 641 </span>”</span> 642 642 </p><pre class="screen"> 643 643 <code class="prompt">root# </code><strong class="userinput"><code>chown maryo a_file</code></strong> 644 644 chown: 'maryo': invalid user 645 645 </pre><p> 646 “<span class="quote">This is driving me nuts! What can be wrong?</span>”646 <span class="quote">“<span class="quote">This is driving me nuts! What can be wrong?</span>”</span> 647 647 </p><p> 648 648 Your system is likely running <code class="literal">nscd</code>, the name service
Note:
See TracChangeset
for help on using the changeset viewer.