资源描述
1Vi的三种工作模式Vi的基本操作使用Vi进行配置文件的编辑内容回顾2Vi的模式三种模式命令模式输入模式末行模式Linux退出退出vivi file末行模式末行模式输入模式输入模式转转义义命命令令按按Esc键键文文本本输输入入命命令令执执行行完完毕毕或或按按Esc键键命令模式命令模式3Vi的模式命令模式状态栏状态栏状态栏状态栏编辑区编辑区编辑区编辑区空白区空白区空白区空白区4输入模式输入模式标志输入模式标志输入模式标志输入模式标志Vi的模式5末行模式末行模式标志末行模式标志末行模式标志末行模式标志Vi的模式6Vi的命令命令模式下的操作命令输入模式下的操作命令末行模式下的操作命令7掌握用户和组相关的配置文件掌握用户和组管理的方法日常的管理用户和组掌握Linux权限的表示及设置了解Linux文件和目录安全管理原则本章目标8用户管理类命令用户管理组管理密码管理用户信息查询9引言Linux系统是一个多用户的时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。每个用户账号都拥有一个惟一的用户名和各自的口令。用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。实现用户账号的管理,要完成的工作主要有如下几个方面:1.用户账号的添加、删除与修改。2.用户口令的管理。3.用户组的管理。10用户和组帐号概述Linux基于用户身份对资源访问进行控制用户帐号:超级用户root 普通用户 程序用户组帐号:基本组(私有组)附加组(公共组)UID和GID:UID(User Identity,用户标识号)GID(Group Identify,组标识号)11/etc/passwd用户信息文件用户帐号管理12用户帐号文件 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/bashpp 字段字段1 1:用户帐号的名称:用户帐号的名称pp 字段字段2 2:用户密码字串或者密码占位符:用户密码字串或者密码占位符“x x”pp 字段字段3 3:用户帐号的:用户帐号的UIDUID号号pp 字段字段4 4:所属基本组帐号的:所属基本组帐号的GIDGID号号pp 字段字段5 5:用户全名:用户全名pp 字段字段6 6:宿主目录:宿主目录pp 字段字段7 7:登录:登录ShellShell信息信息13apache:x:48:48:Apache:/var/www:/bin/bash登录名登录名口令口令UIDGID别名别名主目录主目录登录登录Shell/etc/passwd14用户UID UID用户名65535以后外部应用程序用户50065535普通用户1499系统标准用户0超级用户UID:用户独一无二的身份标识15/etc/shadow密码文件16用户帐号文件 shadow用于保存密码字串、密码有效期等信息文件位置:/etc/shadow每一行对应一个用户的密码记录rootlocalhost#tail-2/etc/shadowsabayon:!:14495:0:99999:7:mary:$1$po/zD0XK$4HSh/Aeae/eJ6dNj1k7Oz1:14495:0:99999:7:pp 字段字段1 1:用户帐号的名称:用户帐号的名称pp 字段字段2 2:加密的密码字串信息:加密的密码字串信息pp 字段字段3 3:上次修改密码的时间:上次修改密码的时间pp 字段字段4 4:指的是两次修改口令之间所需的最小天数,:指的是两次修改口令之间所需的最小天数,0 0为不作要求为不作要求pp 字段字段5 5:密码的最长有效天数,默认值为:密码的最长有效天数,默认值为9999999999pp 字段字段6 6:提前多少天警告用户口令将过期,默认值为:提前多少天警告用户口令将过期,默认值为7 7pp 字段字段7 7:在密码过期之后多少天禁用此用户:在密码过期之后多少天禁用此用户pp 字段字段8 8:帐号失效时间,默认值为空:帐号失效时间,默认值为空pp 字段字段9 9:保留字段(未使用):保留字段(未使用)17用户管理命令useradduserdelusermod用户帐号管理18添加用户帐号useradd命令格式:useradd 选项.用户名常用命令选项-u:指定 UID 标记号-d:指定宿主目录,缺省为/home/用户名-e:指定帐号失效时间-g:指定用户的基本组名(或UID号)-G:指定用户的附加组名(或GID号)-M:不为用户建立并初始化宿主目录-s:指定用户的登录Shell19用户帐号的初始配置文件文件来源新建用户帐号时,从/etc/skel 目录中复制而来主要的用户初始配置文件/.bash_profile:用户每次登录时执行/.bashrc:每次进入新的Bash环境时执行/.bash_logout:用户每次退出登录时执行全局初始配置文件全局初始配置文件/etc/bashrc/etc/bashrc/erc/profile/erc/profilerootlocalhost#cat/.bashrcalias rm=rm-ialias cp=cp-ialias mv=mv-i20设置/更改用户口令passwd命令格式:passwd 选项.用户名常用命令选项-d:清空用户的密码,使之无需密码即可登录-l:锁定用户帐号-S:查看用户帐号的状态(是否被锁定)-u:解锁用户帐号21修改用户帐号的属性usermod命令格式:usermod 选项.用户名常用命令选项-l:更改用户帐号的登录名称-L:锁定用户账户-U:解锁用户账户以下选项与useradd命令中的含义相同-u、-d、-e、-g、-G、-s22usermod选项用户名用户帐号管理1.usermod-uuidusername修改用户的UID2.usermod-ggidusername修改用户的GID3.usermod-lnewnameoldname修改用户名4.usermod-Ggroupnameusername添加用户到组5.usermod-Lusername锁定用户6.usermod-Uusername解除锁定23删除用户帐号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/:没有那个文件或目录删除用户帐号删除用户帐号stu0124userdel-rusername-r:将该账号的homedirectory与/var/spool/mail/username一并删除。eg:userdel-rsam用户帐号管理注意:一般而言,如果该账号只是暂时不启用的话,那么将/etc/shadow 里头最后倒数一个字段设定为 0 就可以让该账号无法使用,但是所有跟该账号相关的数据都会留下来!使用 userdel 的时机通常是你真的确定不要让该用户在主机上面使用任何数据了!25组帐号文件 group、gshadow与用户帐号文件相类似/etc/group:保存组帐号基本信息/etc/gshadow:保存组帐号的密码信息rootlocalhost#grep adm/etc/groupsys:x:3:root,bin,admadm:x:4:root,adm,daemon组帐号名组帐号名 组成员列表组成员列表26用户组管理/etc/group用户组文件27用户组管理/etc/gshadow用户组密码文件28用户组管理命令groupaddgroupdelgroupmod用户组管理29 groupadd-g GID 用户组 -g GID 指定新用户组的组标识(GID)用户组管理groupdel 用户组groupmod-g GID-n 用户组-g GID 为用户组指定新的组标识号 -n新用户组 将用户组的名字改为新名字例如:将组名为group2修改为group3。groupmod-ngroup3group230添加组帐号groupadd命令格式:groupadd -g GID 组帐号名rootlocalhost#groupadd-g 1000 marketrootlocalhost#tail-1/etc/groupmarket:x:1000:添加组帐号添加组帐号market31添加、删除组成员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删除组成员删除组成员root32删除组帐号groupdel命令格式:groupdel 组帐号名rootlocalhost#groupdel marketrootlocalhost#grep market/etc/grouprootlocalhost#删除组帐号删除组帐号market33用户和组帐号查询id命令用途:查询用户身份标识格式:id 用户名groups命令用途:查询用户所属的组格式:groups 用户名finger命令用途:查询用户帐号的详细信息格式:finger -l 用户名users、w、who命令用途:查询已登录到主机的用户信息34图形化的用户和组管理工具打开方式“系统”“管理”“用户和组群”按Alt+F2键后,运行“system-config-users”35小结请思考:主要有哪两个用户帐号文件,各有什么作用?如何锁定、解锁用户帐号?在添加用户帐号时,如何设置其失效时间?用户初始配置文件包括哪些,各有什么作用?如何设置一个组的多个用户成员?36手工添加帐户先建立所需要的群组(vi/etc/group)建立账号的各个属性(vi/etc/passwd)将passwd与shadow同步化(/usr/sbin/pwconv)建立该账号的密码(passwdacount)建立使用者家目录(cp-r/etc/skel/home/acount)更改家目录属性(chown-Racount:group/home/acount)37建立新的群组 test,设其 GID 为 520 roottest/root#vi/etc/group-略test:x:520:test=新增群组,且群组的人为test,GID为520建立test的各个属性roottest/root#vi/etc/passwd-略test:x:520:520:testingaccount:/home/test:/bin/bash=建立各个属性同步化/etc/passwd与/etc/shadowroottest/root#pwconv=将passwd的资料转入/etc/shadow中!建立密码roottest/root#passwdtest=建立使用者test密码ChangingpasswordforusertestNewpassword:Retypenewpassword:passwd:allauthenticationtokensupdatedsuccessfully建立家目录并转化家目录的拥有者roottest/root#cp-r/etc/skel/home/testroottest/root#chown-Rtest:test/home/test手工添加test帐户38添加和删除用户对每位Linux系统管理员都是轻而易举的事,比较棘手的是如果要添加几十个、上百个甚至上千个用户时,我们不太可能还使用useradd一个一个地添加,必然要找一种简便的创建大量用户的方法。问题:如何添加大量用户?1、viuser.txt2、newusersuser.txt3、pwunconv4、vipasswd.txt5、chpasswdpasswd.txt6、pwconv思考?39文件/目录的权限和归属访问权限读取:允许查看文件内容、显示目录列表写入:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录可执行:允许运行程序、切换目录归属(所有权)属主:拥有该文件或目录的用户帐号属组:拥有该文件或目录的组帐号40查看文件/目录的权限和归属rw-r-r-420400400644权限项权限项读读写写执行执行读读写写执行执行读读写写执行执行字符表示字符表示rwxrwxrwx数字表示数字表示421421421权限分配权限分配文件所有者文件所有者文件所属组文件所属组其他用户其他用户 rootlocalhost#ls-l install.log -rw-r-r-1 root root 34298 04-02 00:23 install.log文件类型文件类型属组属组属主属主访问权限访问权限41设置文件/目录的权限chmod命令格式1:chmod ugoa +-=rwx 文件或目录.u u、g g、o o、a a 分别表示分别表示属主、属组、其他用户、所有用户属主、属组、其他用户、所有用户+、-、=分别表示分别表示增加、去除、设置权限增加、去除、设置权限对应的权限字符对应的权限字符3 3位八进制数位八进制数格式格式2 2:chmod nnn chmod nnn 文件或目录文件或目录.常用命令选项常用命令选项-R-R:递归修改指定目录下所有文件、子目录的权限递归修改指定目录下所有文件、子目录的权限42chmoda-xtemprw-rw-rw-收回所有用户的执行权限chmodog-wtemp rw-r-r-收回属组用户和其他用户的写权限chmodg+wtempchmodu+xtempchmodgo+xtemprw-rw-r-赋予属组用户写权限rwxrw-r-赋予文件属主执行权限rwxrwxr-x赋予属组用户和其他用户执行权限权限表示方法temp:rwxrwxrwx43数字表示法chmodn1n2n3filename参数说明:1.r对应数值4,w对应数值2,x对应数值12.rwx合起来就是4+2+1=7,即上边表示为n13.rwxrwxrwx表权限全开放的文件,数值777权限表示方法44例如当属性为-rwxrwx-则是:owner=rwx=4+2+1=7group=rwx=4+2+1=7others=-=0+0+0=0例如:要将属性变成-rwxr-xr-rwxr-xr 4+2+14+0+14+0+0=754 所以输入:chmod 754 filename 数字权限表示方法45设置文件/目录的归属chown命令格式:chown 属主 文件或目录 chown :属组 文件或目录 chown 属主:属组 文件或目录常用命令选项-R:递归修改指定目录下所有文件、子目录的归属46特殊权限,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/usr/bin/passwd47使用附加权限粘滞位权限(Sticky)主要用途:为公共目录(例如,权限为777的)设置,权限字符为“t”用户不能删除该目录中其他用户的文件应用示例:/tmp、/var/tmprootlocalhost#ls -ld /tmp /var/tmpdrwxrwxrwt 8 root root 4096 09-09 15:07/tmpdrwxrwxrwt 2 root root 4096 09-09 07:00/var/tmp粘滞位标记字符粘滞位标记字符48使用附加权限设置SET位、粘滞位权限使用权限字符 chmod ugs 可执行文件.chmod ot 目录名.使用权限数字:chmod mnnn 可执行文件.m为4时,对应SUID,2对应SGID,1对应粘滞位,可叠加49实验案例:用户和文件权限管理需求描述建立用户目录 创建目录/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组内50实验案例:用户和文件权限管理需求描述设置目录权限及归属“/tech”目录的属组设为tech,禁止其他人访问“/tech/benet”目录的属组设为benet,禁止其他人访问“/tech/accp”目录的属组设为accp,禁止其他人访问建立公共数据存储目录“/public”允许技术组内的所有用户读取、写入、执行文件 禁止其他用户读、写、执行51实验案例:用户和文件权限管理实现思路任务1创建用户目录创建组帐号创建各个用户帐号“-d”选项指定宿主目录“-g”选项指定基本组、“-G”选项指定附加组“-s”选项指定登录Shell程序、“-e”选项指定帐号失效日期 为目录设置用户权限、组权限 为公共可写目录“/public”设置粘滞位52实验案例:用户和文件权限管理实现思路任务2练习用户管理命令练习文件权限管理命令熟悉用户帐号文件、用户初始配置文件53本章总结Linux系统是多用户的操作系统用户管理包括登录、权限、口令、用户组的管理。常用管理命令有useradd、userdel、passwd、groupadd、groupdel、groupmod等。用户管理的重要文件包括/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow54增加、删除用户和组使用groupaddoffice命令添加一组使用tail命令查看/etc/group文件,显示刚才添加的office组信息useradd-Gofficejack命令添加一个用户office,并设定他属于office用户组使用passwdjack命令为该用户设置登录密码使用tail命令查看/etc/passwd文件,检查用户的设置55tail命令查看/etc/passwd文件56tail命令查看/etc/group文件 使用groupdeloffice命令删除office用户组
展开阅读全文