ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:30.20KB ,
资源ID:5842683      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5842683.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(FreeBSD 60 架设管理与应用第四章 使用者管理.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

FreeBSD 60 架设管理与应用第四章 使用者管理.docx

1、FreeBSD 60 架设管理与应用第四章 使用者管理FreeBSD 6.0 架设管理与应用第四章 使用者管理FreeBSD 是一个多重使用者的操作系统,在系统可有存在多个使用者。使用者的管理可以说是系统管理最基本的议题,在系统一安装完成时,我们就必须进行使用者的新增及设定。本章将介绍和使用者相关的管理知识,包括: 如何新增及删除使用者。 使用者及群组相关的重要档案设定。 如何限制系统资源 (如硬盘空间) 的使用。 如何备份及移转使用者数据。 大量新增账号。 记录使用者执行过的指令。 控制 root 的使用。1 4.1 账号管理4.1.1 新增使用者新增使用者时,我们会以 adduser 这个

2、指令来进行,adduser 指令其实是将新增使用者所必须做的事写成一个执行档来自动帮我们做,在 FreeBSD 4.x 是以 perl 所写成,而 FreeBSD 5.x 改以 shell scripts 来实作。为了了解系统对于使用者管理细节,让我们先回顾一下上一章关于使用 adduser 新增使用者的过程。在 4.x 和 5.x adduser 指令的细节有一点不同,但大同小异。# adduser2 Username: jack复制代码3 执行了 adduser 之后,首先要输入使用者名称,使用者名称除了英文字、数字及 -_ 外不可以包含其它特殊字符。Full name: Jack复制代码

3、4 接着我们要输入使用者全名,这个字段可以是空的,如果您不输入则直接按 Enter 即可。Uid (Leave empty for default):复制代码5 这个字段是使用者编号,直接留白按 Enter 即可,系统会自动指定。Login group jack:复制代码6 输入使用者群组名称,群组名称预设会自动产生一个和新增的使用者同名的群组,如果要使用不同的群组,必须先手动新增群组。我们直接按 Enter 即可。Login group is jack. Invite jack into other groups? :wheel复制代码7 是否要将新的使用者加入其它群组,由于这是我们新增的第

4、一个一般使用者,所以我们将它加入系统管理者 wheel 这个群组,让他可以使用 su 这个指令来切换身份成 root。Login class default:复制代码8 登入的类别,这是用来分类控制使用者对于系统资源的使用,请参考下一节系统资源限制的说明。在这里我们直接按 Enter 使用默认值即可。Shell (sh csh tcsh nologin) sh: tcsh复制代码9 输入所要使用的 Shell,建议输入 tcsh,如果您不想让该使用者登入系统,可以输入 nologin。Home directory /home/jack:复制代码10 输入使用者的家目录,也就是使用者在系统中的数

5、据夹,所有使用者的目录我们都放在 /home 下,所以我们直接按 Enter 即可。Use password-based authentication? yes:复制代码11 是否要使用密码认证的方式,预设为是,我们直接按 Enter 即可。Use an empty password? (yes/no) no:复制代码12 是否要使用空密码,预设为否。Use a random password? (yes/no) no:复制代码13 是否使用随机产生的密码,如果使用随机产生的密码,在新增完毕后,系统会告知我们产生的密码,预设为否。Enter password:复制代码14 输入该使用者的密码。

6、Enter password again:复制代码15 再输入一次密码,以确认输入无误。Lock out the account after creation? no:复制代码在新增完使用者后,是否要先将该账户关闭。看了 adduser 指令的过程,您对于新增使用者应有的步骤应该已经有初步的了解了,接下来我们要介绍 adduser 这个指令到底做了哪些事。 在 /etc/group 中加入使用者的群组 在 /etc/master.passwd 中加入使用者 在 /home 中建立使用者目录,并建立 dotfile 在 /var/mail 中建立使用者邮件目录知道了以上的流程,我们也可以手动自己

7、做上述的步骤,但我们必须先知道 group 及 master.passwd 等档案的格式。所以我们接下来要介绍这些档案。小提示在旧版的 FreeBSD 中,adduser 一开始会先问您使用者名称要符合怎样的规则,通常我们会直接按 ENTER 跳过,您要注意看清楚喔,不要在那个时候输入使用者名称,否则在新增使用者时可能会有问题。如果您已经输入错了,可以将 /etc/adduser.conf 删除,就可以恢复原本的设定。16 4.1.2 /etc/group 介绍在使用者的管理方面,FreeBSD 大致上可以分为群组管理及账号管理。每一个账号至少属于一个群组,这样子有利于权限控制。例如学生的账号

8、就有一个学生群组,而老师的账号就属于教师群组,某几位老师属于管理者的群组。这样一来,我们除了可以针对个人设定权限外,也可以针对不同群组给予不同的权限。每个使用者预设都会有一个群组,这个预设群组是设定在 /etc/master.passwd,我们会在下一小节中说明。而您也可以将使用者加入其它群组中,这些其它加入的群组设定是在 /etc/group 中,在群组后面加上使用者名称即可。/etc/group 这个档案就是记录群组的档案,这是一个文字文件,我们可以使用 ee 等文字编辑软件打开它。在 group 档案中,其格式如下:wheel:*:0:root,alex17 students:*:100

9、0:18 teachers:*:1001:19 webadmin:*:1002:alex,john,tom复制代码20 每一个字段以冒号分开,以最后一行为例,第一个字段代表群组名称为 teachers,而群组代号(gid) 是 1001。我们可以自行使用文字编辑器加入想要的群组名称及 gid,但要注意的是群组名称和 gid 不能重复。第一行的最后面是 root,alex,表示该群组成员。由于记录使用者数据的档案中只能记录使用者的预设群组,如果使用者还属于其它群组,则必须记录在 /etc/group 中。例如使用者 alex 的预设群组是 alex,我们希望他同时是 webadmin 群组,则我

10、们必须在 webadmin 群组后加上该使用者。在 FreeBSD 中,如果其它使用者要能使用 su 变成超级使用者的话,必须将其账号加入 wheel 群组中。新增群组时,除了可以使用文字编辑外,也可以使用指令 pw 来新增群组:# pw groupadd newgroup21 # pw groupshow newgroup22 newgroup:*:1002:复制代码23 第一个指令是以参数 groupadd 来新增群组 newgroup,再以参数 groupshow 来显示 newgoup 的信息。4.1.3 /etc/master.passwd 介绍FreeBSD 使用 shadow p

11、assword 的方式来保护密码文件,只有 root 才可以读取编码后的密码文件 /etc/master.passwd。但是这并不是系统用来验证的档案,为了加快速度,FreeBSD 将该文件做成数据库 /etc/spwd.db 及 /etc/pwd.db, 因此在修改完 master.passwd 后,必须使用指令 pwd_mkdb 来将 master.passwd 做成数据库档案。不过一般而言,我会使用 vipw 这个指令来修改 master.passwd,vipw 会先将 master.passwd 以预设的文书编辑软件打开,修改完存盘后,它会视需要自动更新数据库。如果您没有修改过 /.c

12、shrc,则预设的文书编辑软件是 vi。vi 在使用上比较复杂,如果您要离开编辑器,请依序按 Esc : q ! 再按 Enter 即可不存档离开。关于 vi 的用法,您可以参考第三章相关章节。在执行 vipw 之后,会出现:# $FreeBSD: src/etc/master.passwd,v 1.25.2.6 2002/06/30 17:57:17 des Exp $24 #25 root:$1$94sxalyM$w1lBLBGAsRPfdVciGqNfL/:0:0:0:0:Charlie &:/root:/bin/tcsh26 toor:*:0:0:0:0:Bourne-again Su

13、peruser:/root:27 daemon:*:1:1:0:0:Owner of many system processes:/root:/sbin/nologin28 operator:*:2:5:0:0:System &:/:/sbin/nologin29 bin:*:3:7:0:0:Binaries Commands and Source:/:/sbin/nologin30 tty:*:4:65533:0:0:Tty Sandbox:/:/sbin/nologin31 kmem:*:5:65533:0:0:KMem Sandbox:/:/sbin/nologin32 games:*:

14、7:13:0:0:Games pseudo-user:/usr/games:/sbin/nologin33 news:*:8:8:0:0:News Subsystem:/:/sbin/nologin34 man:*:9:9:0:0:Mister Man Pages:/usr/share/man:/sbin/nologin35 sshd:*:22:22:0:0:Secure Shell Daemon:/var/empty:/sbin/nologin36 smmsp:*:25:25:0:0:Sendmail Submission User:/var/spool/clientmqueue:/sbin

15、/nologin37 mailnull:*:26:26:0:0:Sendmail Default User:/var/spool/mqueue:/sbin/nologin38 bind:*:53:53:0:0:Bind Sandbox:/:/sbin/nologin39 uucp:*:66:66:0:0:UUCP pseudo-user:/var/spool/uucppublic:/usr/libexec/uucp/uucico40 pop:*:68:6:0:0:Post Office Owner:/nonexistent:/sbin/nologin41 www:*:80:80:0:0:Wor

16、ld Wide Web Owner:/nonexistent:/sbin/nologin42 nobody:*:65534:65534:0:0:Unprivileged user:/nonexistent:/sbin/nologin43 tom:Bk5AI4MiRKCJ2:1000:1000:0:0:Tom Chang:/home/tom:/bin/tcsh复制代码44 master.passwd 这个档案内容中,每个使用者都是独立的一行,每个字段使用冒号分开,它的格式是:name:password:UID:GID:class:change:expire:fullname:home:shell

17、复制代码每个字段的说明如下: name:使用者账号名称,也就是您 login 时所需输入的名字。使用者名称长度最长可以是 16 个字符,但如果您要使用 NIS,则最多只可以使用8个字符。每个使用者名称不可重复。而且使用者名称中只能包英文字、减号 -、底线 _、及数字,而且最好不要使用大写的英文字,而开头的第一个字也不可以是减号 -。在 master.passwd 这个档案中,每个字段都不可以使用冒号 :,因为冒号是用来分割字段的特殊符号。 password:可以是空的,代表不用密码就可以登入,这样很危险;也可以是 *,表示不可以登入;上面 vipw 显示出来的项目中,以使用者 root 而言,

18、他的密码是使用 MD5 编码过的,特征是开头为 $1 且看起来比较长;而使用者 tom 的密码是使用 DES 编码过的,DES 会将密码编成一串13个字符的符号。FreeBSD 预设使用比较安全的 MD5 编码,但您也可以修改 /etc/login.conf 以设定某些使用者改用旧的 DES 编码。 UID:使用者代号,每个使用者都不一样,不可重复,如果有多个账号使用同样的 UID,FreeBSD 会将它当成同一个账号。编号从 0 到 65535。UID 0 为系统中超级使用者的代号,内定只有 root 和 toor 的 UID 为 0。toor 账号是 bash 所建立的使用者,内定不能使用

19、该使用者登入。 GID:群组代号,编号从 0 到 65535。 class:除了群组外,class是更有弹性的控制方法,可以针对 /etc/login.conf 中不同的使用者设定来调整每个使用者的可使用的资源设定。 change:强迫使用者变更密码的时间,以从1970年到所要变更日期所经过的秒数来表示。你可以使用 date +%s 来求出从1970年到现在时间所经过的秒数,每天为86400秒,以现在时间的秒数加上86400*天数即为你要设定的时间。你可以使用指令下列指令来取得30天后的秒数,再将其填入即可。若设为0则表示不使用此功能:44 expr date +%s + 86400 * 30

20、复制代码 expire:账号的有效日期,一样是以从1970年到到期日所经过的秒数来代表。若设为0则表示不使用此功能。 fullname:使用者全名,你可以在此键入真实姓名。请注意这个字段也不可以使用冒号哦。 home:使用者的家目录,即使用者登入后的所在目录。 shell:使用者的 shell。如果使用 /sbin/nologin 表示该名使用者不可以登入。我们可以看到在 master.passwd 中已经有许多使用者,这些使用者是系统服务的使用者。例如 smmsp 是邮件服务器的 daemon 所使用的使用者名称。nobody 这个使用者是预设无任何权限的使用者,但有很多系统服务软件的预设使

21、用者都是 nobody,我们应该要注意不要以 nobody 负责为太多服务,否则它不就变成了拥有许多权限的使用者了吗!4.1.4 删除使用者知道了新增使用者的步骤后,您大概已经知道要怎么删除使用者了吧。只要把新增使用者的步骤反过来即可。 如果该使用者有设定使用定时排程的工作,如 crontab 或 at,则先将它移除。crontab 的工作排程会被放在 /var/cron/tabs/username,而 at 的工作排程则放在 /var/jobs/username 中。 如果该使用者有正在执行的程序,则送出 SIGKILL 给该行程以将它停止。 以 vipw 移除让使用者在 /etc/mast

22、er.passwd 中的账号。 使用者的家目录 /home/username,使用指令 rm -rf /home/username。 再移除使用者邮件目录 /var/mail/username。 如果暂存的目录中 (/tmp 及 /var/tmp) 有该使用的暂存盘,则将它移除。 若该使用者所属群组已无人使用,则编辑 /etc/group 来移除群组。45 以上这些步骤其实就是指令 rmuser 所做的事。我们可以使用这个指令来快速的移除使用者账号。以下即为 rmuser test 的执行结果:Matching password entry:46 test:J7kPK0pKTn2oQ:1001

23、:1001:0:0:Tom:/home/test:/bin/tcsh47 Is this the entry you wish to remove? y 真的要移除这一个使用者吗?48 Remove users home directory (/home/test)? y 是否要移除使用者家目录?49 # 移除使用者正在执行的程序及更新系统数据50 Removing users at jobs:Updating password file, updating databases, done.51 # 移除使用者群组52 Updating group file: (removing group

24、test - personal group is empty) done.53 # 移除使用者家目录54 Removing users home directory (/home/test): done.55 # 移除使用者信件56 Removing users incoming mail file /var/mail/test: done.57 # 移除使用者暂存目录58 Removing files belonging to test from /tmp: done.59 Removing files belonging to test from /var/tmp: done.60 Rem

