跳过导航链接 | |
退出打印视图 | |
![]() |
系统管理指南:安全性服务 Oracle Solaris 10 8/11 Information Library (简体中文) |
直接将特权指定给用户时,这些特权在每个 shell 中都有效。未直接将特权指定给用户时,用户必须打开一个配置文件 shell。例如,当具有指定特权的命令位于用户权限配置文件列表内的权限配置文件中时,用户必须在配置文件 shell 中执行此命令。
以下过程说明如何确定是否已直接为您指定了特权。
有关过程,请参见如何确定进程的特权。
有效特权集中列出的特权在整个会话中都有效。如果已为您直接指定了除基本特权集之外的特权,则会在有效特权集中列出这些特权。
示例 11-9 确定直接指定给您的特权
如果已经为您直接指定了特权,则基本特权集包含的特权会多于缺省的基本特权集。在此示例中,用户始终能够访问 proc_clock_highres 特权。
% /usr/ucb/whoami jdoe % ppriv -v $$ 1800: pfksh flags = <none> E: file_link_any,…,proc_clock_highres,proc_session I: file_link_any,…,proc_clock_highres,proc_session P: file_link_any,…,proc_clock_highres,proc_session L: cpc_cpu,dtrace_kernel,dtrace_proc,dtrace_user,…,sys_time % ppriv -vl proc_clock_highres Allows a process to use high resolution timers.
示例 11-10 确定直接指定给角色的特权
角色使用管理 shell 或配置文件 shell。承担角色的用户可以使用此角色的 shell 列出已直接指定给此角色的特权。在以下示例中,已经直接将处理日期和时间程序的特权指定给角色 realtime。
% su - realtime Password: <Type realtime password> $ /usr/ucb/whoami realtime $ ppriv -v $$ 1600: pfksh flags = <none> E: file_link_any,…,proc_clock_highres,proc_session,sys_time I: file_link_any,…,proc_clock_highres,proc_session,sys_time P: file_link_any,…,proc_clock_highres,proc_session,sys_time L: cpc_cpu,dtrace_kernel,dtrace_proc,dtrace_user,…,sys_time
未直接将特权指定给用户时,此用户可通过权限配置文件获取对特权命令的访问权限。必须在配置文件 shell 中执行权限配置文件中的命令。
开始之前
通过 Solaris Management Console 验证的用户或角色必须具有 solaris.admin.usermgr.read 授权。Basic Solaris User(基本 Solaris 用户)权限配置文件包括此授权。
$ /usr/sadm/bin/smuser list -- -n username -l
Authenticating as user: admin … Please enter a string value for: password :: … User name: username User ID (UID): 130 Primary group: staff Secondary groups: Comment: object mgt jobs Login Shell: /bin/sh Home dir server: system Home directory: /export/home/username AutoHome setup: True Mail server: system Rights: Object Access Management Assigned Roles:
"Rights" 行会列出已直接指定给您的权限配置文件的名称。
$ cd /etc/security $ grep "Object Access Management" exec_attr Object Access Management:solaris:cmd:::/usr/bin/chgrp:privs=file_chown Object Access Management:solaris:cmd:::/usr/bin/chown:privs=file_chown Object Access Management:suser:cmd:::/usr/bin/chgrp:euid=0 Object Access Management:suser:cmd:::/usr/bin/chmod:euid=0 …
具有已添加特权的命令列在 solaris 策略项的末尾。
在常规 shell 中键入这些命令时,它们运行时不会使用特权,因而不会成功运行。
% pfsh $
示例 11-11 在配置文件 Shell 中运行特权命令
在以下示例中,用户 jdoe 不能从其常规 shell 中更改文件的组权限。但是,在配置文件 shell 中键入命令时,jdoe 可以更改这些权限。
% whoami jdoe % ls -l useful.script -rwxr-xr-- 1 nodoe eng 262 Apr 2 10:52 useful.script chgrp staff useful.script chgrp: useful.script: Not owner % pfksh $ /usr/ucb/whoami jdoe $ chgrp staff useful.script $ chown jdoe useful.script $ ls -l useful.script -rwxr-xr-- 1 jdoe staff 262 Apr 2 10:53 useful.script
角色通过包含具有指定权限的命令的权限配置文件来获取对特权命令的访问权限。为用户提供特权命令访问权限的最安全的方法是为用户指定一个角色。承担此角色之后,用户便可执行所有包括在此角色权限配置文件中的特权命令。
开始之前
通过 Solaris Management Console 验证的用户或角色必须具有 solaris.admin.usermgr.read 授权。Basic Solaris User(基本 Solaris 用户)权限配置文件包括此授权。
$ /usr/sadm/bin/smuser list -- -n username -l Authenticating as user: primadmin … User name: username User ID (UID): 110 Primary group: staff Secondary groups: Comment: Has admin roles Login Shell: /bin/sh … Rights: Assigned Roles: primadmin, admin
"Assigned Roles" 行会列出您可以承担的角色。
% su - devadmin Enter password: Type devadmin password $ whoami devadmin $ profiles Device Security
$ /usr/sadm/bin/smuser list -- -n admin -l Authenticating as user: primadmin … User name: admin User ID (UID): 101 Primary group: sysadmin Secondary groups: Comment: system administrator Login Shell: /bin/pfksh … Rights: System Administrator Assigned Roles:
由于 System Administrator(系统管理员)配置文件是配置文件的集合,因此需要在 System Administrator(系统管理员)配置文件中列出这些配置文件。
$ cd /etc/security $ grep "System Administrator" prof_attr System Administrator:::Can perform most non-security administrative tasks:profiles=Audit Review,Printer Management,Cron Management, Device Management,File System Management,Mail Management,Maintenance and Repair,Media Backup,Media Restore,Name Service Management,Network Management,Object Access Management,Process Management,Software Installation,User Management,All;help=RtSysAdmin.html
例如,Network Management(网络管理)配置文件是 System Administrator(系统管理员)配置文件的补充配置文件。Network Management(网络管理)配置文件包括许多特权命令。
$ cd /etc/security $ grep "Network Management" exec_attr Network Management:solaris:cmd:::/usr/sbin/ifconfig:privs=sys_net_config Network Management:solaris:cmd:::/usr/sbin/route:privs=sys_net_config …
这些命令及其指定特权是 solaris 策略项的最后两个字段。可以在角色的配置文件 shell 中运行这些命令。
示例 11-12 运行您的角色中的特权命令
当用户承担了某个角色时,其 shell 将成为配置文件 shell。因此,将使用指定给这些命令的特权来执行命令。在以下示例中,admin 角色可以更改 useful.script 文件的权限。
% whoami jdoe % ls -l useful.script -rwxr-xr-- 1 elsee eng 262 Apr 2 10:52 useful.script chgrp admin useful.script chgrp: useful.script: Not owner % su - admin Password: <Type admin password> $ /usr/ucb/whoami admin $ chgrp admin useful.script $ chown admin useful.script $ ls -l useful.script -rwxr-xr-- 1 admin admin 262 Apr 2 10:53 useful.script