标题: FreeBSD连载(13):超级用户root、登录类别
问天
元帅
Rank: 1


元帅勋章 终身成就勋章
UID 11493
精华 186
积分 34139
帖子 33348
威望 88
金币 13137
热心 2612
阅读权限 100
注册 2006-4-7
状态 离线
FreeBSD连载(13):超级用户root、登录类别

超级用户root


   
  超级用户是Unix的所有者,拥有所有的权利,因此也具有很大的危险性,不当使用超级用户权力能对系统造成不可挽回的破坏。即使对于个人使用的FreeBSD系统,尽管不需要将系统与其他人共享,但是仍然不要使用root用户作日常处理工作。通常管理员在正常情况下仅仅使用普通帐户进行操作,只有在执行系统管理的必要时候才使用超级用户权限。   
  从普通用户成为超级用户的标准方法是使用su命令:

   
  $ su   
  Password:      
  #      
  正确输入root的口令之后,就成为了超级用户,系统提示符也从标准的 “$” 变为root专用的 “#” 提示。

   
  在FreeBSD上要使用su命令成为root用户,不但要知道root的口令,还需要经过特别设置,否则就不能成功使用这个命令。这是因为FreeBSD对执行su命令的用户进行了更严格的限制,能使用su命令的用户必须属于wheel组(root的基本属组,组ID为0),否则就不能通过这个命令成为root用户。因此需要编辑组设置文件/etc/group,将需要超级用户权力的管理成员加入到wheel组中。      
  如果仅仅要用户执行部分需要超级用户权力的操作,而不想将root的口令泄露出去,更简单的做法是使用sudo ,然而这属于基本系统之外,需要另外安装的管理工具。      



登录类别


   
  从 4.3 BSD Net/2开始,BSD Unix引入了登录类别这种分类机制来管理用户使用的资源、记账和环境设置。FreeBSD系统使用/etc/login.conf中描述的数据来将用户按照登录环境、强制性的资源限制以及记账管理等分为不同的登录类别,每个用户的登录类别记录在/etc/master.passwd中的该用户的设置中。   
  default:\   
  :cputime=infinity:\   
  :datasize-cur=64M:\   
  :stacksize-cur=64M:\

   
  :memorylocked-cur=10M:\      
  :memoryuse-cur=100M:\   
  :filesize=infinity:\      
  :coredumpsize=infinity:\   
  :maxproc-cur=64:\   
  :openfiles-cur=64:\   
  :priority=0:\   
  :requirehome@:\      
  :umask=022:\      
  :tc=auth-defaults:

   
  上面设置了default登录类别中的几个参数,如果没有在master.passwd文件中明确指定用户的登录类别,就使用这个缺省类别来作为用户的登录类别。

   
  cputime设置了用户的每个进程可以使用的CPU时间,缺省是无限制(infinity)。如果加以限制,有些需要大量CPU时间进行运算的进程就不能正常执行到结束。

   
  datasize-cur设置了用户使用的数据段最大为64M,但-cur设置不是强制的,用户实际使用的数据有可能超过这个值,但最大不能超过datasize-max设置的值(缺省没有设置)。如果没有-cur和-max 后缀,仅仅定义datasize,则表示datasize-cur和datasize-max同样都为datasize 设置的值。同样stacksize定义了对栈的限制。   
  memorylocked-cur设置了用户每进程可以锁定的最大内存。   
  memoryuse-cur设置了每进程使用的最大内存。   
  filesize-cur设置了用户产生的文件大小。      
  coredumpsize设置了在应用程序发生问题时产生的core dump文件的大小。   
  maxproc-cur设置了用户可以同时执行的最大进程数。      
  openfiles-cur设置了每进程最多打开的文件数。   
  priority设置用户进程的优先级。   
  requirehome设置用户登录时是否需要主目录,@符号表示不需要主目录。

   
  umask项设置缺省的umask,用于用户创建文件的属性。

   
  tc设置系统认证策略为使用缺省的认证策略。   
  如果要创建新类别,并不需要对每个值都重新设置,系统缺省先应用default类别的设置,然后再应用具体类别的设置,因此只需要设置与default类别不同的项就可以了。      
  users:\   
  :manpath=/usr/share/man /usr/X11R6/man /usr/local/man:\   
  :cputime=4h:\   
  :openfiles=32:\      
  :maxproc=48:\   
  :tc=default:   
  上面是设置了一个新类users,可以看出它为用户设置了环境变量MANPATH,并重置了cputtime 、openfile、maxproc和tc的值。每次更改login.conf之后,都要进行更新登录类别数据库的操作。      
  # cap_mkdb /etc/login.conf   
  由于登录类别保存在master.passwd文件中,通常在使用adduser添加用户的时候设置用户的登录类别。如果要进行更改,必须使用vipw来修改/etc/master.passwd文件的第5个域。下面为master.passwd 中的一行,该行指定这个用户的登录类别为user:

   
  wb:FPRKMMNuZ3Pfk:1001:1001:users:0:0:Wang Bo:/home/wb:/bin/sh     
未完,待续。

网友 问天 签名 - 网友社区 请您回个帖。谢谢
PR查询 免费域名 免费空间
顶部
[广告] 免费域名(Free Subdomain) 免费空间(Free hosting) PR查询(Google Pagerank)



当前时区 GMT+8, 现在时间是 2008-9-9 01:46
信产部ICP备案:京ICP备05066424号 北京市公安局网监备案:1101050648号

Powered by Discuz! 5.5.0
清除 Cookies - 联系我们 - 网友俱乐部 - Archiver - WAP