第4章 用户和组的管理.ppt_第1页
第4章 用户和组的管理.ppt_第2页
第4章 用户和组的管理.ppt_第3页
第4章 用户和组的管理.ppt_第4页
第4章 用户和组的管理.ppt_第5页
已阅读5页,还剩103页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第4章 用户和组的管理,4.1 用户的管理 4.2 组的管理 4.3 磁盘配额 习题,4.1 用户的管理,4.1.1 Linux下的用户 Linux下的用户可以分为三类:超级用户、系统用户和普通用户。超级用户的用户名为root,它具有一切权限,只有进行系统维护(例如:建立用户等)或其他必要情形下才用超级用户登录,以避免系统出现安全问题。系统用户是Linux系统正常工作所必需的内建的用户,主要是为了满足相应的系统进程对文件属主的要求而建立的,系统用户不能用来登录,例如:bin、daemon、adm、lp等用户。,而普通用户是为了让使用者能够使用Linux系统资源而建立的,我们的大多数用户属于此类

2、。 每个用户都有一个数值,称为UID。超级用户的UID为0,系统用户的UID一般为1499,普通用户的UID为50060 000之间的值。,4.1.2 账号系统文件 不像Windows 2000那样有专门的数据库用来存放用户的信息,Linux系统采用纯文本文件来保存账号的各种信息,其中最重要的文件有/etc/passwd、/etc/shadow、/etc/group这几个。因此账号的管理实际上就是对这几个文件的内容进行添加、修改和删除记录行的操作。我们可以使用vi或其他编辑器来更改它们,也可以使用专门的命令来更改它们。不管以哪种形式管理账号,了解这几个文件的内容十分必要。Linux系统为了自己

3、的安全,缺省情况下只允许超级用户更改它们。,1. /etc/passwd文件 /etc/passwd文件是账号管理中最重要的一个文件,它是一个纯文本文件。每一个注册用户在该文件都有一个对应的记录行,这一记录行记录了此用户的必要信息。,【实例4.1】 root redflag /root#cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin: daemon:x:2:2:daemon:/sbin: adm:x:3:4:adm:/var/adm: ,sshd:x:74:74:Privilege-separated SSH

4、:/var/empty/sshd:/sbin/nol rpc:x:32:32:Portmapper RPC user:/:/bin/false rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/bin/false mailnull:x:47:47:/var/spool/mqueue:/dev/null test:x:500:500:/home/test:/bin/bash passwd文件中的每一行由7个字段的数据组成,字段之间用“:”分隔,其格式如下: 账号名称:密码:UID:GID:个人资料:主目录:Shell,字段说明: 账号名称:用户登录Li

5、nux系统时使用的名称。 密码:这里的密码是经过加密后的密码(一般是采用MD5加密方式),而不是真正的密码,若为“x”,说明密码经过了shadow的保护(我们随后就介绍)。 UID:用户的标识,是一个数值,Linux系统内部使用它来区分不同的用户。 GID:用户所在基本组的标识,是一个数值,Linux系统内部使用它来区分不同的组,相同的组具有相同的GID。,个人资料:可以记录用户的完整姓名、地址、办公室电话、家庭电话等信息。 主目录:类似Windows 2000的个人目录,通常是/home/username,这里username是用户名,用户执行“cd”命令时当前目录会切换到个人主目录。 Sh

6、ell:定义用户登录后激活的Shell,默认是Bash Shell。 从passwd文件中可以看到,第一行是root用户,紧接的是系统用户,普通用户通常在文件的尾部。当然它们所在的顺序并不是很重要的。,2. /etc/shadow 在passwd文件中,有一个字段是用来存放经过加密的密码。我们先来看以下passwd文件的权限: root redflag /root#ls -l /etc/passwd -rw-r-r- 1 root root 1092 3月 12 18:00 /etc/passwd,可以看到任何用户对它都有读的权限。如果不让所有的用户对它有读的权限,Linux系统会出现一些问题

7、。虽然密码已经经过加密,但还是不能避免别有用心的人轻易地获取加密后的密码后进行解密(如:字典法、穷举法等)。于是Linux系统对密码提供了更多一层的保护,即把加密后的密码重定向到另一个文件/etc/shadow。 root redflag /root#ls -l /etc/shadow -r- 1 root root 758 3月12 18:00 /etc/shadow,现在只有超级用户能够读取shadow的内容,密码显然安全多了,因为其他人即使想获得加密后的密码也不容易了。 红旗Linux 3.0缺省采用shadow文件。密码如果经过shadow保护,在/etc/passwd文件中,每一记录

