用户与权限管理.ppt
Linux用户与权限管理,Vi的三种工作模式Vi的基本操作使用Vi进行配置文件的编辑,内容回顾,Vi 的模式,三种模式命令模式输入模式末行模式,Linux,退出vi,vi file,Vi 的模式,命令模式,空白区,输入模式,Vi 的模式,末行模式,Vi 的模式,Vi 的命令,命令模式下的操作命令输入模式下的操作命令末行模式下的操作命令,掌握用户和组相关的配置文件掌握用户和组管理的方法日常的管理用户和组掌握Linux权限的表示及设置了解Linux文件和目录安全管理原则,本章目标,用户管理类命令,用户管理组管理密码管理用户信息查询,引 言,Linux系统是一个多用户的时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。每个用户账号都拥有一个惟一的用户名和各自的口令。用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。实现用户账号的管理,要完成的工作主要有如下几个方面:1.用户账号的添加、删除与修改。2.用户口令的管理。3.用户组的管理。,用户和组帐号概述,Linux基于用户身份对资源访问进行控制用户帐号:超级用户root 普通用户 程序用户组帐号:基本组(私有组)附加组(公共组)UID和GID:UID(User Identity,用户标识号)GID(Group Identify,组标识号),/etc/passwd 用户信息文件,用户帐号管理,用户帐号文件 passwd,用于保存用户的帐号基本信息文件位置:/etc/passwd每一行对应一个用户的帐号记录,rootlocalhost#tail-2/etc/passwdsabayon:x:86:86:Sabayon user:/home/sabayon:/sbin/nologinbenet:x:500:500:BENET Student User:/home/benet:/bin/bash,字段1:用户帐号的名称 字段2:用户密码字串或者密码占位符“x”字段3:用户帐号的UID号 字段4:所属基本组帐号的GID号 字段5:用户全名 字段6:宿主目录 字段7:登录Shell信息,/etc/passwd,用户UID,UID:用户独一无二的身份标识,/etc/shadow 密码文件,用户帐号文件 shadow,用于保存密码字串、密码有效期等信息文件位置:/etc/shadow每一行对应一个用户的密码记录,rootlocalhost#tail-2/etc/shadowsabayon:!:14495:0:99999:7:mary:$1$po/zD0XK$4HSh/Aeae/eJ6dNj1k7Oz1:14495:0:99999:7:,字段1:用户帐号的名称 字段2:加密的密码字串信息 字段3:上次修改密码的时间 字段4:指的是两次修改口令之间所需的最小天数,0为不作要求 字段5:密码的最长有效天数,默认值为99999 字段6:提前多少天警告用户口令将过期,默认值为7 字段7:在密码过期之后多少天禁用此用户 字段8:帐号失效时间,默认值为空 字段9:保留字段(未使用),用户管理命令useradduserdelusermod,用户帐号管理,添加用户帐号,useradd命令格式:useradd 选项.用户名常用命令选项-u:指定 UID 标记号-d:指定宿主目录,缺省为/home/用户名-e:指定帐号失效时间-g:指定用户的基本组名(或UID号)-G:指定用户的附加组名(或GID号)-M:不为用户建立并初始化宿主目录-s:指定用户的登录Shell,用户帐号的初始配置文件,文件来源新建用户帐号时,从/etc/skel 目录中复制而来主要的用户初始配置文件/.bash_profile:用户每次登录时执行/.bashrc:每次进入新的Bash环境时执行/.bash_logout:用户每次退出登录时执行,全局初始配置文件/etc/bashrc/erc/profile,rootlocalhost#cat/.bashrcalias rm=rm-ialias cp=cp-ialias mv=mv-i,设置/更改用户口令,passwd命令格式:passwd 选项.用户名常用命令选项-d:清空用户的密码,使之无需密码即可登录-l:锁定用户帐号-S:查看用户帐号的状态(是否被锁定)-u:解锁用户帐号,修改用户帐号的属性,usermod命令格式:usermod 选项.用户名常用命令选项-l:更改用户帐号的登录名称-L:锁定用户账户-U:解锁用户账户以下选项与useradd命令中的含义相同-u、-d、-e、-g、-G、-s,usermod 选项 用户名,用户帐号管理,usermod-u uid username 修改用户的UIDusermod-g gid username 修改用户的GIDusermod-l newname oldname 修改用户名usermod-G groupname username 添加用户到组usermod-L username 锁定用户6.usermod-U username 解除锁定,删除用户帐号,userdel命令格式:userdel-r 用户名添加-r 选项时,表示连用户的宿主目录一并删除,rootlocalhost#useradd stu01rootlocalhost#ls-ld/home/stu01/drwx-2 stu01 stu01 4096 09-09 12:38/home/stu01/rootlocalhost#userdel-r stu01rootlocalhost#ls-ld/home/stu01/ls:/home/stu01/:没有那个文件或目录,删除用户帐号stu01,userdel-r username-r:将该账号的home directory与/var/spool/mail/username一并删除。,eg:userdel-r sam,用户帐号管理,注意:一般而言,如果该账号只是暂时不启用的话,那么将/etc/shadow 里头最后倒数一个字段设定为 0 就可以让该账号无法使用,但是所有跟该账号相关的数据都会留下来!使用 userdel 的时机通常是你真的确定不要让该用户在主机上面使用任何数据了!,组帐号文件 group、gshadow,与用户帐号文件相类似/etc/group:保存组帐号基本信息/etc/gshadow:保存组帐号的密码信息,rootlocalhost#grep adm/etc/groupsys:x:3:root,bin,admadm:x:4:root,adm,daemon,组帐号名,组成员列表,用户组管理,/etc/group 用户组文件,用户组管理,/etc/gshadow 用户组密码文件,用户组管理命令groupaddgroupdelgroupmod,用户组管理,groupadd-g GID 用户组-g GID 指定新用户组的组标识(GID),用户组管理,groupdel 用户组,groupmod-g GID-n 用户组-g GID 为用户组指定新的组标识号-n新用户组 将用户组的名字改为新名字,例如:将组名为group2修改为group3。groupmod-n group3 group2,添加组帐号,groupadd命令格式:groupadd-g GID 组帐号名,rootlocalhost#groupadd-g 1000 marketrootlocalhost#tail-1/etc/groupmarket:x:1000:,添加组帐号market,添加、删除组成员,gpasswd命令用途:设置组帐号密码(极少用)、添加/删除组成员格式:gpasswd 选项.组帐号名常用命令选项-a:向组内添加一个用户-d:从组内删除一个用户成员-M:定义组成员列表,以逗号分隔,rootlocalhost#gpasswd-a benet market正在将用户“benet”加入到“market”组中rootlocalhost#grep market/etc/groupmarket:x:1000:benetrootlocalhost#gpasswd-M benet,root,adm marketrootlocalhost#grep market/etc/groupmarket:x:1000:benet,root,adm,添加组成员benet,定义多个组成员,rootlocalhost#grep market/etc/groupmarket:x:1000:benet,root,admrootlocalhost#gpasswd-d root market正在将用户“root”从“market”组中删除rootlocalhost#grep market/etc/groupmarket:x:1000:benet,adm,删除组成员root,删除组帐号,groupdel命令格式:groupdel 组帐号名,rootlocalhost#groupdel marketrootlocalhost#grep market/etc/grouprootlocalhost#,删除组帐号market,用户和组帐号查询,id命令用途:查询用户身份标识格式:id 用户名groups命令用途:查询用户所属的组格式:groups 用户名finger命令用途:查询用户帐号的详细信息格式:finger-l 用户名users、w、who命令用途:查询已登录到主机的用户信息,图形化的用户和组管理工具,打开方式“系统”“管理”“用户和组群”按Alt+F2键后,运行“system-config-users”,小结,请思考:主要有哪两个用户帐号文件,各有什么作用?如何锁定、解锁用户帐号?在添加用户帐号时,如何设置其失效时间?用户初始配置文件包括哪些,各有什么作用?如何设置一个组的多个用户成员?,手工添加帐户,先建立所需要的群组(vi/etc/group)建立账号的各个属性(vi/etc/passwd)将 passwd 与 shadow 同步化(/usr/sbin/pwconv)建立该账号的密码(passwd acount)建立使用者家目录(cp-r/etc/skel/home/acount)更改家目录属性(chown-R acount:group/home/acount),手工添加test帐户,添加和删除用户对每位Linux系统管理员都是轻而易举的事,比较棘手的是如果要添加几十个、上百个甚至上千个用户时,我们不太可能还使用useradd一个一个地添加,必然要找一种简便的创建大量用户的方法。问题:如何添加大量用户?1、vi user.txt2、newusers user.txt3、pwunconv4、vi passwd.txt5、chpasswd passwd.txt6、pwconv,思考?,文件/目录的权限和归属,访问权限读取:允许查看文件内容、显示目录列表写入:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录可执行:允许运行程序、切换目录归属(所有权)属主:拥有该文件或目录的用户帐号属组:拥有该文件或目录的组帐号,查看文件/目录的权限和归属,rootlocalhost#ls-l install.log-rw-r-r-1 root root 34298 04-02 00:23 install.log,文件类型,属组,属主,访问权限,设置文件/目录的权限,chmod命令格式1:chmod ugoa+-=rwx 文件或目录.,u、g、o、a 分别表示属主、属组、其他用户、所有用户,+、-、=分别表示增加、去除、设置权限,对应的权限字符,3位八进制数,格式2:chmod nnn 文件或目录.,常用命令选项-R:递归修改指定目录下所有文件、子目录的权限,chmod a-x temp,rw-rw-rw-收回所有用户的执行权限,chmod og-w temp,rw-r-r-收回属组用户和其他用户的写权限,chmod g+w temp,chmod u+x temp,chmod go+x temp,rw-rw-r-赋予属组用户写权限,rwx rw-r-赋予文件属主执行权限,rwx rwx r-x 赋予属组用户和其他用户执行权限,权限表示方法,temp:rwxrwxrwx,数字表示法 chmod n1n2n3 filename 参数说明:1.r 对应数值4,w 对应数值2,x 对应数值1 2.rwx合起来就是4+2+1=7,即上边表示为n1 3.rwxrwxrwx表权限全开放的文件,数值777,权限表示方法,例如当属性为-rwxrwx-则是:owner=rwx=4+2+1=7 group=rwx=4+2+1=7 others=-=0+0+0=0例如:要将属性变成-rwxr-xr-rwxr-xr 4+2+14+0+14+0+0=754 所以输入:chmod 754 filename,数字权限表示方法,设置文件/目录的归属,chown命令格式:chown 属主 文件或目录 chown:属组 文件或目录 chown 属主:属组 文件或目录常用命令选项-R:递归修改指定目录下所有文件、子目录的归属,特殊权限,s位,t位,SET位权限主要用途:为可执行(有 x 权限的)文件设置,权限字符为“s”其他用户执行该文件时,将拥有属主或属组用户的权限s位只能加在文件的所有者或组的x位上s位代表当用户执行该文件时,以文件的所有者或文件的组的权限来执行该文件(这时不需要看用户对该文件的身份)SET位权限类型:SUID:表示对属主用户增加SET位权限 SGID:表示对属组内的用户增加SET位权限,rootlocalhost#ls-l/usr/bin/passwd-rwsr-xr-x 1 root root 19876 2006-07-17/usr/bin/passwd,普通用户以root用户的身份,间接更新了shadow文件中自己的密码,应用示例:/usr/bin/passwd,使用附加权限,粘滞位权限(Sticky)主要用途:为公共目录(例如,权限为777的)设置,权限字符为“t”用户不能删除该目录中其他用户的文件应用示例:/tmp、/var/tmp,rootlocalhost#ls-ld/tmp/var/tmpdrwxrwxrwt 8 root root 4096 09-09 15:07/tmpdrwxrwxrwt 2 root root 4096 09-09 07:00/var/tmp,粘滞位标记字符,使用附加权限,设置SET位、粘滞位权限使用权限字符 chmod ugs 可执行文件.chmod ot 目录名.使用权限数字:chmod mnnn 可执行文件.m为4时,对应SUID,2对应SGID,1对应粘滞位,可叠加,实验案例:用户和文件权限管理,需求描述建立用户目录 创建目录/tech/benet、/tech/accp,分别用于不同项目组添加组帐号 添加组帐号benet、accp,GID号分别设置为1001、1002 为技术部添加组帐号tech,GID号设置为200添加用户帐号 benet组的4个用户:jerry、kylin、tsengia、obama其中的kylin用户帐号在2009年8月31日后失效 accp组的2个用户:handy、cucci其中的cucci用户帐号的登录Shell设置为“/bin/ksh”上述所有的用户帐号均要求加入到tech组内,实验案例:用户和文件权限管理,需求描述设置目录权限及归属“/tech”目录的属组设为tech,禁止其他人访问“/tech/benet”目录的属组设为benet,禁止其他人访问“/tech/accp”目录的属组设为accp,禁止其他人访问建立公共数据存储目录“/public”允许技术组内的所有用户读取、写入、执行文件 禁止其他用户读、写、执行,实验案例:用户和文件权限管理,实现思路任务1创建用户目录创建组帐号创建各个用户帐号“-d”选项指定宿主目录“-g”选项指定基本组、“-G”选项指定附加组“-s”选项指定登录Shell程序、“-e”选项指定帐号失效日期 为目录设置用户权限、组权限 为公共可写目录“/public”设置粘滞位,实验案例:用户和文件权限管理,实现思路任务2练习用户管理命令练习文件权限管理命令熟悉用户帐号文件、用户初始配置文件,本章总结,Linux系统是多用户的操作系统用户管理包括登录、权限、口令、用户组的管理。常用管理命令有useradd、userdel、passwd、groupadd、groupdel、groupmod等。用户管理的重要文件包括/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow,增加、删除用户和组,使用groupadd office命令添加一组 使用tail命令查看/etc/group文件,显示刚才添加的office组信息 useradd-G office jack命令添加一个用户office,并设定他属于office用户组使用passwd jack命令为该用户设置登录密码 使用tail命令查看/etc/passwd文件,检查用户的设置,tail命令查看/etc/passwd文件,tail命令查看/etc/group文件,使用groupdel office命令删除office用户组,