用户和组
1.当我们使用LInux时,需要以一个用户的身份登入,一个进程也需要以一个用户的身份运行,用户限制使用者后进程可以使用、不可以使用哪些资源
组用来方便管理用户
每个可登录的用户拥有一个指定的shell
没个用户创建时都会创建一个与用户名相同的组,这个组就是这个用户的主组,一个用户最多有31个附属组
2.用户
用户ID是32位,2^32个ID,为了和老系统兼容,用户ID限制在60000以下
root:ID为0
系统用户:ID范围1-499(没有指定的shell,为某些服务或进程创建的,为了限制进程或服务能访问的资源,功能比较单一)并非强制
普通用户:ID范围500以上
系统中每一个文件都有一个所属文件和所属组
使用id命令显示当前用户信息
使用passwd命令个可以进行吗,密码修改
3.各用户信息相关的文件
/etc/passwd ---------->>>>>>保存用户信息 (每一行代表一个用户信息)
格式:
用户名:密码(x表示密码保存在shadow文件中):用户ID:组ID:用户的描述信息:用户的家目录:用户的登录shell(系统用户一般为/sbin/nologin或者/bin/false)
/etc/shadow ---------->>>>>>保存用户密码(加密的)
格式:
用户名:加密密码(!!代表用户没有创建密码,可以暴力破解或穷举法)
加密密码格式:
分为3个部分用$分开
$6$Pyz3KuKG$gBzBIiDipqQ2gbk9S5QpT3lUuibi4dltgc8mLJJz3W6fDNCrhZPUbS6sNDQiQfR4C10aVZqS4hN.aUEWEACnw.
6代表密码加密类型sha512加密,Pyz3KuKG代表在原密码中加入的东西(盐),最终加密后的东西
/etc/group ---------->>>>>>保存组信息
格式:
组名:组密码:组ID
组密码:以前老的系统中使用,现在不需要使用了(向后兼容)
4.查看登录用户(有一个约定俗成的规律,命令越长显示出的内容越少,命令越短显示的内容越多)
whoami显示当前用户
who显示有那些用户登录到系统上
w显示有有那些用户用户已经登录并且在干什么
5.创建一个用户
useradd用以创建一个用户
系统在背后执行的操作。
系统会生成用户的userID,并在/etc/passwd中添加信息--->>>如果使用passwd创建了密码,则将加密后的密码保存在/etc/shadow中--->>>为用户创建一个新的家目录--->>>将/etc/skel中的文件复制到家目录中(可以将一些信息放到这个文件夹中,这样每创建一个用户就没有必要在拷贝一次)--->>>建立一个与用户名相同的组,并默认用户属于这个组
-d 指定家目录
-s 登录shell
-u 指定UserID
-g 指定主组
-G 附属组(最多31个,用","分隔)
也可以通过直接修改/etc/passwd的方式实现,但是不建议
6.usermod修改用户信息
usermod 参数 username
用此命令修改用户名时,用户的家目录不会改变
7.userdel命令
8.组
通过组,我们可以更加方便的归类、管理用户。一般来讲我们使用部门、只能或地理区域的分类方式来创建使用组
每各组有一个组ID
组信息保存在/etc/group
没个用户拥有一个主组,同时还可以拥有31个附属组
组设计示例