一、用户概述
Linux是一个多用户多任务操作系统,但是一个操作系统支持多用户就必须要考虑最大的问题就是用户的身份问题。Linux在这方面是毋庸置疑的它拥有非常良好的用户身份确认机制(当然现代操作系统都具备这种能力)。同时一个多用户系统有些时候提供单用户模式是非常必要的。当发生故障时进行故障修复(所谓单用户模式就是系统不需要确认用户,常用来进行密码破解)
简单来说多用户管理就是管理用户的等级和用户对文件的访问权。Linux下的用户等级实际上非常简单的,就两个等级root和非root、root用户的权限是非常大可以做到自杀而它的名子就叫root。
二、用户介绍
用户ID
UID(user identify) 映射到系统上就是一个唯一的标示符。
用户类别
1.管理员UID 0:也就是root用户系统的最高管理者
2.普通用户UID 1—65535:不是root用户的属于普通用户
3.系统用户UID 1—499:是Linux中用来完成特定任务的用户如nobody、admin、ftp等;一般是不允许登陆系统和存在家目录的
4.一般用户UID500—65535:有自己的执行环境、可以登陆系统
用户数据库
[root@localhost ~]# head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
解释各个字段含义:
root(account):用户账号
x(password):密码占位符
0(UID):用户ID号
0(GID):用户附加组ID号
Root(Comment) :用户的注释信息
/root(HOME DIR):用户家目录
/bin/bash(Shell):用户默认shell(/bin/nologin表示不允许登录)
影子口令
[root@localhost ~]# head -1 /etc/shadow
root:!!$1$QE31JIU$X3ppyw4dw9GyDj5ROEM:15753:0:99999:7:4:3:
解释各个字段含义:
root:用户名
!!$1$QE31JIU$X…:加密过的用户密码其中$1$表示为MD5sum加密$QE31JIU$为给用户密码加的杂质随机生成的为防止两个密码一样产生的md5相同潜在风险;!!表示为锁定密码
15765:这里的时间从1970到这一刻的天数;date +%s除以86400
0:表示密码修改过多久才可以再次修改0表示没有限制
99999:表示密码最长使用期限99999表示没有限制
7:表示密码在离过期还有多少天向用户警告
4:表示密码过期之后给用户宽限的天数一登陆就必须要先改密码才能登陆
30:表示明确指定密码的有效期30天已过就锁定账号
三、手动创建一个用户的过程
1)更改/etc/passwd添加一行信息
2)更改/etc/shadow添加一行信息
3)opensslpasswd -1 –salt ‘abcdefh’生成一个md5并加杂质的字符串
4)更改/etc/group添加一行信息
5)复制/etc/skel到/home/USERNAME
6)更改/home/USERNAME目录的所有者权限为此用户USERNAME
7)登录此用户验证跟普通一样的执行环境
用户组:是一个容器存放用户并关联权限
组ID
GID(group identify)
用户组类别
私有组:创建用户时如果没有为其指定所属的组系统会自动为其创建一个与用户名同名的私有组
基本组:用户默认指定的组非系统自动创建的同名组
附加组:额外组默认组以外的其他组
组数据库
[root@localhost ~]# head -1 /etc/group
root:x:0:root
解释各个字段含义:
root:组名
x:密码占位符
0:GID号
Root:表示以这个组为附加组的用户列表
四、影子口令
[root@localhost ~]# head -1 /etc/gshadow
root:::
组也是可以设置密码的,但是基本没用过也就略过。
五、用户和组相关命令
用户管理命令
/etc/default/useradd:此文件定义执行命令”useradd”默认的用户配置,如默认shell
/etc/login.defs:此文件定义添加用户和密码时使用的配置文件,如指定家目录
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
useradd [OPTIONS ARGUMENT] USERNAME:添加用户 -u:指定用户的UID500-65535 -g:指定用户的基本组(组要先存在) -G:指定其附加组可以有多个 -c "":指定用户的注释信息 -d:指定用户目录(默认在/home/USERNAME) -s:指定shell(/bin/nologin;/etc/shells中是可用的shell) -m –k:表示创建用户的时候创建家目录并复制/etc/skel中的个人环境配置文件到用户家目录下;默认不需要指定; -M:不给用户创建家目录 -r:添加一个系统账户(没有家目录;ID号1-499) userdel [OPTIONS ARGUMENT] USERNAME:删除用户 -r:连同家目录一块删除 usermod[OPTIONS ARGUMENT] USERNAME:修改用户属性信息 -u:修改用户的UID500-65535 -g:修改用户的基本组(组要先存在) -a -G:追加其附加组不加-a选项就会覆盖此前的附加组 -c "":修改注释信息 -d -m:修改用户的家目录并移动现有家目录中的所有文件到新的家目录 -s:修改用户的shell -l:修改用户的用户名 -L:锁定用户账号 -U:解锁用户账号 passwd [OPTIONS] USERNAME:修改用户账号密码 --stdin:通过标准输入接收用户密码 -l:锁定账号 -u:解锁账号 -S:查看账号状态 -d:删除用户密码并允许空密码登录 -w:设置密码最长使用时间 chage [OPTIONS ARGUMENT] USERNAME:修改密码的属性 -d:最近一次的修改时间 -E:过期时间 -I:非活动时间 -m:最短使用期限 -M:最长使用期限 -W:警告时间 id [OPTIONS] USERNAME:查看用户的身份 -u:只看用户UID -g:只看用户GID -G:显示所有组 -n:以用户名显示配合上面的命令一起使用 chsh USERNAME:修改用户的默认shell chfn USERNAME:修改用户的注释信息 finger USERNAME:查看用户的属性信息 |
组管理命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
groupadd [OPTIONS ARGUMENT] GROUPNAME:添加组 -g:添加GID -r:添加系统组 groupdel GROUPNAME:删除一个组 groupmod [OPTIONS ARGUMENT] GROUPNAME:修改组属性 -g:修改GID -n:修改组名字 gpasswd GROUPNAME:设置组密码 -r:移除组密码 gpasswd [OPTIONS] USERNAME GROUPNAME:设置组属性 -a:添加用户到组 -d:移除组中的用户 -M:一次添加多个用户USERNAME,USERNAME newgrp GROUPNAME:登录到一个组成为自己的基本组退出使用exit |