传统应用程序是一个命令或一组命令。先针对权限配置文件中的每个命令设置安全性属性。然后,在角色中包括该权限配置文件。承担该角色的用户便可以运行具有安全性属性的传统应用程序。
要将传统应用程序添加到 Solaris Management Console,请参见《系统管理指南:基本管理》中的“向 Solaris Management Console 中添加工具”。
要更改权限配置文件中命令的安全性属性,您必须已承担主管理员角色或已切换到超级用户。
使用 Solaris Management Console 中的“用户”工具。
要启动该控制台,请参见如何在 Solaris Management Console 中承担角色。请按照左侧窗格中的说明在“权限”中修改权限配置文件。有关更详细的信息,请参见联机帮助。
向实现传统应用程序的命令添加安全性属性。
向传统应用程序添加安全性属性的方式与为任何命令添加安全性属性的方式相同。您必须将具有安全性属性的命令添加到权限配置文件。对于传统命令,请为命令指定 euid=0 或 uid=0 安全性属性。有关该过程的详细信息,请参见如何创建或更改权限配置文件。
将传统应用程序添加到权限配置文件后,在角色的配置文件列表中包括该权限配置文件。
要向角色添加权限配置文件,请参见如何更改角色的属性。
如果某个脚本中的命令需要设置 setuid 位或 setgid 位才能成功运行,则将必须在权限配置文件中为该脚本的可执行脚本和命令添加安全性属性。然后,在角色中包括该权限配置文件,并将该角色指定给用户。当用户承担该角色并执行该脚本时,此命令便会以安全性属性运行。
要将安全性属性添加到命令或 shell 脚本,请参见如何创建或更改权限配置文件。
要检查脚本授权,需要添加一项基于 auths 命令的测试。有关此命令的详细信息,请参见 auths(1) 手册页。
例如,以下行会测试用户是否具有作为 $1 参数提供的授权:
if [ `/usr/bin/auths|/usr/xpg4/bin/grep $1` ]; then echo Auth granted else echo Auth denied fi |
要使测试更加完整,应在测试中包括检查其他使用通配符的授权的逻辑。例如,要测试用户是否具有 solaris.admin.usermgr.write 授权,需要检查以下字符串:
solaris.admin.usermgr.write
solaris.admin.usermgr.*
solaris.admin.*
solaris.*
如果您要编写程序,请使用函数 getauthattr() 对授权进行测试。