第二章Linux用户管理本章目标•理解Linux用户管理机制•掌握Linux权限管理和控制Linux文件系统概述2-1•从系统角度理解文件系统–文件系统是操作系统用于明确磁盘分区上的文件的方法和数据结构,即文件在磁盘上的组织方法。–文件系统规定了如何在存储设备上存储数据以及如何访问存储在设备上的数据。–一个文件系统在逻辑上是独立的实体,他能单独地被操作系统管理和使用。–Linux的内核采用了称之为虚拟文件系统(VFS)的技术,因此Linux可以支持多种不同的文件系统类型。linux中常见的文件系统•ext2:支持标准Unix文件类型,可用于多种存储介质,向上兼容性好,支持长达255个字符的文件名;•ext3:ext2的升级版本,是多数linux发行版的默认文件系统类型,其主要优点是在ext2的基础上加入了记录数据的日志功能。可方便地从ext2迁移至ext3且支持异步的日志;•reiserfs:一种新型的文件系统,通过完全平衡树结构来容纳数据,包括文件数据,文件名以及日志支持。ReiserFS还以支持海量磁盘和磁盘阵列,并能在上面继续保持很快的搜索速度和很高的效率Linux文件类型(字符表示)•-:普通文件•d:目录文件•l:链接文件•b:块设备文件•c:字符设备文件•p:管道文件Linux用户类别•root:这是系统特权用户类,他们都有访问root登录帐号的权限•owner:这是实际拥有文件的用户。•group:这是共享文件的组访问权的用户类的用户组名称•world:这是不属于上面3类的所有其他用户。/etc/passwd文件•该文件是存放linux所有用户信息文件/etc/shadow文件•存放linux所有用户的密码文件/etc/shadow文件格式•帐号名称:由于密码也需要和帐号相匹配•密码:这才是真正密码,是以MD5加密(如果密码是以*或者是!开头表示密码对应用户不是登陆用户)•最近更动密码日期•密码不可被更改得天数•密码需重新变更天数•密码变更期限前警告期限•密码过去恕限时间•帐号失效日期•保留/etc/passwd文件格式•帐号名称:登陆的用户名•密码:MID5加密的密码•UID:用户ID号.0是管理员帐号,1~499保留系统使用.500~65535给一般使用者•GID:用户所属组ID号•使用者信心说明栏•家目录:用户默认所在home目录•Shell名称/etc/group文件•group文件格式:groupname:password:gid:user_list•groupname:组名称•password:组密码•gid:组识别号•user_list:该组用户清单/etc/gshadow文件•保存组密码的重要文件格式bin:::root,bin,daemon–第一栏:组名称–第二栏:密码–第三栏:组编号–第四栏:组有效用户名组的创建与用户的创建•创建组groupaddgroupname•创建用户并设置默认组useradd-ggroupnameusername•向组添加删除用户gpasswd-ausernamegroupnamegpasswd-dusernamegroupname•给组设置密码gpasswdgroupname如何登入linux取GID,UID•首先寻找/etc/passwd里面是否有这帐号,如果没有则退出,如果有得话将该帐号对应得UID和GID读出来,另外,该帐号得家目录与shell设定一并读出•再来则是核对密码表.这时linux会进/etc/shadow里面查找对应帐号后核对你得密码和里面密码是否相同•如果一切正常,就进入shell控管阶段删除组与删除用户•删除组groupdelgroupname•删除用户userdelusernamefinger-查看用户信息•要得到一个用户的详细信息,除了查看passwd,shadow文件的相应内容外,还可以使用finger命令,用法:•finger用户名Linux文件权限位•文件权限位的表示:-rwxrwxrwx•第一位表示文件的类型,-表示普通文件,d表示目录文件,l表示符号链接文件;•接下来三位表示owner用户的读,写,执行权限•紧接着三位表示group用户的读,写,执行权限•最后三位表示world用户的读,写,执行权限注意:这些权限只针对文件内容,而非文件本身属性Linux文件权限管理•规划用户以及用户所属的组•设置文件所属的用户以及所属的组(chown,chgrp)•给文件赋予相应的权限位(chmod)chmod•chmod命令格式为:chmod[option]modefiles...mode表示格式:1、数字方式:[n][n][n]r=4w=2x=1rwx:4+2+1;r-x:4+1;rw-:4+22、文本方式:[ugoa][+-=][rwx]u--该档案的拥有者;g--与该档案的拥有者属于同一个群体(group)者;o--其他以外的人;a-所有+--增加权限---去掉权限=--设定权限chmod例子(1)•给text文件赋予rwxr-xr-x权限:chmod755text•给text及其子目录底下所有文件赋予rwxr-xr-x权限:chmod-R755textchmod例子(2)•为文件abc的组拥有者增加rw权限chmodg+rwabc•为abc文件的用户拥有者去除x权限chmodu-xabc•指定文件abc的其他用户权限为rw-chmodo=rw-•为文件abc及其子目录底下的所有文件的全体用户增加x权限chmod-Ra+xabcchgrp•chgrp用来更改文件的组拥有者,其一般格式为:chgrp[option]groupfile•把文件abc的组拥有者改为study:chgrpstudyabc•把abc及其子目录下的所有文件的组拥有者改为study:chgrp-Rstudyabcchown•chown用来更改文件所有者与组拥有者,其一般格式为:chown[option]owner[:group]file•将abc及其子目录下的所有文件的所有者改为jjl:chownjjlabc•将abc文件的所有者改为jjl,组拥有者改为study:chownjjl:studyabc特殊的权限•考查/usr/bin/passwd与/etc/shadow的权限,分别为:-r-s--x--x、-r--------•我们发现/etc/shadow文件没有写的权限,那么普通用户要修改密码如何做到修改/etc/shadow文件呢?•这是通过s这个特殊权限实现的。当具有s权限的文件运行时,进程的拥有者不是执行程序的用户,而是文件的拥有者。•同样如果文件组用户执行权限位为s,表示任何用户执行该文件,都拥有该组的权限,就好像自己是组的成员一样。设置特殊的权限•用chmod命令来设置这些“特殊”的权限位。数值4表示设置文件拥有者的执行权,数值2表示设置文用户组的执行权。如:chmod4755test-rwsr-xr-x1studystudy0May2517:37testcmhod2755test-rwxr-sr-x1studystudy0May2517:37testcmhod6755test-rwsr-sr-x1studystudy0May2517:37test文件权限掩码设置-umask•考查root用户的umask值为0022•这表示root用户创建的文件对于组用户与其他用户都要去掉2即写的权限,目的就是防止除root以外的用户改写root用户的文件。•设定了umask的文件权限计算公式:newmode=oldmode&~umask