目录
前言
Linux中我们该如何对用户进行创建和管理,又该如何为用户提供不同的权限呢?
1.用户账号和组账号概述
用户账号:超级账号、普通用户、程序用户
组账号
基本组(私有组):基本组账号只有一个,一般为创建用户时指定的组
附加组(共有组):用户除了基本组以外,额外添加指定的组
UID和GID
UID(User IDentity,用户标识号)
GID(Group IDentify,组识别号)
2.用户账号文件/etc/passwd
保护用户名称、宿主目录、登录Shell等基本信息
文件位置:/etc/passwd
基于系统运行和管理需要,所有用户都可以访问passwd文件中的内容,但是只有root用户才能进
更改。
root:x:0:0:root:/root:/bin/bash
字段1:用户账号的名称,也是登录系统时使用的识别名称。
字段2:经过加密的用户密码字串,或者密码占位符“x”。
字段3:用户账号的 UID 号。
字段4:所属基本组账号的 GID 号。
字段5:用户全名,可填写与用户相关的说明信息。
字段6:宿主目录,即该用户登录后所在的默认工作目录。
字段7:登录shell信息(/bin/bash为可登录系统,/sbin/nologin和/bin/false禁止登录)
3.用户账号文件/etc/shadow(影子文件)
保存用户的密码、账号有效期等信息
文件位置:/etc/shadow
每一行对应一个用户的密码记录
/etc/shadow 文件只有 root 用户拥有读权限,其他用户没有任何权限,这样就保证了用户密码的
全性。
和 /etc/passwd 文件一样,文件中每行代表一个用户,同样使用 ":" 作为分隔符,不同之
在于,每行用户信息被划分为 9 个字段。
例:root:6 66OCeIAPA/PC1p.5pO$s4wrvo4Wgrz5IbiZfjTh.3f6ddu.eQYnFhd2idwBeLz8xzet6sD
jj9/n/U/::0:99999:7:::
字段1:账户名
字段2:存放真正加密的密码,采用SHA512散列算法,更加安全(!!和*表示没有密码不能登陆,新创建用户也是!!,如果密码前面显示双感叹号表示该账户被锁定了)
字段3:上一次修改密码的时间,从1970年1月1日开始算的,因为1970年是linux的诞生日,date -d "1970-01-01 15775 days"可以查看哪一天改过
字段4:多久之后才可以修改密码,如果是 0,则密码可以随时修改
字段5:密码有效期,默认99999,表示永久生效
字段6:密码到期前的第几天发出告警信息,默认是7天,每次登录系统都会向该账户发出 "修改密码" 的警告信息
字段7:密码过期的宽限天数,过期后的几天还是可以登陆的,如果过了宽限天数,系统将不再让此账户登陆,也不会提示账户过期,是完全禁用
字段8:账号失效时间,使用自 1970 年 1 月 1 日以来的总天数作为账户的失效时间
字段9:保留,未使用
4.添加用户账户useradd
useradd [选项] 用户名
-u:指定用户UID号,要求改UID号未被其他用户使用
-d:指定用户的宿主目录位置(与-M一起使用时,不生效)
-e:指定用户的账户失效时间,可使用YYYY-MM-DD的日期格式
-g:指定用户的基本组名(或使用GID号)
-G:指定用户的附加组名(或使用GID号)
-M:不建立宿主目录,即使/etc/login.defs系统配置中已设定要建立宿主目录
-s:指定用户的登录Shell
5.设置/更改用户口令passwd
passwd [选项] 用户名
-d :清除指定用户密码
-l:锁定用户
-S:查看用户状态
-u:解锁用户
6.修改用户账号的属性usermod
usermod [选项] 用户名
-l:更改用户账号的登录名称
-L:锁定用户账户
-U:解锁用户目录
以下选项与useradd命令中的含义相同
-u、-d、-e、-g、-G、-s
7.删除用户账号userdel
userdel -r 用户名
-r选项表示连用户的宿主目录一并删除