8、行的密码字段会变成“x”,并且在/etc目录下存在文件shadow。,【实例4.2】 root redflag /root#cat /etc/shadow root:12123:0:99999:7: bin:*:12123:0:99999:7: daemon:*:12123:0:99999:7: adm:*:12123:0:99999:7: ,sshd:!:12123:0:99999:7: rpc:!:12123:0:99999:7: rpcuser:!:12123:0:99999:7: mailnull:!:12123:0:99999:7: test:12123:0:99999:7: 和pa

9、sswd文件类似,shadow文件中的每行由9个字段组成,格式如下:,用户名:密码:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志字段说明: 用户名:和/etc/passwd文件中相对应的用户名。 密码:存放加密后的口令(密码)。 最后一次修改时间:用户最后一次修改口令的时间(从1970-1-1起计的天数)。 最小时间间隔:两次修改口令允许的最小天数。,最大时间间隔:口令保持有效的最多天数,即多少天后必须修改口令。 警告时间:从系统提前警告到口令正式失效的天数。 不活动时间:口令过期多少天后,该账号被禁用。 失效时间:指示口令失效的绝对天数(从1970-1-

10、1开始计算)。 标志:未使用。 shadow文件中,密码字段为“*”表示用户被禁止登录,为“!”表示密码未设置,为“!”表示用户被锁定。,3. pwconv和pwunconv 安装Linux系统时,系统缺省采用shadow来保护密码。如果安装Linux时未启用shadow,可以使用pwconv命令启用shadow。注意用root用户登录来执行该命令。 root redflag /root#pwconv 执行的结果是/etc/passwd文件中的密码字段被改为“x”,同时产生/etc/shadow文件。 相反,如果要取消shadow功能,使用pwunconv命令。,【实例4.3】 root re

11、dflag /root#pwunconv root redflag /root#cat /etc/passwd root:$1$HgZ5TnjG$1lE4Umcmpx0s9ESNHB0By0:0:0:root:/root:/bin/bash test:$1$dm5d2WCQ$6RUCGuCRAz9RUAOytwbk3/:500:500:/home/test:/bin/bash,4.1.3 创建新的用户 创建新的用户要完成以下几个工作: (1) 在/etc/passwd(和/etc/shadow)中添加一行新的记录; (2) 创建用户的个人主目录,并赋权限; (3) 在用户的个人主目录设置默认的

12、配置文件; (4) 设置用户的初始口令。,创建用户可以用手工创建或使用专门的命令创建。手工创建就是管理员一步一步完成以上的工作;使用专门的命令,则是由Linux提供的命令来完成以上的工作。使用后者效率较高,如果不是创建有特殊要求的用户,建议使用后者。 创建用户的命令为useradd或adduser,一般来说这两个命令是没有差别的,先用root用户登录后,再执行它们。useradd命令的格式如下:,useradd 参数 用户名 参数选项: -c comment:注释行,一般为用户的全名、地址、办公室电话、家庭电话等。 -d dir:设置个人主目录,默认值是/home/用户名。 -e YYYY-M

13、M-DD:设置账号的有效日期,此日期后用户将不能使用该账号。要启用shadow才能使用此功能。,-f days:指定密码到期后多少天永久停止账号,要求启用shadow功能。 -g group:设定用户的所属基本组,group必须是存在的组名或组的GID。 -G group:设定用户的所属附属组,group必须是存在的组名或组的GID,附属组可以有多个,组之间用“,”分隔开。 -k Shell-dir:和“-m”一起使用,将Shell-dir目录中文件复制到主目录,默认是/etc/skel目录。,-m:若用户主目录不存在,创建主目录。 -s Shell:设置用户登录后启动的Shell,默认是Ba

14、sh Shell。 -u UID:设置账号的UID,默认是已有用户的最大UID加1。 例如: root redflag /root#useradd user1 在/etc/passwd文件中会看到增加了一行:,user1:x:501:501:/home/user1:/bin/bash 系统自动指定用户user1的UID为501,同时还自动创建组名为user1的用户组(其名称和用户名相同,其GID值也和UID值相同),在/home目录下还创建了目录user1,用户的登录Shell是Bash Shell。,root redflag /root#ls -l /home drwx- 9 user1 u

