相关概念
Linux 是多任务多用户的系统。
用户
用户标识、密码:
Authentication
Authorization
Audition
组:用户组,用户容器
1、用户类别
用户类别包括管理员和普通用户(系统用户和登录用户)。
系统用户:为了能够让那后台进程或服务类进程以非管理员的身份运行,通常需要为此创建多个普通用户;这类用户从不用登录系统。
2、安全上下文
安全上下文 是指进程以其发起者的身份运行,进程对文件的访问权限,取决于发起此进程的用户的权限。
3、用户标识
用户标识即UserID 、UID 。
用户标识是用16bits二进制数字标识的,范围为 0-65535 。
管理员:0
普通用户:1-65635
系统用户:1-499(CentOS6), 1-999(CentOS7)
登录用户:500-60000(CentOS6), 1000-60000(CentOS7)
4、名称解析
用户的名称解析,也就是名称转换。是名称解析库进行的/etc/passwd。
Username <--> UID
组
1、组类别1
管理员组
普通用户组
系统组
登录组
2、组标识
管理员组:0
普通用户组:1-65635
系统用户组:1-499(CentOS6), 1-999(CentOS7)
登录用户组:500-60000(CentOS6), 1000-60000(CentOS7)
3、名称解析
名称解析:groupname <--> gid
解析库:/etc/group
4、组类别2
用户的基本组
用户的附加组
5、组类别3
私有组:组名同用户名,且只包含一个用户
公共组:组内包含了多个用户
认证信息
通过比对事先存储的,与登录时提供的信息是否一致,一致的话才允许登陆。
1、储存认证信息的文件
password:
/etc/shadow
/etc/gshadow
2、密码的使用策略
1、使用随机密码
2、最短长度不要低于8位
3、应该使用大写字母、小写字母、数字和标点符号四类字符中至少三类
4、定期更换
3、加密算法
对称加密:加密和解密使用同一个密码
非对称加密:加密和解密使用的一对儿密钥
密钥对儿:
公钥:public key
私钥: private key
单向加密:只能加密,不能解密;提取数据特征码
定长输出
雪崩效应
4、算法
md5: message digest, 128bits
sha:secure hash algorithm, 160bits
sha224
sha256
sha384
sha512
再对密码进行加密计算的时候,会添加salt,添加的随机数;两个用户的密码虽然相同,但是计算之时加salt,会使结果大不相同,所以在 /etc/shadow 里加密过后的字段大不一样。
文件信息
1、/etc/passwd:用户的信息库
格式:
name:password:UID:GID:GECOS:directory:shell
解释:
name: 用户名
password:可以是加密的密码,也可是占位符x;/etc/shadow
UID:用户ID
GID:用户所属的主组的ID号
GECOS:注释信息
directory:用户的家目录
shell:用户的默认shell,登录时默认shell程序
示例:
root@LeeMumu:~# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
2、/etc/shadow:用户密码
格式:
用户名:加密的密码:最近一次修改密码的时间:最短使用期限:最长使用期限:警告期段:过期期限:保留字段
示例:
root@LeeMumu:~# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
3、/etc/group:组的信息库
格式:
group_name:password:GID:user_list
解释:
user_list:该组的用户成员;以此组为附加组的用户的用户列表
示例:
root@LeeMumu:~# cat /etc/group
root:x:0:
daemon:x:1:
管理命令
1、groupadd:添加组
groupadd [选项] group_name
-g GID:指定GID;默认是上一个组的GID+1
-r: 创建系统组
2、groupmod:修改组属性
groupmod [选项] GROUP
-g GID:修改GID
-n new_name:修改组名
3、groupdel:删除组
groupdel [选项] GROUP
4、useradd:创建用户
useradd [选项] 登录名
-u, --uid UID:指定UID;
-g, --gid GROUP:指定基本组ID,此组得事先存在
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:指明用户所属的附加组,多个组之间用逗号分隔;
-c, --comment COMMENT:指明注释信息;
-d, --home HOME_DIR:以指定的路径为用户的家目录;通过复制/etc/skel此目录并重命名实现
指定的家目录路径如果事先存在,则不会为用户复制环境配置文件
创建家目录时,最好不要是已经存在的目
-s, --shell SHELL:指定用户的默认shell,可用的所有shell列表存储在/etc/shells文件中;
-r, --system:创建系统用户
注意:创建用户时的诸多默认设定配置文件为 /etc/login.defs
useradd -D:显示创建用户的默认配置
useradd -D 选项: 修改默认选项的值
修改的结果保存于/etc/default/useradd文件中
root@ubuntu:/home# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE= 永久有效,默认是9999天
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no 创建邮筒,如果是yes参数的话,
每次新创建用户时,会在 /var/spool/mail 下创建一个用户自己的邮筒
示例:
root@ubuntu:~# useradd docker
root@ubuntu:~# tail -1 /etc/passwd
docker:x:1009:8889::/home/docker:
root@ubuntu:~# tail -1 /etc/group
docker:x:8889:
root@ubuntu:~# useradd ceshi1 -u 3333 -g 8888 -G NEO11,NEO12 -c woaini
root@ubuntu:~# tail -1 /etc/passwd
ceshi1:x:3333:8888:woaini:/home/ceshi1:
root@ubuntu:~# tail /etc/group
jc:x:1002:

本文详细介绍了Linux系统中的用户和组管理,包括用户类别、安全上下文、组标识等概念,以及用户和组的创建、修改和删除。此外,还深入探讨了权限管理,如ls -l、SUID、SGID、Sticky位,以及访问控制列表(facl)。最后,提到了一些实用命令,如`install`、`mktemp`和`finger`。
最低0.47元/天 解锁文章
206

被折叠的 条评论
为什么被折叠?



