文章目录
前言
Liunx系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。
实现用户账号的管理,要完成的工作主要有如下几个方面:
- 用户的账号添加、删除与修改
- 用户口令的管理
- 用户组的管理
一、用户及用户组存在的意义
1. 用户存在的意义
系统资源是有限的,如何合理分配系统资源? 在这个问题解决时必须要有资源配合
- 身份 account
- 授权 author
- 认证 auth
3A机制,3A机制组成系统中最底层的安全架构
2. 用户组存在的意义
用户组是一个逻辑容器 ,对一类用户进行归类和统一授权
二、用户及用户组在系统中的存在方式
1. 用户的存在方式
linux系统中的每个用户都在/etc/passwd文件中有一个对应的记录行,它记录了这个用户的一些基本属性。该文件对所有用户都是可读的
2. 用户组存在的方式
用户分组是Linux系统对用户进行管理及控制访问权限的一种手段。每个用户都属于某个用户组;一个组可以有多个用户,一个用户也可以属于不同的组。
用户组的所有信息都存放在/etc/group文件中。
三、用户切换
1.用户查看
whoami 查看当前用户
id 选项 用户名 查看指定用户的id信息
选项如下:
-
-u 查看用户的用户id
-
-g 查看用户主组id
-
-G 查看用户所有的组的id
-
-n 显示名称
2.用户切换
su - username 切换用户身份及环境
- 如果root ----> commonuser 不需要后者密码
- commonuser ----> root 需要密码
- commonuser ----> commonuser 需要密码
gnome-session-quit --force 图形界面上的用户切换
四、用户涉及到的系统配置文件
/etc/passwd 用户身份信息文件
格式: 用户名称 : 用户密码 用户id :用户主组id : 用户说明:用户家目录 :用户默认shell
/etc/group 组身份信息文件
格式:组名称 :组密码 :组id :组的附加成员
- /etc/skel/.* 用户环境配置文件模板
- /etc/shadow 用户认证信息文件
- /home/username 用户家目录
五、用户和用户组建立及删除
watch命令
watch -n 1 “tail -n 4 /etc/passwd /etc/group;ls -l / home” 监控/etc/passwd后四行和显示/home文件,一秒执行一次
1. 用户的建立
useradd 用户名 创建用户
useradd 选项 用户名
常用选项如下:
- useradd -u id username 指定 id
- useradd -g id username 指定 主组id
- useradd -G id username 指定 附加组id
- useradd -d dir username 指定 用户家目录
- useradd -M username 不创建用户家目录
- useradd -c word username 指定 用户说明
- useradd -s shell username 指定 用户登录shell
其中uid 的范围是 0到2的16次幂=0-65535
0 表示超级用户
1-200 系统预留id
201-999 系统用户
1000-60000 用户级用户
2. 用户的删除
userdel –r username 用户删除 ( -r 表示删除用户信息及系统配置文件)
3. 用户组的建立
groupadd groupname 用户组的建立
groupadd -g id groupname 建立 指定组id 的用户组
4. 用户组的删除
groupdel groupname 用户组删除
六、修改用户和用户组的信息
1. 修改用户信息
根据实际情况更改用户的有关属性,如用户号、主目录、登录shell等。
usermod 选项 用户名 修改用户信息
常用选项如下:
-
-l 更改用户名称
-
-u 更改用户id
-
-g 更改主组id
-
-G 更改用户附加组身份
-
-aG 添加用户附加组身份
-
-c 更改用户说明
-
-d 更改家目录指向
-
-md 更改家目录指向同时更改家目录名称
-
-s 更改默认shell
-
-L 冻结账号
-
-U 解锁
2. 修改用户组的信息
修改用户组的信息实际上就是对/etc/group文件的更新,使用groupmod命令。
groupmod 选项 用户组
常用选项有:
- -g GID 为用户组指定新的组标识号。
- -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
- -n新用户组 将用户组的名字改为新名字
七、用户认证信息管理
/etc/shadow解析:/etc/shadow是用户数数据库,其中的域给出了用户名、加密口令和用户的其他信息。
格式:
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
- 账户名称
- 加密后的密码,如果这一栏的第一个字符为!或者*的话,说明这是一个不能登录的账户,从上面可以看出,ubuntu默认的就不启用root账户。
- 最近改动密码的日期。
- 密码不可被变更的天数:设置了这个值,则表示从变更密码的日期算起,多少天内无法再次修改密码,如果是0的话,则没有限制
- 密码需要重新变更的天数:如果为99999则没有限制
- 密码过期预警天数
- 密码过期的宽恕时间:如果在5中设置的日期过后,用户仍然没有修改密码,则该用户还可以继续使用的天数
- 账号失效日期,过了这个日期账号就无法使用
- 保留的
举例:
letuknowit:1cPf/cIvr$sCws95uSip2ljTK052DDB.:15400:5:60:7:2:15490:
- 用户letuknowit最近一次修改密码的日期是2012年3月1日
- 在2012年3月6日之前不能再改动密码了
- 在2012-3-1到2012-4-29期间letuknowit需要更改密码
- 在2012-4-29之前的7天,letuknowit登陆系统的时候,系统会提示letuknowit其密码即将过期
- 如果letuknowit一直到2012-4-29都没有修改密码,则其仍然可以继续使用该账户2天,2天后该账户将不可用
- 无论如何,到了2012年5月29日,该账号都将失效
1. 用户口令管理
用户管理的一项重要的内容就是用户口令的管理。指定和修改用户口令的shell命令是passwd。超级用户可以为自己和其他用户指定口令(为普通用户指定口令,无需原口令),普通用户只能修改自己的口令。
passwd 选项 用户名
常用选项:
- -l 锁定口令,即禁用账号
- -u 口令解锁
- -d 使账号无口令
- -e 强制改密码
- -n 最短有效期
- -x 最长有效期
- -i 非活跃天数
- -w 警告天数
- -f 强迫用户下次登录时修改口令
- -S 查看密码状态
chage 选项 username
常用选项:
- -d 设定最后一次修改密码天数为0
- -m 最短有效期
- -M 最长有效期
- -I 非活跃天数
- -W 警告天数
- E “YYYY-MM-DD" 账号到期时间
2.超级用户更改密码
passwd username 修改用户密码(必须使用超级用户身份)
3. 普通用户更改密码
passwd
八、用户权力的下放
在系统中普通用户时无法执行系统管理命令的,如果需要普通用户执行系统管理动作那么需要: root用户来进行授权。
-
权力配置文件:/etc/sudoers
-
授权的方法:
用超级用户执行visudo命令进入编辑/etc/sudoers模式
例:
westosadmin ansible.westos.com=(root) /usr/sbin/useradd
解释: westosadmin这个用户能在nsible.westos.com这台主机上,以超级用户的身份执行/usr/sbin/useradd
被授权的用户使用sudo命令,执行被授权的命令。
sudo 被授权的命令
九、练习总汇
在系统中完成一下用户操作:
1.建立用户组shengchan,caiwu,jishu并满足以下要求
- shengchan组id为8000
- caiwu组id为8001
- jishu组id为8002
2.建立westos,linux,lee,westosadmin等用户完成以下要求
- westos用户的附加组为shengchan和jishu
- lee的主组为caiwu,附加组为jishu,lee的uid和gid一致
- linux为系统账号不能直接被操作者使用
useradd -M -s /bin/nologin linux
- westosadmin用户不属于以上三个部门,但是可以在系统中自由的管理用户
useradd -u 0 -g 0 westosadmin
3.备注
-
以上用户密码均为westos,并要求用户首次登陆强制修改密码
-
设定以上用户密码必须在30天内进行修改,并在过期前2天发出警告