Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1190083
  • 博文数量: 212
  • 博客积分: 10450
  • 博客等级: 上将
  • 技术积分: 1957
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-23 09:00
文章分类

全部博文(212)

文章存档

2012年(1)

2011年(16)

2010年(11)

2009年(9)

2008年(22)

2007年(36)

2006年(117)

分类:

2007-09-18 17:34:27

     我们知道,1024以下的端口只有用root才能进行一些操作,包括要启动一些程序,比如apache 等,都需要有root的权限,但如果应用了Solaris中的least privilege的特性,这样就可以对特定的普通用户来赋予特定权限,比如对于有客户要求可以让一个普通用户来监听1024以下端口,可以用命令:

#usermod -K defaultpriv=basic,net_privaddr test

来实现,其中test是用户名,赋予的权限为net_privaddr, 这个权限的具体含义可以参见privileges的man page.

PRIV_NET_PRIVADDR
Allow a process to bind to a privileged port number. The privilege port numbers are 1-1023 (the traditional UNIX privileged ports) as well as those ports marked as "udp/tcp_extra_priv_ports" with the exception of the ports reserved for use by NFS.

但问题是,我怎么知道就需要赋予这个权限那,那需要你先好好看看这个文章


简单来说,就是要用命令#ppriv -D -e

来检测你还需要什么权限。另外还有几篇好的文章可以做为参考

http://developers.sun.com/solaris/articles/program_privileges.html

   另:WIKI上的解决办法():

   [S10] 假设用户名为appuser

   1. vi /etc/user_attr。

   2. 增加“appuser::::defaultpriv=basic,net_privaddr”至最后一行。

   3. 重新使用appuser登录,运行应用即可。

   [S8] [S9]不支持以上的方法,使用setuid或直接用root运行应用。


阅读(1740) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~