Linux用户管理

Linux系统用户有一个标记,为UID和GID,一般情况下UID和GID要唯一。

UID

User id

用户的ID号

身份证号码

GID

Group id

用户组的ID号

户口本号码

用户分类

UID

root用户

root用户<-->UID=0 反之也成立

程序/系统用户

1<=UID<=999(CentOS7之后) 1<=UID<=499(CentOS6,7)

主要用于服务和进程运行使用的用户,通常不允许直接登录(一种傀儡用户-)

普通用户

1000<=UID<=65535(CentOS7之后)

手动创建,无法对系统进行更改,只在当前家目录有权限

判断是否为虚拟用户

shell

/bin/sh

/bin/bash

正常可以使用

/sbin/nologin

虚拟用户/傀儡用户

GID

root用户组

GID=0

通常只有root用户属于此组

程序/系统用户组

1<=GID<=999(CentOS7之后) 1-499(CentOS6)

通常不允许普通用户加入

普通用户组

1000<=GID<=65535

例:

部门北京核心

部门研究院-教研中心-北京教学部

部门研究院-研发中心-长沙研发

部门研究院-售后VIP服务中心

部门研究院-教研中心-长沙教学部

用户管理相关文件

/etc/passwd

存放用户信息

/etc/shadow

存放密码信息

/etc/group

存放用户组信息

/etc/gshadow

存放用户组密码信息,一般几乎不会个用户组设置密码

/etc/passwd文件格式

username:password:UID:GID:GECOS:home_directory:shell

用户名密码标记用户IDID用户说明信息用户家目录用户使用命令解释器shell

现在Linux系统通常将密码存在/etc/shadow中,而在/etc/passwd文件中仅标记X或*

用户说明信息和家目录可在添加用户时指定,不指定则为空

/etc/shadow文件格式

username:password:last_change:min_age:max_age:warn_period:inactive_expire:expire_date:reserve

用户名密码(加密)上次更改密码时间最小密码年龄最大密码年龄警告期不活跃期账号过期日期保留字段

/etc/shadow文件权限通常为0000,只有root用户可读写

密码加密通常采用SHA-512,SHA-256或MD5算法,如果此字段为空表示用户没有设置密码,如果为!或*代表用户无法登录

以root用户为例

20212

从1970年1月1日(Unix纪元元年)算起的第20212天为上次更改密码的日期

0

最小密码年龄,用户在更改密码后0天内不能再次修改密码

99999

最大密码年龄,密码有效期为99999天

7

警告期,在密码过期前7天开始警告用户

X

不活跃期,密码过期后X天内用户账号将被禁用

Y

账号过期日期,从1970年1月1日算起的Y天

/etc/group文件格式

groupname:password:GID:user_list

用户组名密码ID用户列表

用户组名默认和用户名一致

组密码通常为空或包含占位符(X或*),表明密码已加密存储在/etc/gshadow中

用户列表属于该组的用户列表,用户之间用逗号分隔

/etc/gshadow文件格式

groupname:password:admin_list:number_list

用户组名密码管理员列表成员列表

用户管理命令

创建新的系统用户

命令:useradd

选项:-u 指定用户UID数值

        -s 指定用户登录shell(命令解释器),默认是/bin/bash

        -M 不创建用户家目录,即使/etc/login.defs(CREATE_HOME)中系统范围设置为Yes

例:useradd -u 1314 -s /sbin/nologin -M mysql 创建虚拟用户mysql指定UID和命令解释器,并且不创建家目录

创建一个新的工作组

命令:groupadd

选项:-g 指定新建工作组的id

        -r 创建系统工作组,系统工作组的组ID小于500

        -K 覆盖配置文件“/etc/login.defs”

        -o 允许添加组ID号不唯一的工作组

例:groupadd -g 344 ck 在/etc/passwd文件中产生一个组ID(GID)是344的新组

更改用户密码

命令:passwd

选项:--stdin 非交互式设置密码(RHEL及其衍生版支持在root用户中使用,批量修改密码)

例:echo newpasswd | passwd --stdin ck 修改ck用户密码为newpasswd-只能root用户使用

删除用户及相关文件

命令:userdel

避免使用,通过注释/etc/passwd和/etc/shadow文件禁止用户

选项:-r 删除用户时,删除用户家目录和相关文件(邮箱),默认不会删除

        -f 强制删除用户,即使用户当前已经登录

例:userdel -rf ck

删除指定的工作组

命令:groupdel

格式:groupdel 工作组名

本命令要修改的系统文件包括/ect/group和/ect/gshadow。若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组

修改用户信息

命令:usermod

不允许改变正在线上使用者的账号名称

选项:-s 修改用户登录后所使用的shell

        -L 锁定用户密码,使密码无效

        -U 解除密码锁定

例:usermod -s /bin/nologin ck

更改群组识别码或名称

命令:groupmod

选项:-g <群组识别码> 设置欲使用的群组识别码

        -o 重复使用群组识别码

        -n <新群组名称> 设置欲使用的群组名称

查看真实有效用户和所在组的信息

命令:id

检查用户是否存在

查看当前有效的用户ID对应名称

命令:whoami

获取当前用户名称

查看当前主机所有登陆用户的名称

命令:users

格式:users 选项 参数

参数:FILE(可选) 记录用户当前登录情况的文件,默认使用 /var/run/utmp 、/var/log/wtmp

查看指定用户所在组的名称

命令:groups

格式:groups 选项 参数

该命令等价于 id -Gn;每个用户属于/etc/passwd中指定的一个组和在/etc/group中指定的其他组

参数:username(可选) 可以是一到多个,不提供时默认为当前用户

切换当前用户身份到其他用户身份

命令:su 全拼:switch user

格式:su 选项 (要切换到的)用户账号名

变更时须输入所要变更的用户帐号与密码

选项:-c<指令> 执行完指定的指令后,即恢复原来的身份

        -l 改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname。此外,也会变更PATH变量

        -m,-p preserve-environment,变更身份时,不要变更环境变量

        -s<shell> 指定要执行的shell

例:su -c ls root 变更帐号为root并在执行ls指令后退出变回原使用者

管理用户主要组成员

命令:groupmems

格式:groupmems 选项 参数

允许用户管理自己组成员列表,而不需要超级用户权限。适用于将其用户配置为以他们自己的名义主组的系统。只有作为管理员的超级用户可以更改其他组的成员资格

选项:-a add user_name,将用户添加到组成员列表。如果/etc/gshadow文件存在,并且该组中没有条目,则创建一个新条目

        -d delete user_name,从组成员列表中删除用户,如果/etc/gshadow文件存在,用户将从组的成员和管理员列表中删除

        -g group group_name,管理员可以指定要修改的组成员列表

        -l list,列出组成员列表

        -p purge,从组成员列表中清除所有用户

故障案例:命令行bash-4.2$

原因:用户没有家目录,用户家目录下的配置文件~/.bashrc和~/.bash_profile没了

/etc/skel/目录拥有所有新用户的家目录的模板,创建用户时,系统会把/etc/skel/下面所有内容复制到新用户的家目录下面

解决方案:cp /etc/skel/.bash* ~

之后重新登录

故障复现:rm -rf ~/.bash*,之后重新登录 禁止在root用户下操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值