15、ser1 472 3月 13 23:06 user1 user1对/home/user1目录有所有权限,其他用户无任何权限。同时在/etc/shadow文件中也会增加一行:,user1:!:12125:0:99999:7: 注意密码字段的内容为“!”,表示密码没有设置。 root redflag /root#useradd -g user1 -c “user2,-755-123456” user2 以上命令创建user2用户,并把它加入到组user1中,同时加上用户的注释。,4.1.4 修改用户的属性 1. 修改用户的密码 (1) passwd 用户名修改用户的密码。 修改用户的密码需要两次输

16、入密码确认。密码是保证系统安全的一个重要措施,在设置密码时,不要使用过于简单的密码。密码的长度应在8位或8位以上,由数字和英文组合而成,不要采用英文单词等有意义的词汇。一个便于记忆并且有效的密码“wabjtam!”,是“我爱北京天安门!”的汉字拼音首字母组合。密码的更改间隔天数不要太大,并且不得重复使用。,用户的密码也可以自己更改,这时使用不带用户名的passwd命令。 root redflag /root#passwd 修改root用户自己的密码。,(2) passwd -d 用户名删除用户的密码。 【实例4.4】 root redflag /root#passwd -d user2 Cha

17、nging password for user user2 Removing password for user user2 passwd: Success 以上命令删除了用户user2的密码。,2. 修改用户的Shell设置 如果用户的默认Shell不合适,可以把它改成任何已经加入到/etc/Shells文件中的Shell。使用chsh命令改变用户的Shell,格式如下: chsh 用户名,【实例4.5】 root redflag /root#chsh user2 Changing Shell for user2. New Shell /bin/bash: /bin/csh Shell ch

18、anged. 指定的Shell一定要在/etc/Shells中存在,否则会导致用户无法登录。也可以使用下面要介绍的命令usermod来改变用户的Shell设置。,3. usermod 参数 用户名改变用户的属性 参数选项: -c comment:改变用户的注释,如:全名、地址、办公室电话、家庭电话等。 -d dir:改变用户的主目录,如果同时使用“-m”选项,原来主目录的内容会移动到新的主目录。 -e YYYY-MM-DD:修改用户的有效日期。,-f days:在密码到期的days天后停止使用账户。 -g GID或组名:修改用户的所属基本组。 -G GID或组名:修改用户的所属附加组,组之间用

19、“,”分隔。 -l name:更改账户的名称,必须在该用户未登录的情况下才能使用。 -m:把主目录的所有内容移动到新的目录。 -p 密码:修改用户的密码。 -s Shell:修改用户的登录Shell。,-u UID:改变用户的UID为新的值,改变用户的UID时主目录下所有该用户所拥有的文件或子目录将自动更改UID,但对于主目录之外的文件和目录只能用chown命令手工进行设置。 例如: root redflag /root#usermod -d /home2/user2 user2 该命令把用户user2的主目录改为/home2/user2 。,4. chfn 用户名修改用户的个人信息 【实例4

20、.6】 root redflag /root#chfn user2 Changing finger information for user2. Name Bom: BOM #修改姓名。 Office xili shenzhen: XiLi ShenZhen #修改办公室地址。,Office Phone#修改办公室电话。 Home Phone#修改家庭电话。 Finger information changed.,4.1.5 停止用户 将用户停用有几个不同的程度: (1) 暂时停止用

21、户登录系统的权利,日后再恢复。 (2) 从系统中删除用户,但保留用户的文件。 (3) 从系统中删除用户,并删除用户所拥有的文件。,1. 暂停用户 暂停用户常常用于某用户在未来较长的一段时间内不登录系统的情形(如出差)。只需要利用编辑工具将passwd文件中的密码字段加上“*”即可(如果采用了shadow文件,就编辑shadow文件)。恢复时,把“*”删除即可。 也可以使用带“-l”参数的passwd命令来暂停用户。,【实例4.7】 root redflag /root#passwd -l user1 Changing password for user user2 Locking passwo

22、rd for user user2 passwd: Success 被锁定的账户其在passwd文件或shadow文件中的记录行的密码字段会加上“!”,如下(这里是shadow):, user2:!$1$UKp9vz4X$BIf3RyDs9hkveDqwiosFt.:12126:0:99999:7:-1:-1:134523744 恢复时,使用带“-u”参数的passwd命令,如下: root redflag /root#passwd -u user2 Changing password for user user2 Unlocking password for user user2 passw

