跳过导航链接 | |
退出打印视图 | |
Oracle Solaris 10 开发者安全性指南 Oracle Solaris 10 1/13 Information Library (简体中文) |
授权存储在 /etc/security/auth_attr 文件中。要创建使用授权的应用程序,请执行以下步骤:
扫描 /etc/security/auth_attr 以查找一个或多个应用程序授权。
请在程序开始时使用 chkauthattr(3SECDB) 函数检查所需的授权。chkauthattr() 函数将在以下位置按顺序搜索授权:
policy.conf(4) 数据库中的 AUTHS_GRANTED 键-AUTHS_GRANTED 指示缺省情况下指定的授权。
policy.conf(4) 数据库中的 PROFS_GRANTED 键-PROFS_GRANTED 指示缺省情况下指定的权限配置文件。chkauthattr () 将针对指定授权检查这些权限配置文件。
user_attr(4) 数据库-此数据库存储为用户指定的安全属性。
prof_attr(4) 数据库-此数据库存储为用户指定的权限配置文件。
chkauthattr() 在上述任何位置中都找不到权限授权,则将拒绝用户访问该程序。
使管理员了解此应用程序需要哪些授权。您可以通过手册页或其他文档通知管理员。
示例 2-3 检查授权
以下代码段说明如何使用 chkauthattr() 函数检查用户的授权。在本例中,该程序将检查 solaris.job.admin 授权。如果用户具有此授权,则该用户可以读取或写入其他用户的文件。如果没有此授权,则用户只能对其拥有的文件执行操作。
/* Define override privileges */ priv_set_t *override_privs = priv_allocset(); /* Clear privilege set before adding privileges. */ priv_set(PRIV_OFF, PRIV_EFFECTIVE, PRIV_FILE_DAC_READ, priv_FILE_DAC_WRITE, NULL); priv_addset(override_privs, PRIV_FILE_DAC_READ); priv_addset(override_privs, PRIV_FILE_DAC_WRITE); if (!chkauthattr("solaris.jobs.admin", username)) { /* turn off privileges */ setppriv(PRIV_OFF, PRIV_EFFECTIVE, override_privs); } /* Authorized users continue to run with privileges */ /* Other users can read or write to their own files only */