25、oving files belonging to test from /var/tmp/vi.recover: done.复制代码61 4.2 系统资源限制如果您的 FreeBSD 系统允许多位使用者同时使用,每个使用者可能同时执行许多工作,例如 Alex 可能会执行庞大的数学运作程序,而 Tom 在系统中执行占用海量存储器的数据库程序。如此一来,我们的系统资源将全部被几个使用者耗尽,其它正常的系统服务便无法拥有较高的效能。我们不能单纯的假设系统中所有使用者都会乖乖的使用单纯的服务,因此,在一个多重使用者的环境中,系统管理者有必要针对每个使用者限于他们所可以使用的系统资源,例如 CPU、内存、

26、磁盘空间的使用量等。4.2.1 登入类别我们在新增使用者时会设定使用者的 login class,所谓的 login class 就是将使用者分类管理,以限制不同类别的使用者对于系统资源的使用。/etc/login.conf 定义了不同的 login class。这个档案中所有对于使用者限制的设定都是以 key=value 的方式来表示。这些限制大部份是针对某个使用者所执行的某一个行程 (process) 所能占用的资源,而非该使用者全部执行的行程所占用的资源总合。因此,除了每个行程所能占用的资源外,我们还会设定使用者最多可以执行多少个行程。以下为 /etc/login.conf 中关于 de

