Linux用户与权限管理Vi的三种工作模式Vi的基本操作使用Vi进行配置文件的编辑内容回顾Vi的模式三种模式命令模式输入模式末行模式Linux退出vivifile末行模式输入模式命令模式Vi的模式命令模式状态栏编辑区空白区输入模式输入模式标志Vi的模式末行模式末行模式标志Vi的模式Vi的命令命令模式下的操作命令输入模式下的操作命令末行模式下的操作命令掌握用户和组相关的配置文件掌握用户和组管理的方法日常的管理用户和组掌握Linux权限的表示及设置了解Linux文件和目录安全管理原则本章目标用户管理类命令用户管理组管理密码管理用户信息查询引言Linux系统是一个多用户的时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。每个用户账号都拥有一个惟一的用户名和各自的口令。用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。实现用户账号的管理,要完成的工作主要有如下几个方面:1.用户账号的添加、删除与修改。2.用户口令的管理。3.用户组的管理。/etc/passwd用户信息文件用户帐号管理apache:x:48:48:Apache:/var/登录名口令UIDGID别名主目录登录Shell/etc/passwd用户UIDUID用户名65535以后外部应用程序用户500~65535普通用户1~499系统标准用户0超级用户UID:用户独一无二的身份标识/etc/shadow密码文件用户管理命令useradduserdelusermod用户帐号管理useradd:添加帐号Options:-u指定用户的UID。-g指定用户的组,即默认的组-G指定用户所属的其它组-d指定用户宿主目录,即用户登录的起始目录-s指定用户的shell环境-c指定用户的别名eg:useradd–u500–g500–Ggames–d/home/sam–c“sam”–s/bin/bashsam用户帐号管理•Useradd-p,可直接设密码,但必须是密文,形如$1$EaTjv12a$yAYHKjRflqHtqH807o59D0•一般是添加用户后用passwd修改密码感叹号表示未设密码,不可登录•usermod[-LU][-c备注][-d登入目录][-e有效期限][-f缓冲天数][-g群组][-G群组][-l帐号名称][-sshell][-uuid][-p密码][用户帐号]用户组管理/etc/group用户组文件组名:口令:组标识号:组内用户列表1)“组名”是用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复。2)“口令”字段存放的是用户组加密后的口令字。一般Linux系统的用户组都没有口令,即这个字段一般为空,或者是*。3)“组标识号”与用户标识号类似,也是一个整数,被系统内部用来标识组。4)“组内用户列表”是属于这个组的所有用户的列表/b],不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。用户组管理/etc/group用户组文件用户组管理/etc/gshadow用户组密码文件通常不需要设,要是让别人进不来需要设密码。第二栏为密码:如果是“!”或“*”是不让登录用户组管理命令groupaddgroupdelgroupmod用户组管理密码管理passwd用法详解passwd[-dklS][-u-f][用户名称]passwd指令让用户可以更改自己的密码,而系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自己的密码。参数:-d删除密码。本参数仅有系统管理者才能使用。-f强制执行。-k设置只有在密码过期失效后,方能更新。-l锁住密码。-s列出密码的相关信息。本参数仅有系统管理者才能使用。-u解开已上锁的帐号。用户信息查询命令Id--打印出自己的UID以及GID。finger--显示用户信息Groups--查看当前用户都加入了哪些组用户信息查询命令•whoami:确认自己身份•whereis:查询命令所在目录以及帮助文档所在目录•which:查询该命令所在目录(类似whereis)•Who:查看谁在使用系统文件的各项属性文件属性[root@pcroot]#ls-linstall.log-rw-r--r--1rootroot26195Dec1710:42install.log权限引用计数所有者所属组大小创建时间文件名文件类型权限项文件类型读写执行读写执行读写执行字符表示-普通文件d目录文件b块设备文件例如磁盘c表示字符设备文件(r)(w)(x)(r)(w)(x)(r)(w)(x)数字表示421421421权限分配文件所有者u文件所属组用户g其他用户o文件权限(-rw--r--r--)文件权限表示三种基本的访问权限对文件的含义三种基本的访问权限对目录的含义r可以读取文件的内容w可以新增、修改文件内容x可以执行该文件r可以列出目录中的文件、浏览目录内容w可以在该目录中创建、删除、移动文件x可以使用cd命令进入该目录权限的意义权限的意义-rwx------:文件所有者对文件有读取\写入\执行的权限-rwxr--r--:-rw-rw-r-x:Drwxr--r--:drwx------:权限的修改文字表示法—复杂、直观chmod[-cfvR][--help][--version]modefile...mode:权限设定字串,格式如下:[ugoa...][[+-=][rwxX]...][,...],-R递归的改变所有文件及目录参数说明:1.+:增加权限2.-:删除权限3.=:分配权限,同时删除旧的权限权限字符r(读)w(写)x(执行)u(表示该档案的拥有者)g(表示与该档案的拥有者属于同一个群体(group)者)o(表示其他以外的人)a(代表三种用户身份的总和)将档案file1.txt设为全部人皆可读取:chmodugo+rfile1.txt将档案file1.txt设为全部人皆可读取:chmoda+rfile1.txt属组权限=让属主权限g=u减去所有用户执行权限a-x加属主/组的读/写权限,加其他用户读权限ug=rw,o=r为属主添加写入权限u+w含义规则权限表示方法例:chmoda-xtemprw-rw-rw-收回所有用户的执行权限chmodog-wtemprw-r--r--收回属组用户和其他用户的写权限chmodg+wtempchmodu+xtempchmodgo+xtemprw-rw-r--赋予属组用户写权限rwxrw-r--赋予文件属主执行权限rwxrwxr-x赋予属组用户和其他用户执行权限权限表示方法命令的作用数字表示法—更简洁的方法chmodn1n2n3filename参数说明:1.r对应数值4,w对应数值2,x对应数值12.rwx合起来就是4+2+1=7,即上边表示为n13.rwxrwxrwx表权限全开放的文件,数值777权限表示方法文件和目录的安全管理为不同类用户设置不同的权限为不同的文件设置不同的权限慎重设置文件可执行权限拒绝其他用户查看自己的目录列表拒绝其他用户进入自己的目录查找任何人都有写权限的文件和目录异常和隐含文件改变文件/目录的所有权•chown命令更改一个或多个文件的用户所有者。•#chownnew-ownerfiles•new-owner是制定文件的新所有者的名字(或用户id)。例如将文件brass的所有者改为用户harvey,只需要执行以下命令:•#chownharveybrass•大多数系统中,只有超级用户root何以运行chown命令。•如果要改变整个目录树的所有权,可以使用-R参数(R代表递归)。•#chown-Rharvey/home/iago/new/tgh•也可以用以下格式在一次操作中更改用户和组所有者:•#chownnew-owner.new-groupfiles•例如,将/home/t1主目录及其下面所含的所有文件的用户所有者更改为t33并将组其所有者更改为t33:改变文件/目录的所有权无权访问改变文件/目录的所属组•如果只需要更改文件的组所有者,则可以使用chgrp命令:•#chgrpnew-groupfiles•此处的new-group是指定文件的预期组所有者所在组的名称(或组id)。chgrp也支持-R。非root用户要使用chgrp命令更改文件的所有者就必须是:•a)该文件的所有者•b)同时还必须是新组的成员(但并不要求为当前组的成员)本章总结Linux系统是多用户的操作系统用户管理包括登录、权限、口令、用户组的管理。常用管理命令有useradd、userdel、passwd、groupadd、groupdel、groupmod等。用户管理的重要文件包括/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow实验目标掌握Linux用户管理的方法掌握Linux组管理的方法掌握如何查看用户的相关信息修改权限•用useradd添加用户test1、test2•以test1用户名登录xwindow(命令init5),观察/home/test2文件夹显示状态•修改test2权限,使得其对test1可用增加、删除用户和组使用groupaddoffice命令添加一组使用tail命令查看/etc/group文件,显示刚才添加的office组信息useradd-Gofficejack命令添加一个用户office,并设定他属于office用户组使用passwdjack命令为该用户设置登录密码使用tail命令查看/etc/passwd文件,检查用户的设置tail命令查看/etc/passwd文件tail命令查看/etc/group文件使用groupdeloffice命令删除office用户组