23、d: Success,2. 删除用户 删除一个账户可以直接将passwd文件中的用户记录整行删除(如采用shadow,还要删除shadow文件中的记录)。也可以使用userdel命令: userdel 参数 用户名 参数选项: -r:删除用户时将用户主目录下的所有内容一并删除,同时删除用户的邮箱(在/var/spool/mail下)。 例如: root redflag /root#userdel -r user1 表示删除user1,且将user1下的内容删除。,3. 完全删除 Linux系统并不提供完全删除用户所有文件的命令,带“-r”参数的userdel命令只能删除用户主目录下的文件和邮箱

24、,对于用户在别的目录下所拥有的文件只能手工删除。,4.1.6 默认新用户的设置 使用useradd建立新用户时,新建的用户有一定的默认设置,这个设置来自/etc/default/useradd文件,文件中的内容如下: # useradd defaults file GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel,文件中的含义如下: GROUP=100:指定默认的组为100,该设置只有在使用“-u”选项禁止了默认私有组(也就是和新用户同名的组)时才有效,该值必须在/etc/group文件中存在。 HO

25、ME=/home:指定新用户主目录所在的目录。 INACTIVE=-1:只有启用了shadow功能后才有效,指定用户密码过期后该账户将在多长时间后无效(以天数计),-1代表永远不过期。,EXPIRE=:只有启用了shadow功能后才有效,指定账户被禁止的时间。 SHELL=/bin/bash:指定默认登录的Shell。 SKEL=/etc/skel:指定保存用户各种配置文件的目录,创建新用户时,该目录下的文件将被拷贝到用户的主目录下。 如果启用shadow功能,建立用户账户时还将使用另一配置文件/etc/login.defs。,【实例4.8】 我们把有关的说明用“#”进行标注,以示和文件原有内

26、容的区别。 root redflag /root#cat /etc/login.defs # *REQUIRED* # Directory where mailboxes reside, _or_ name of file, relative to the # home directory. If you _do_ define both, MAIL_DIR takes precedence. # QMAIL_DIR is for Qmail #,#QMAIL_DIR Maildir MAIL_DIR /var/spool/mail #用户邮箱所在的目录。 #MAIL_FILE .mail #

27、 Password aging controls: # # PASS_MAX_DAYSMaximum number of days a password may be used.,# PASS_MIN_DAYS Minimum number of days allowed between password changes. # PASS_MIN_LEN Minimum acceptable password length. # PASS_WARN_AGE Number of days warning given before a password expires. # PASS_MAX_DAY

28、S 99999 #账户密码最长的使用天数。 PASS_MIN_DAYS 0,#允许更改账户密码的最短天数。 PASS_MIN_LEN 5 #账户密码最小长度。 PASS_WARN_AGE 7 #账户密码过期前提前警告的天数。 # # Min/max values for automatic uid selection in useradd #,UID_MIN 500 #用useradd命令添加账户时自动产生UID,最小的UID值。 UID_MAX 60000 #用useradd命令添加账户时自动产生UID,最大的UID值。 # # Min/max values for automatic gi

29、d selection in groupadd # GID_MIN 500,#用useradd命令添加账户时自动产生GID,最小的GID值。 GID_MAX 60000 #用useradd命令添加账户时自动产生GID,最大的GID值。 # # If defined, this command is run when removing a user. # It should remove any at/cron/print jobs etc. owned by # the user to be removed (passed as the first argument).,# #USERDEL_

30、CMD /usr/sbin/userdel_local # # If useradd should create home directories for users by default # On RH systems, we do. This option is ORed with the -m flag on # useradd command line. # CREATE_HOME yes #是否创建用户主目录。,4.1.7 用户登录系统后环境的设定 系统管理员经常碰到用户反映“我不想每次设定我自己的命令别名,我要怎么做?”、“我想改变我注册后的提示符,我要怎么做?”这类问题。这些要求

31、可以通过修改系统或用户的作业环境来控制。 用户登录系统后可以使用不同的Shell,不同的Shell对作业环境进行控制所采用的文件不太一样。我们这里以系统默认的ShellBash Shell为例,其他Shell所采用的文件请参见有关的资料(例如,用man tcsh命令)。,使用Bash Shell时,有以下几个文件和用户的作业环境有关: (1) /etc/profile。 (2) /etc/bashrc。 (3) /etc/inputrc。 (4) $HOME/.bash_profile。 (5) $HOME/.bashrc。 (6) $HOME/.inputrc。 (7) $HOME/.bas

