用户分配ID
uid 为0的帐户 为管理员帐户
用户的uid保存在 /etc/passwd 文件当中
用户信息文件: /etc/passwd
[root@server0 ~]# cat /etc/passwd | grep student
student:x:1000:1000:Student User:/home/student:/bin/bash
student 表示用户名
x 表示是否认证
1000 表示UID(所在用户的编号)
1000 表示GID(所在组的编号)
Student User 表示用户的描述信息
/home/student 表示用户所在的家目录
/bin/bash 表示shell环境
用户的密码文件:/etc/shadow
[root@server0 ~]# cat /etc/shadow | grep student
student:$6$8oIjLCsc$/n1iQXYh1E6.uOEuJKgioqAtmqm2TQmkJGF2RwyteIr1tIfrPdiRYgWe6Sjen5/eMij2uHM/a1tue/QRlo3X80:16442:0:99999:7:::
student 表示用户名
$6$8oIjLCsc$/n1iQXYh1E6.uOEuJKgioqAtmqm2TQmkJGF2RwyteIr1tIfrPdiRYgWe6Sjen5/eMij2uHM/a1tue/QRlo3X80 表示密码
16442 表示密码创建的天数 (从1970.1.1算起)
0 表示最小有效期
99999 表示最大有效期
7 表示过期前7天提醒
什么是组?
多个用户的一个集合
组的信息保存在 /etc/group
组分为两种类型:
1) 主要组
每一个用户都有一个主要组;
本地用户的主组用GID表示,可以/etc/passwd文件当中看到用户的主组;
通常情况下,用户创建文件的属组是由主组所有;
通常情况下,创建一个用户时,用户的UID和GID相同;
创建用户时,系统会同时创建一个相同名字的主组;
用户不能从主组当中被删除;
2) 附加组
用户可能是0个或多个附加组成员;
用户可以被附加组删除;
一个用户可以属于多个附加组,但是只能属于一个主组;
查看附加组的信息,可以在/etc/group当中查看;
附加组有助于用户访问系统上的其它资源;
root 超级管理员
安装软件\删除软件\创建用户...必须要用管理员权限
su 用户切换
[student@server0 ~]$ su - root
- 用于切换用户环境
sudo 提升用户的权限
允许管理员让普通用户执行一些或全部的root命令的工具;
要使用sudo,必须先设置授权;
sudo授权的方法:
1)visudo
2)vim /etc/sudoers
[student@server0 ~]$ sudo -l 查看sudo授权
sudo 的密码有效期默认为 5分钟
[student@server0 ~]$ sudo -k
chang normol user mod
visudo
管理本地用户和组
1. useradd 创建用户
-c, 指定备注信息
-d, 指定家目录
-e, 指定帐户的失效日期
-g, 指定主组ID
-G, 指定附加组的ID
-M, 不创建家目录
-s, 指定用户的shell 一般情况下,M和s合用
-u, 指定UID
[root@server0 ~]# useradd -c "this user is not root" user3
创建用户以后,必须要为用户设置密码,用户才生效;
/etc/skel/ 是家目录的模版
[root@server0 ~]# useradd -Ms /sbin/nologin user12
2. usermod 修改帐户信息
-g 修改主组id
-G 修改附加组id
-d 修改用户家目录
-m 移动家目录到新的目录 m和d合用
-s 修改shell
-l 修改登录名
-L 锁定
-u 修改UID
-U 解锁
[root@server0 /]# usermod -md /home/u1 u1
3. userdel删除用户信息
-r 删除用户的所有信息(家目录/邮箱信息)
-z 删除所有SELinux用户映射
4. 用户的默认策略:
/etc/login.defs
如果修改此文件的内容,以后创建的新用户所有策略会按此文件设备策略
5. chage 更改用户的策略
-d 表示最后更改日期 通常" -d 0" 表示,下次登录时,必须修改密码;
-m 表示最小使用天数
-M 表示最大使用天数
-W 表示提前警告天数
-I 表示设置失效时间
-l 查看用户的策略信息
-E 设置帐户过期时间
[root@server0 ~]# chage -l user3
Last password change : Oct 06, 2016 最近修改密码的时间
Password expires : never 密码的过期时间
Password inactive : never 密码失效时间
Account expires : never 帐户过期时间
Minimum number of days between password change : 0 两次改变密码这间相距最小的天数
Maximum number of days between password change : 99999 两次改变密码这间相距最大的天数
Number of days of warning before password expires : 7 在密码过期之前警告的天数
[root@server0 ~]# chage -E 60day user3 设置帐户过期时间
[root@server0 ~]# date -d +60day
Mon Dec 5 18:12:33 CST 2016
[root@server0 ~]# chage -E 2016-12-05 user3 设置帐户过期时间
6 管理本地组帐户:
groupadd
-g 指定组ID
[root@server0 ~]# groupadd g1
gpasswd 用于添加或修改组成员
-a 添加一个用户到组
-d 从组当中删除一个用户
-M 添加多个用户到组
删除不必要的组与用户
userdel adm
userdel lp
userdel sync
userdel shutdown
userdel halt
userdel mail
userdel news
userdel uucp
userdel operator
userdel games
groupdel adm
groupdel lp
groupdel mail
groupdel news
groupdel uucp
groupdel games
思考:能否使用for循环实现上述命令?
for I in ( your users )
do
userdel $I
groupdel $I
done