Linux系统中为什么要引入用户和组的概念?
-
权限管理
-
资源管控
用户加入组的主要目的是为了继承权限。
目录
用户管理常用命令(useradd、userdel、usermod、passwd)
组管理常用命令(groupadd、groupdel、groupmod、newgroup等)
用户账户
用户类型主要分为三类:
(1)超级用户root
UID : 0
不需要新建,默认存在(2)系统用户
UID : 1-999
用来启动程序或者登录程序的用户,很多程序用户默认就创建(3)普通用户
UID : >=1000
使用useradd新建的用户,由管理员创建的用于日常工作的用户
用户与组的一些相关文件
/etc/passwd
用户信息文件,该文件中的每行信息都由“:”分隔,一共有七个字段
# 举例
suda:x:1003:1003::/home/suda:/bin/bash
字段一:用户名
字段二:用户密码字段或者密码占位符"x"
字段三:用户id(UID)
字段四:用户基本组id(GID)
字段五:用户的描述信息,默认为空
字段六:用户的家目录,默认是在/home目录下创建一个跟用户同名的目录
字段七:登陆shell,默认是/bin/bash
/bin/bash 普通登陆shell
/bin/sync 将内存中的缓存刷到磁盘上
/sbin/halt 关机
/sbin/nologin 不允许登陆
/sbin/shutdown 关机
/etc/passwd- # /etc/passwd的备份文件
备份文件永远比源文件少一行
/etc/shadow
用户密码信息文件,只有root用户有权限读取
其中字段二就是存放密码的字段,存放的密码是加密的密文,通过sha512加密
(sha512:哈希算法,单向加密)
# 举例
suda:$6$XSoyj6Mt43ThLyyi$Z5TuAYcPLSzAd/HuOh8Sk18dYpy9.IpV5lBKNWr587/G7.2B58IHxRFRQ7AVPNaZgsUi/A9UPMqvTq6K21Pa20:18780:0:99999:7:::
# 使用$号划分成了3个字段
第一个字段表示sha512算法
第二个字段表示盐值
第三个字段表示加密之后的散列值
# 加密底层使用内核的crypt函数实现
>>> import crypt
>>> crypt.crypt("123456","$6$XSoyj6Mt43ThLyyi")
'$6$XSoyj6Mt43ThLyyi$Z5TuAYcPLSzAd/HuOh8Sk18dYpy9.IpV5lBKNWr587/G7.2B58IHxRFRQ7AVPNaZgsUi/A9UPMqvTq6K21Pa20'
<