本文介绍Linux的用户管理
Linux 是一个可以实现多用户登陆的操作系统,不同用户可以同时登陆同一台主机,他们共享一些主机的资源,但他们也分别有自己的用户空间,用于存放各自的文件。
但实际上他们的文件都是放在同一个物理磁盘上的甚至同一个逻辑分区或者目录里,但是由于用户管理和权限机制,不同用户不可以轻易地查看、修改彼此的文件。
与windows相比LINUX中的用户和账号的作用是一样的。
都是基于用户对访问的资源做控制,只不过在表示的细节上有差异。
伪用户一般和系统或者程序服务相关
bin、daemon、shutdown 、halt等
linux默认都有这些伪用户
伪用户通常不需要或无法登陆系统,可以没有宿主目录
源码安装nginx,运行nginx web服务器默认使用nobody用户
根据帐号的位置:可分为本地帐号、远程(域)帐号
根据帐号的功能:
1000+为本地用户
RHEL中本地用户UID从500开始
UID即每个用户的身份标示,类似于每个人的身份证号码
根据帐号的位置:可分为本地用户组、远程(域)用户组
根据帐号的功能:
1000+为本地用户组
关于用户和组的相关配置文件存放在以下目录中:
用户账户信息文件说明
用户的账户信息保存在/etc/passwd文件中
这个文件以如下格式保存了每系统帐户的所有信息:
用户名:密码占位符:UID:GID:用户描述:宿主目录:登录的shell
用户密码信息文件说明
用户的密码信息保存在/etc/shadow文件中
这个文件以如下格式保存了系统帐户的密码信息:
用户名:加密后的密码:最近更改密码的日期:密码不能修改的天数:密码过期时间:密码需要更改期限到来的前7天发出警告:密码过期了几天后还能修改密码:帐号过期时间:保留
用户组信息文件说明
用户组信息保存在/etc/shadow文件中
这个文件以如下格式保存了系统用户组的所有信息:
组名:组密码占位符:GID:组成员列表
用户组密码信息文件说明
用户组密码信息保存在/etc/gshadow文件中
这个文件以如下格式保存了系统用户组的密码信息:
组名:组密码:组管理者列表:组用户列表
/etc/gshadow和/etc/group是互补的两个文件;对于大型服务器,针对很多用户和组,定制一些关系结构比较复杂的权限模型,设置用户组密码是极有必要的。
比如我们不想让一些非用户组成员永久拥有用户组的权限和特性,这时我们可以通过密码验证的方式来让某些用户临时拥有一些用户组特性,这时就要用到用户组密码。
解决模板文件被删之后用户名显示不正常的问题
当添加新的用户帐户时,默认会执行下列操作:
它的主目录就会被创建(一般是”/home/用户名”,除非你特别设置)
一些隐藏文件 如.bash_logout, .bash_profile 以及 .bashrc 会被复制到用户的主目录
会创建一个和用户名同样的组(除非你给新创建的用户指定了组)
- 删除用户的规则文件
从上面最后一行看出用户名显示为bash-4.2
- 恢复用户的规则文件
从上面最后一行看出用户名已经正常显示
介绍用户的添加删除等操作
添加用户
命令:useradd
作用:添加用户
语法:useradd [选项] 用户名
不使用该选项时会默认会以用户名在/home目录下创建宿主目录
创建用户tangpeng
指定UID创建用户tangdd
创建用户tangjj指定宿主目录为/home/zhazha
创建用户tangmm指定起始组为tangdd
创建用户指定附加组为root
指定用户登录的shell且不创建宿主目录
删除用户
命令:userdel
作用:删除用户
语法:userdel [选项] 用户名
删除用户tangpeng同时删除宿主目录和邮件
修改用户
命令:usermod
作用:修改用户
语法:usermod [选项] 用户名
切换用户
命令:su
作用:切换用户
语法:su [选项] [-] 用户名
说明:加上-会在切换用户时把环境变量一起进行切换
查看用户
命令:id
作用:打印指定用户的用户和用户组信息
语法:id [选项] 用户
命令:w
作用:显示登录到系统的用户
语法:w [选项]
命令:who
作用:显示当前登录的用户信息
语法:who [选项]… [FILE|ARG1 ARG2]
说明:如果没有指定文件则使用 /var/run/utmp、/var/log/wtmp作为记录文件;ARG1 ARG2可以为am i或者mom likes等同于who -m
命令:finger
作用:显示系统用户信息
语法:finger [选项] [用户] [用户@主机]
介绍用户组的添加删除等操作
添加用户组
命令:groupadd
作用:添加用户组
语法:groupadd [选项] 组名
GID即用户组的ID
删除用户组
命令:groupdel
作用:删除用户组
语法:groupdel [选项] 组名
该命令比较简单,出去-h选项外的另一个-R选项都是不常用的
修改用户组
命令:groupmod
作用:修改用户组
语法:groupmod [选项] 组名
命令:passwd
作用:修改用户密码
语法:passwd [选项] <用户名>
说明:不加用户名则修改当前用户