您有时可能需要在一个网络应用程序服务器上暂时为某项服务,诸如 rlogin 或 ftp, 禁用鉴别机制。例如,在进行维护过程中,您可能想要阻止用户登录到一个系统。 ktutil 命令通过从服务器的密钥表去除服务授权对象,使您可以做到这一点,而无需 kadmin 特权。如要再次启用鉴别,所有需要您做的就是将您所保存的原来的密钥表复制回到其原来的位置。
大多数的服务默认设置为要求鉴别起作用。如果并非如此,则服务将依旧起作用,即使您为服务禁用鉴别。
借助密钥表,在主机上变为超级用户。
尽管您可以创建其它用户所拥有的密钥表,但密钥表的默认的位置要求有 root 所有权。
将当前的密钥表保存到一个临时文件。
启动 ktutil 命令。
# /usr/krb5/bin/ktutil |
通过使用 read_kt命令,将密钥表读入密钥列表缓冲区。
ktutil: read_kt keytab |
通过使用 list 命令,显示密钥列表缓冲区。
ktutil: 列表 |
当前的密钥列表缓冲区显示出来。请注意您想禁用的服务的槽口号码。
如要暂时禁用一个主机的服务,请通过使用 delete_entry 命令,从密钥列表缓冲区去除具体服务授权对象。
ktutil: delete_entry slot_number |
|
slot_number |
想要删除的服务授权对象的槽口号码,这是通过 list 命令加以显示的。 |
通过使用 write_kt命令,将密钥列表缓冲区写到密钥表。
ktutil: write_kt keytab |
退出 ktutil 命令。
ktutil: 退出 |
当您想要再次启用服务时,请将临时 (原来的) keytab 复制回到其原来的位置。
下列示例暂时禁用denver 服务器上的 host 服务。如要在 denver 上恢复启用服务器服务,您要将 krb5.keytab.temp 文件复制到 /etc/krb5/krb5.keytab 文件。
denver # cp /etc/krb5/krb5.keytab /etc/krb5/krb5.keytab.temp
denver # /usr/krb5/bin/ktutil
ktutil:read_kt /etc/krb5/krb5.keytab
ktutil:list
slot KVNO Principal ---- ---- ---------------------------------------
1 8 root/denver@ACME.COM
2 5 host/denver@ACME.COM
ktutil:delete_entry 2
ktutil:list
slot KVNO Principal ---- ---- --------------------------------------
1 8 root/denver@ACME.COM
ktutil:write_kt /etc/krb5/krb5.keytab
ktutil:退出
|