32、h_login。,前3个文件和系统所有的用户有关,影响所有登录的用户;后4个文件和某个特定用户有关,如果只想改变单一用户的作业环境,要更改这几个文件。这些文件(inputrc和.inputrc除外)采用Shell语言编写,因此请参照Shell编程这一章节的内容来阅读这些文件的内容。其中,/etc/profile是系统首先会执行的文件。,【实例4.9】 同样,我们把有关的说明用“#”进行标注,以示和文件原有内容的区别。 # /etc/profile # System wide environment and startup programs # Functions and aliases go

33、in /etc/bashrc #如果用户的搜索路径中没有/usr/X11R6/bin,则把这一路径加到搜索路径中。 if ! echo $PATH | /bin/grep -q /usr/X11R6/bin ; then PATH=$PATH:/usr/X11R6/bin,fi #设定系统产生的核心文件的大小最大为100MB(软限制)。 ulimit -S -c 1000000 /dev/null 2 then umask 002,else umask 022 fi #设定环境变量USER(用户名)。 USER=id un #设定环境变量LOGNAME(登录名)。 LOGNAME=$USER

34、#设定环境变量MAIL(用户邮箱所在处)。 MAIL=/var/spool/mail/$USER #设定环境变量HOSTNAME(主机名)。,HOSTNAME=bin/hostname #设定环境变量HISTSIZE,即保存1000条的历史命令。使用history命令时可以显示用户的历 史命令,能保存的历史命令数和这一变量有关。 HISTSIZE=1000 #定义键盘键位的文件是/etc/inputrc文件。 if -z $INPUTRC -a ! -f $HOME/.inputrc ; then INPUTRC=/etc/inputrc,fi #输出以下的变量。 export PATH US

35、ER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC #执行/etc/profile.d目录下的所有“*.sh”文件。 for i in /etc/profile.d/*.sh ; do if -x $i ; then . $i fi done unset i,#定义堆栈大小为2048。 ulimit -s 2048 /dev/null 2 then if -x /usr/bin/tput ; then if xtput kbs != x ; then # We cant do this with dumb terminal stty erase tput kbs

36、,elif -x /usr/bin/wc ; then if tput kbs|wc -c -gt 0 ; then # We cant do this with dumb terminal stty erase tput kbs fi fi fi case $TERM in xterm*) PROMPT_COMMAND=echo-ne 0330;$USER$HOSTNAME: $PWD007,; *) ; esac #设定用户登录后的提示符,意思是:用户名主机名 当前目录。 $PS1 = s-v$ then # Were not a login Shell,for i in /etc/pro

