• 1. Unix/Linux系统 主讲教师:王宇宾 学时:36
  • 2. 第10章 用户管理本章主要介绍Linux中的用户和组管理 分为修改配置文件、命令行、图形界面等方式。重点掌握用命令行进行用户管理的方法。
  • 3. 10.1 什么是用户账户Linux是多用户多任务系统。 每个用户包括一个唯一的用户名和一个id,系统根据用户id来区别不同的用户。 用户名主要为方便使用者记忆,而系统则主要根据一个32位的用户id(uid)来管理用户、文件、进程等。 用户名和uid的对应关系存放在配置文件中。
  • 4. 10.2 root账户系统管理员是系统中的特殊用户——超级用户(根用户)。 根用户对Linux系统的所有部分都具有不受限制的访问权限。 因此一定要保护好root账户。
  • 5. 扩展:三种类型的用户根用户:也叫超级用户、系统管理员。在系统上具有完全权限。Uid为0。 系统用户:保留给系统以及某些服务的用户,一般没有登录shell。Uid范围1~499。 普通用户:使用系统的真实用户人群。通常以/bin/bash作为登录shell,以/home/username作为主目录。Uid范围>=500(200~232-1).
  • 6. 10.3管理用户和组群Linux中的用户管理主要是通过相关配置文件完成的。 主要配置文件有:/etc/passwd,/etc/shadow,/etc/group,/etc/gshadow。 其他配置文件有:/etc/default/useradd,/etc/skel,/etc/login.defs
  • 7. /etc/passwd文件每个用户在/etc/passwd文件中都有一个对应的项目,记录了该用户的主要信息。 passwd文件中每行定义一个用户账号,一行中又划分为多个字段定义用户的账号的不同属性,各字段用“:”隔开。
  • 8. /etc/passwd文件Passwd文件各字段的含义如下: Username:用户名 Password:用户密码,一般为“X”,因为/etc/passwd文件权限较低,任何人都能看。因此将密码记录在了/etc/shadow文件中,而此处只写一个“X”。
  • 9. /etc/passwd文件User ID:用户编号,系统靠该ID号识别用户,而非依靠用户名。 Group ID:用户组编号。 Comment:用户的说明信息。 Home Directory:用户主目录(登录子目录) Login shell:用户登录后运行的shell。一般是/bin/bash。
  • 10. /etc/passwd文件例如,根用户root在/etc/passwd文件中的设置为: root:x:0:0:root:/root:/bin/bash。 表示root的UID和GID都为0,其主目录在/root,登陆后的shell为/bin/bash。 其中UID为0表示超级用户。
  • 11. /etc/passwd文件再比如,test用户对应的行为: test:X:500:500 :just a test:/home/test:/bin/bash表示test用户的uid和gid都是500,用户说明是just a test,主目录是/home/test,登录shell是/bin/bash
  • 12. /etc/shadow文件 /etc/shadow文件记录加密过的用户密码及与密码相关的其他信息,各字段含义如下。 用户名称 密码:经过加密,如果开头的字母是*或!则该用户无法登陆。 最近更改密码的日期:从1970年1月1日计算 密码不可更改的天数:0表示不限制,可以随时更改 密码需要重新更改的天数:99999表示不需要更改 密码更改期限前的警告期限 密码过期的宽限时间 帐号失效日期:以1970年以来的天数设置,到时后,帐号就不能再使用了。 保留
  • 13. /etc/group文件该文件记录组信息。各字段含义如下。 组名称 组密码:一般不设置,如果有的话也记录在/etc/gshadow文件中,此处只显示“X”。 GID:是系统区分不同组的ID,在/etc/passwd域中的GID域是用这个数来指定用户的缺省组。 属于该组的用户名。注意,只列出将这个组作为附加组的用户
  • 14. 扩展:主要组与次要组组缺省组:每个用户都有一个主要组,即在/etc/passwd文件的第四个字段中定义的组。也称为缺省组、初始组。 附加组:出了缺省组之外,用户还可以根据需要加入其他组,这些组被称为次要组。也称为附加组。
  • 15. 用户组口令文件:/etc/gshadowgshadow文件用于定义用户组口令、组管理员等信息,该文件只有root用户可以读取。gshadow文件中每行定义一个用户组信息,行中各字段间用“:”分隔, Groupname:用户组名称,该字段与group文件中的组名称对应。 Encrypted password:用户组口令,该字段用于保存已加密的口令 Group administrators:组管理员账号,管理员有权对该组添加删除账号。 Group members:该组的用户成员列表,列表中多个用户间用“,” 分隔。
  • 16. 其他配置文件/etc/default/useradd文件记录添加用户时的一些默认设置,如主目录,shell,skel等。 /etc/skel目录下存放的是创建用户主目录时的参考文件。 /etc/login.defs文件记录了有关用户邮件地址、UID和GID的范围以及添加用户时是否创建用户主目录的默认值等。
  • 17. 10.4 命令行配置通过命令行管理用户主要包括添加用户、删除用户、修改用户信息、添加组、删除组、修改组信息,设置密码、切换组身份、切换用户身份等。
  • 18. 1. 增加用户在命令行下使用 useradd 命令: # useradd 选项 用户名 该命令做了下面几件事: 1)在 /etc/passwd 和/etc/shadow文件中各添加了一行记录; 2)新建和用户名同名的用户组,并且在/etc/group和/etc/gshadow文件中各添加了一条记录; 3)在 /home 目录下创建新用户的主目录,但需要再用 passwd 命令为其设置口令后,才能登录。用户的 UID 和 GID 是 useradd 自动选取的,它是将 /etc/passwd 文件中的 UID 加 1,将 /etc/group 文件中的 GID 加 1。
  • 19. 1. 增加用户 useradd命令的参数如下: -c comment:用户注释 -d dir:用来取代默认的主目录/home/user -e date:禁用帐号的日期YYYY-MM-DD -f days:密码过期后的宽限时间 -g groupname:用户的默认组群(修改/etc/passwd文件) -G grouplist:将用户加入其他组(修改/etc/group文件)
  • 20. 1. 增加用户-m 强制建立主目录 -M 强制不建立主目录 -r 建立一个UID小于500的不带主目录系统帐号。 -p password 使用加密的口令。一般不使用,后面使用passwd命令更改口令。 -s shell 用户的登录shell -u uid 指定用户的UID
  • 21. 修改密码格式为:passwd [username] 普通用户修改自己的密码,直接输入passwd,要求输入的新密码必须符合一定要求,如不能与帐号相同,尽量不出现字典中的字符等。 root用户修改其他用户的密码。如刚用useradd命令添加的用户就必须先修改密码后才能登录。此时不要求上述密码验证。
  • 22. 删除用户格式为userdel [–r] username -r 参数表示把用户的主目录也同时删除。 删除用户时仅修改相关配置文件,如/etc/passwd,/etc/shadow以及/home/username,但该用户在其他目录建立的文件不会删除,因此最好先用 find / –user username查找所有属于该用户的文件,并删除。然后再删除用户。
  • 23. 修改用户属性格式为:usermod 选项 username。 其参数中,c,d,e,g,G,s,u与useradd命令中的参数含义一致。 -l 修改帐号名称 -L 冻结用户,使其无法登录 -U 解冻用户
  • 24. 添加组Groupadd 选项 groupname -g 指定GID -r 建立系统组
  • 25. 删除组groupdel groupname 如果某个组是用户的主要组,则无法删除。
  • 26. 修改组信息groupmod 选项 groupname -g 指定GID -n 修改用户组名 如将test1组的名字修改为teacher的命令为: groupmod –n teacher test1
  • 27. 其他命令finger username 查看用户信息 id username 查看用户UID/GID信息 groups 查看当前用户所属组的信息 newgrp groupname 切换当前用户的有效组为指定的groupname,该用户必须属于该组 su [username] 切换用户身份,不加username则为切换到root,需要输入密码。 newgrp和su命令都是打开新的shell切换身份,用exit命令注销当前身份。
  • 28. 10.5 用户管理器配置选择:主菜单->系统设置->用户和组群可以打开GNOME中的图形化用户管理工具。 在用户管理器中可以进行添加用户、删除用户、修改用户、添加组、删除组、修改组等操作。 实际上也是修改相关配置文件,与命令方式类似。
  • 29. 实验内容注意:以下每步完成后都应该查看/etc/passwd,/etc/shadow,/etc/group 不加参数建立用户test,修改其密码为testtest,试着登录。 修改test用户的用户名和组名为student。 添加组teacher。 添加用户teacher,同时将其加入teacher组
  • 30. 实验内容修改teacher组的名字为temp 修改teacher用户,用户名为temp,初始组为student,同时加入temp组 用temp用户登录,建temp1.txt文件。用groups命令查看组信息后,切换有效组为temp,并建立temp2.txt。查看两个文件的信息,他们的用户信息和组信息一样吗?最后注销temp组身份
  • 31. 实验内容试着把用户身份切换到student和root? 试着删除student组,能删除吗?应该怎么删除? 删除刚才建立的所有用户和组。 有时间的话,在图形界面中重复上述实验。