smbpasswd [-a] [-x] [-d] [-e] [-D debuglevel] [-n] [-r <remote machine>] [-R <name resolve order>] [-m] [-U username[%password]] [-h] [-s] [-w pass] [-i] [-L] [username]
此程序是Samba(7)套件的一部分。
smbpasswd程序有几个不太一样的功能,这取决于它被root账号还是其它账号来使用。当普通用户运行它时,用户可以通过SMB会话在任何保存SMB口令的机器上改变他们的口令。
默认情况下(不带参数运行)它会尝试在本地改变当前用户的SMB口令。这和passwd(1)程序的工作方式类似。不过, smbpasswd和具有setuid root 特性的passwd还是不一样的,它工作在客户机-服务器模式, 并且与本地运行中的smbd(8)通信。为了运行成功,smbd守护程序必须正在本地主机上运行。在UNIX主机上通常用smbpasswd(5) 来存放SMB的加密口令。
当普通用户不带选项来运行这个程序时,smbpasswd会向他们提示输入原SMB口令并询问所需的新口令两次,来确保输入正确. 输入时屏幕并不回显。如果你用了一个空SMB口令(在smbpasswd文件中会指定字串“NO PASSWORD”)的话,在程序提示输入原口令时可以直接输入<Enter>键。
普通用户也可以在远程主机(例如Windows NT主域控制器)上用smbpasswd来改他们的SMB口令。详细情况请参见以下的(-r)和-U两个选项。
当root运行这个程序时,smbpasswd可以在smbpasswd文件中增删用户,也可以改变用户属性。这时, smbpasswd 会直接访问本地smbpasswd文件,即使smbd并没有在运行时也可以。
只有root运行smbpasswd程序时才可以使用这个选项。
This option is only available when running smbpasswd as root.
如果smbpasswd文件还是旧格式的话(比如Samba 2.0之前版本),在用户口令项中没有这样的账号控制部分可以作任何标志,这个命令会*失败*。关于口令文件的新格式和旧格式细节可以参见smbpasswd(5) 。
只有root运行smbpasswd程序时才可以使用这个选项。
使用老格式的口令文件时, smbpasswd 将运行失败。关于口令文件的新格式和旧格式细节可以参见smbpasswd(5)。
只有root运行smbpasswd程序时才可以使用这个选项。
如果这个值越高,越多关于smbpasswd的详细活动信息将被记录到文件中。在0调试级时,只记录紧急错误和严重警告。
1以上的调试级将产生相当多的记录数据,并且只在解决问题时才有用。3以上的调试级只被设计为让开发者使用并会产生极大数量的记录数据,而且其中很多部分非常难以理解。
注意如果设置了"NO PASSWORD"之后,要允许用户以空口令登录到Samba服务器,管理员必须在smb.conf配置文件的[global]段中设置以下的参数:
null passwords = yes
只有root运行smbpasswd程序时才可以使用这个选项。
用这个选项更改密码的账号就是当前登录UNIX的账号。要改变其它帐号的密码可以参见-U username参数。
注意,如果要改变一个NT域账号,指定的远程主机必须是域中的主域控制器,因为备份域控制器只维护用户账号数据库的只读复本,而不能更改。
注意的是Windows 95/98实际根本没有口令数据库,所以不可能更改远程Win95/98主机上的口令
这些名字解析选项是:"lmhosts","host","wins"和"bcast".它们决定了名字解析是以如下方式的:
lmhosts : 在samba的lmhosts文件中查找IP地址.如果lmhosts文件的内容行中没有名字类型附加在NetBIOS名上时(参见lmhosts (5)中的详细描述),任何类型的名字都可以匹配这个查询.
host : 执行标准的主机名到IP地址的解析操作,此操作会使用系统的/etc/hosts,NIS或者是DNS来查询.具体方法取决于操作系统,在IRIX和Solaris中解析名字的方法可能是由/etc/nsswitch.conf文件来控制的.注意此方法只适用于对被查询的NetBIOS名字类型为0x20(服务器)时才有用,其它类型都会被忽略.
wins : 向列在wins server选项中的服务器查询一个名字对应的IP地址.如果没有指定WINS服务器,那么此方法就被略过了.
bcast : 向在interfaces选项中列出的每一个已知本地网络接口进行广播来作查询.这是最不可信的名字解析方法,除非目标主机就在本地子网中.
默认的顺序是 lmhosts, host, wins, bcast。如果没有这个参数,smb.conf(5) 文件中也没有选项,将尝试这个顺序的名字解析。
只有root运行smbpasswd程序时才可以使用这个选项。
This option is only available when running smbpasswd as root.
由于非root用户是以客户机-服务器模式运行smbpasswd与本地smbd通信,因此smbd守护程序必须在运行状态。通常会出现的一个问题是在对可以连接到本地运行的smbd的主机进行限制的时候,通过在smb.conf(5) 配置文件中指定allow hosts或者deny hosts参数但是忘记了允许“localhost”对smbd进行连接。
另外smbpasswd命令只有在已经把samba设成使用加密口令时才能发挥作用。
此手册页是针对samba套件版本3.0的。