37、file.d/*.sh; do if -x $i ; then . $i fi done fi fi #设定一些常用的命令别名。,alias ls=ls -color -show-control-chars alias ls=ls -color -l -show-control-chars alias ls=ls -color alias ls=ls -color /etc/inputrc文件主要定义或者改变一些功能键的定义,从而更好地使用命令行,一般并不对此文件进行改变。详细说明请用man bash命令获得。,“.bash_profile”、“.bashrc”和“.bash_login”是存

38、在个人主目录下的隐含文件,更改它们的内容可以定制某一用户的作业环境。它们的内容和profile、bashrc内容类似,这里不再详细说明。,4.1.8 超级用户 我们已经知道root用户是超级用户,它具有至高无上的权利,不仅对系统任何文件都有权限(不管是否明确分配root对文件的权限),还可以管理系统。root用户的UID和GID都为0。实际上,普通用户如果其UID和GID也都为0,它就成了和root平起平坐的超级用户了。大多情况下,这样做并没有什么好处,而且还有坏处。但有时在组织中需要多个系统管理员管理同一系统,多个超级用户有利于多个管理员的责任明确。,缺省情况下,超级用户只有从/etc/se

39、curetty文件中列出的tty上登录才能获得成功。普通用户成为超级用户后仍无法从Telnet登录。因此如果要远程管理用户,可以用普通用户从Telnet登录,再用su命令切换到超级用户来实现远程管理。,root用户的重要性已经十分明显。和Windows 2000不同,如果root的密码丢失,有不用重新安装系统的方法。解决的办法是用红旗Linux启动盘启动,进入到安装状态,然后把文件系统mount到一个目录下(如/mnt),随后修改/etc目录下的文件passwd,把root用户的密码字段内容删除。或者在LILO出现时,输入“linux single”把系统启动到单用户状态,再更改/etc/pa

40、sswd后重新启动系统到正常状态。,4.2 组 的 管 理,4.2.1 Linux下的组和组文件 Linux的组有私有组、系统组、标准组之分。建立账户时,若没有指定账户所属的组,系统会建立一个组名和用户名相同的组,这个组就是私有组,这个组只容纳了一个用户。而标准组可以容纳多个用户,组中的用户都具有组所拥有的权利。系统组是Linux系统正常运行所必需的,安装Linux系统或添加新的软件包会自动建立系统组。,一个用户可以属于多个组,用户所属的组又有基本组和附加组之分。在用户所属组中的第一个组称为基本组,基本组在/etc/passwd文件中指定;其他组为附加组,附加组在/etc/group文件中指定

41、。属于多个组的用户所拥有的权限是它所在的组的权限之和。 Linux系统关于组的信息存放在文件/etc/group中。,【实例4.11】 root redflag /root#cat /etc/group root:x:0:root,test bin:x:1:root,bin,daemon daemon:x:2:root,bin,daemon sys:x:3:root,bin,adm adm:x:4:root,adm,daemon sshd:x:74: rpc:x:32: rpcuser:x:29:,mailnull:x:47: test:x:500: group1:x:1000: user1:

42、x:501: group文件中的每一行记录了一个组的信息,每行包括4个字段,字段之间用“:”分隔。格式如下:,组名:组的密码:GID:组成员 字段说明: 组名:组的名称,如:root、bin等。 组的密码:设置加入组的密码,一般情况下不使用组密码,该字段通常没用。 GID:组的标识符,为数值,类似UID。 组成员:组所包含的用户,用户之间用“,”分隔。大部分系统组无成员。,4.2.2 组的添加 可以手工编辑/etc/group文件来完成组的添加,也可以用命令groupadd来添加用户。groupadd命令的格式如下: groupadd 参数 组名 参数选项: -g GID:指定新组的GID,默

43、认值是已有的最大的GID加1。,-r:建立一个系统专用组,与-g不同时使用时,则分配一个1499的GID。 例如: root redflag /root#groupadd -g 1000 group1 表示添加一个新组,组ID为1000,组名为group1。,4.2.3 组属性的修改 修改组的属性,使用groupmod命令,格式如下: groupmod 参数 组名 参数选项: -g GID:指定组新的GID。 -n name:更改组的名字为name。,要改变组中的成员用户或改变组的密码使用gpasswd命令,例如: gpasswd 参数 用户名 组名 不带参数时,即修改组密码。 参数选项: -

44、a:将用户加入到组中。 -d:将用户从组中删除。 -r:取消组密码。,例如: root redflag /root#gpasswd group1 Changing the password for group group1 New Password: Re-enter new password: root redflag /root#gpasswd -a user1 group1 将用户user1加入到组group1中。 root redflag /root#gpasswd -d user1 group1 将用户user1从组group1中删除。,4.2.4 文件的安全问题 我们在第2章已经介

45、绍了文件和目录的权限问题,这里就权限问题做一些补充。 1. umask改变默认权限掩码 文件权限可以通过chmod命令来修改。当用户创建一个新文件后,如果不使用chmod修改权限,则这个文件的权限是什么呢?这个文件的权限由系统默认权限和默认权限掩码共同确定,它等于系统默认权限减去默认权限掩码。,Linux系统中目录的默认权限是777,文件的默认权限是666。因此,有以下公式: 新目录的权限=777默认权限掩码 新文件的权限=666默认权限掩码 例如: root redflag /root#umask 022,以上不带任何参数的umask命令显示当前的默认权限掩码值。如果用户创建新的文件,文件的

46、权限应为: 666-022=644(即rw-r-r-) root redflag /root#vi test root redflag /root#ls l test -rw-r-r- 1 root root 7 3 月 8 12:57 test,如果用户创建新的目录,目录的权限应为: 777-022=755(即rwxr-xr-x) root redflag /root#mkdir testdir root redflag /root#ls l drwxr-xr-x 2 root root 48 3月 8 13:03 testdir root redflag /root#umask 002 把

47、当前用户的默认权限掩码值改为002。,2. setuid、setgid和sticky位 在这之前,我们介绍了文件权限可以用3个八进制来表示。实际上文件权限可以有4个八进制位(如,“0644”),只不过第1位八进制为“0”,可以省略。第1位的八进制如果用二进制表示,有3位二进制,依次表示: 用户标识位:组标识位:粘贴位,用户标识位:如为“1”,表示任一用户执行该程序时,正在运行的程序的拥有者将是文件的所有者,而不是启动程序的用户。例如,有一文件testprg,其拥有者为root,该文件设置了用户标识位,用户user1运行了该程序,则正在运行的程序testprg将归root拥有,testprg程序

48、将具有root用户的权限。这使得普通用户在权限不够时的情况下仍然可以运行某些要求有高权限的命令,但同时带来了安全的问题,所以要慎重使用用户标识位。,组标识位:和用户标识位类似,只不过用户换成了组而已。 粘贴位:如果某个程序不断被运行,可以设置粘贴位以提高速度。设置了粘贴位后,系统会在内存创建一个该程序的拷贝,下次调用时速度会加快。 仍然使用chmod命令来设置以上3个位,例如: root redflag /root#chmod 4644 testprg 注意以上命令有了4个八进制,第1位八进制用于设置用户标识位。,root redflag /root#ls -l testprg -rwSr-r

49、- 1 test test 13 3月 15 10:00 testprg 用户标识位用“-s-”或“-S-”来显示,即它占用了文件拥有者的执行权限位来表示。如果该位为“s”,表示设置了用户标识位的同时文件拥有者对文件还有执行权限;如果该位为“S”,表示设置了用户标识位而文件拥有者对文件没有执行权限。,组标识位用“-s-”或“-S-”来显示,即它占用了文件所属组的执行权限位来表示。如果该位为“s”,表示设置了组标识位的同时文件所属组对文件还有执行权限;如果该位为“S”,表示设置了组标识位而文件所属组对文件没有执行权限。,粘贴位用“-t”或“-T”来显示,即它占用了其他用户的执行权限位来表示。如果

50、该位为“t”,表示设置了粘贴位的同时其他用户对文件还有执行权限;如果该位为“T”,表示设置了粘贴位而其他用户对文件没有执行权限。 使用chmod命令时,可以用“s”表示用户或组的标识位,用“t”表示粘贴位。 root redflag /root#chmod 4644 testprg 等价于 root redflag /root#chmod u=rws,g=r,o=r testprg,4.3 磁 盘 配 额,所谓的磁盘配额,是指用户在主机上可以使用的磁盘空间的额度。限制用户所能占用的磁盘空间常常是必要的,特别是当主机作为公共服务器使用时。Linux通过quota来实现磁盘配额管理。quota可以

51、从两个方面进行限制:一个方面可以限制用户或组占用的磁盘块数(1块=1024字节);另一方面可以限制用户或组所拥有的文件数(inode数)。大多情况下我们使用块数的限制。,quota是以文件系统为基础的,如果系统中有多个文件系统,则必须在所有文件系统上分别进行quota的设置。quota目前只在ext2类型的文件系统上实现。 配置quota一般有以下几个步骤: (1) 检查内核是否支持quota。红旗Linux3.0内核缺省是支持的,也可以用下面的命令确认: root redflag /root#dmesg | grep “quota” 应有输出: VFS: Diskquotas version

52、 dquot_6.5.0 initialized 如内核不支持,则用rpm安装相应的软件包。,(2) 修改/etc/fstab文件(关于fstab的内容,可进一步参见文件系统管理这一章)。 对于要启用quota的文件系统,要配置相应的安装选项。如下: /dev/hda3 /mnt/disk1 ext2 defaults,usrquota,grpquota 1 2 带下划线的部分是和quota有关的选项。userquota表示支持用户quota,而grpquota表示支持组quota。,(3) 重新启动系统或卸载文件系统并重新安装文件系统让quota选项生效,例如: root redflag /

53、root#unmount /dev/hda3 root redflag /root#mount /dev/hda3,(4) 建立aquota.user和aquota.group文件。使用quotacheck命令来完成这一任务,该命令的作用是检查配置了quota的文件系统中,各个用户或组对文件和文件数的使用情况,并在每个文件系统的根目录上建立aquota.user和aquota.group文件。第一次执行时,如果文件系统存在的文件数较多,会比较费时。,例如: root redflag /root#quotacheck -avug Scan of /mnt/disk1 /dev/hda3 done Checked 2 directories and 0 files 参数选项: -a:检查所有已安装(mount)了并且配置了配额的文件系统。 -g:检查组的配额。 -u:检查用户配额。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论