27、fault class 的设定:# defaults62 # These settings are used by login(1) by default for classless users63 # Note that entries like cputime set both cputime-cur and cputime-max64 65 default:66 :passwd_format=md5:67 :copyright=/etc/COPYRIGHT:68 :welcome=/etc/motd:69 :setenv=MAIL=/var/mail/$,BLOCKSIZE=K,FTP_

28、PASSIVE_MODE=YES:70 :path=/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin71 :nologin=/var/run/nologin:72 :cputime=unlimited:73 :datasize=unlimited:74 :stacksize=unlimited:75 :memorylocked=unlimited:76 :memoryuse=unlimited:77 :filesize=unlimited:78 :coredumpsize=unlimited:79 :openfiles=unlim

29、ited:80 :maxproc=unlimited:81 :sbsize=unlimited:82 :vmemoryuse=unlimited:83 :priority=0:84 :ignoretime:85 :umask=022:86 复制代码以下为关于系统资源限制的字段说明,每一个字段都有可使用的数值类型,例如 size、time 等,让我们来看看每个字段的说明:字段名称数值类型说明coredumpsizeSize当使用者所执行的程序出了问题 (coredump),系统会将该程序的执行状况从内存中写到硬盘上,这个值就是在限制 core file 的档案大小。如果使用者所执行的程序是需要消

30、耗许多内存的程序,则所产生的 core file 也会很大。这个值不应该比使用者的磁盘配额限制大。cputimeTime这是一个行程所能使用的最长 CPU 时间,这个时间指的不是我们在 top 或 ps 中看到的 CPU usage 百分比,而是一个行程所使用的 CPU 时间。当超过时间,系统核心会自动停止该行程。filesizeSize使用者单一档案的最大容量。我们对于使用者磁盘配额只能限制使用者对于硬盘的使用总额,而这个设定可以限制单一档案的大小。maxprocNumber限制使用者最多可以执行的行程总量。这个限制包含所有以该使用者名称所执行的程序,有的程序在执行时,会自动产生许多子行程,

31、如果这个值设定的太小,可能会造成使用者的困扰。memorylockedSizeFreeBSD 系统中有所谓的虚拟内存空间,当物理内存不足时,系统会将某部份的内存数据放到虚拟内存中。而有的程序会使用 mlock() 这个系统呼叫要求系统将它所占用的内存空间全部放在物理内存中,memorylocked 就是限制使用 mlock() 的内存大小。memoryuseSize限制行程最大的内存使用量,包含物理内存及虚拟内存。openfilesNumber限制使用者同一时间最多可以开启的档案数量。所谓的档案数量包含了一般的档案及 socket。sbsizeSize用以限制最大的网络缓冲区的使用量。stacksizeSize行程可使用的最大堆栈 (stack) 空间。以下为上表中数值类型的说明:类型说明Size我们可以单纯的以数字来表示 Size,预设的单位是 byte。例如 1234 表示 1234 bytes。除此之外,我们也可以在数字之后加上单位。例如: b: 表示 512-byte block

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1