用户管理--借鉴技术大牛ken

leading-net leading-net     2023-02-28     787

关键词:

 

useradd

userdel

usermod

groupadd

groupdel

 

用户管理

 

为什么需要有用户?

 

1. linux是一个多用户系统

2. 权限管理(权限最小化)

 

用户:存在的目录是为了对系统中的资源做归属

密码:存在的目的是为了对用户做身份认证

 

 

用户和用户组

用户组,在用户组中可以包含一个或者多个用户

方便对多个用户进行授权操作

 

用户管理相关文件

 

/etc/passwd:用户基本信息

/etc/shadow:用户密码信息、过期时间等

/etc/group:用户组信息

/etc/gshadow:用户组密码

/etc/default/useradd:创建用户的默认配置信息

/etc/skel/:用户家目录模板

/etc/login.defs:全局用户设定信息

/etc/passwd: 每行是一个用户,用来记录用户的基本信息,每行的格式

account:password:UID:GID:GECOS:directory:shell

 

accout:用户名

password:用户密码,密码位置默认是x

UID:用户身份id,用来唯一的标识一个用户

GID:用户组id,用来在系统中唯一的标识一个用户组(这里指的是其基本组的组ID)

GECOS:用户描述信息,可以空白,也可以随意写(useradd -c )

directory:用户家目录

shell:用户所使用的shell类型

/bin/bash-->可以登录系统

/sbin/nologin-->该用户一定无法登录系统

 

比如

 root   :   x   :    0    :       0       :   newuser  :  /root  :  /bin/bash

用户名    密 码    用户id   用户所在组的id  描述信息    家目录    shell类型   

 

 

 

/etc/group

用户组信息

linux,用户一定是属于一个组的

在linux中,创建用户的时候,

会自动创建一个组,组名和组id都和所创建的用户相同

而且,该用户会自动加入到这个组中

 

 

c:x:1007:

组成:groupname:password:GID: [user1, user2.....]

groupname:组名

password:组密码

GID:组id

[user1, user2.....]:改组中的用户列表

 

 

概念

用户的基本组(主组):当前用户具有哪个组的权限

用户的附加组:用户额外属于的组

 

zx

主组:gp02

附加组:gp01、gp03

 

/etc/default/useradd

 

 

Linux中的用户类别

 

可以登录系统的用户

管理员用户:uid为0的用户

普通用户:就是可以登录系统,但是没有管理员权限的用户

不能登录系统的用户:

系统用户:用来运行一个程序,而不是用来登录系统

 

 

各类用户的id

管理员用户:0

系统用户:1-999

普通用户:1000-6000

 

系统用户的特点

1. 因为不需要登录,所以shell类型通常为/sbin/nologin

2. 系统用户没有家目录

3. 系统用户id通常是小于1000

 

Useradd命令

 

useradd [options] username

options:

-d, --home HOME_DIR:指定用户家目录

-c, --comment COMMENT:用户说明信息

-e, --expiredate EXPIRE_DATE:指的账号的过期时间,时间格式 YYYY-MM-DD

-g, --gid GROUP:指的用户的基本组的组id

-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:指的用户的附加组列表

-u,--uid UID:指的用户的uid

-m, --create-home:创建用户的时候自动创建用户家目录(默认就已经使用)

-M:不自动创建用户家目录

-o, --non-unique:通常和-u一起使用,用来让两个用使用相同的uid

-r, --system:创建一个系统用户

-s, --shell SHELL:在创建用户的时候,指定用户的shell类型

(/bin/bash/,/sbin/nlogin)

 

创建一个系统用户

# useradd -s /sbin/nologin -M -r t17

 

passwd命令

 

passwd [[options] username]

(如果不指定用户名,那么就是修改当前用户的密码)

options:

--stdin

-l:锁定用户

-u:解锁用户

-d:删除用户密码

-e:让用户密码过期

echo “ 123“ | passwd --stdin ken

表示给ken用户设置密码123 (ken用户必须存在)

设置密码的原则

1. 长度要够

2. 密码复杂度(数字+字母+特殊符号)

 

Userdel命令

 

删除用户 userdel

userdel [options] username

options:

-r:在删除用户的时候,连同用户数据一并删除

 

 

创建用户组 groupadd

 

groupadd [options] groupname

options:

-g GID:

-o:

 

 

删除用户组 groupdel

 

groupdel groupname

 

Shadow文件详解  

 

  zxhk:  $6$dgnPoZ0s$6xNKEWz : 17729 : 0 : 99999 :  7  :   :   :   

 

第一段:用户名:  

第二段:加密后的密码      

第三段:上次修改密码举例元年经过的天数(如果该字段空,意味着该用户密码被禁用)

第四段:密码最短使用时间(0表示不限制)

第五段:密码最长有效期(99999表示不限制)(如果第5的值小于第四段,那么用户无法修改自己的密码)

第六段:密码到期前几天开始发送告警,提示密码即将过去,请立即修改

第七段:非活动期间,密码到期后的宽限时间(登录系统的时候必须先修改密码,才能登录)

第八段:密码过期时间(也是举例计算机元年经过的天数)(这里和前面的几个时间没有联系)

第九段:保留字段

 

Usermod命令

 

usermod [options] username

 

options

-g, --gid GROUP: 更 新 使 用 者 新 的 起 始 登 入 群 组 。 群 组 名 须 已 存 在 。

-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]: 定  义  使 用 者 为 一 堆 groups 的 成 员 。 每 个 群 组 使 用 ,区 格 开 来

-u, --uid UID: 用 者 ID 值 。必 须 为 唯 一 的 ID 值 

-s, --shell SHELL: 指 定 新 登 入 shell 。 如 此 栏 留 白 , 系 统 将 选 用 系 统 预 设 shell 。

-L, --lock: 锁定用户的密码

-U : 解锁用户的密码

-l, --login NEW_LOGIN : 变 更 使 用 者 login 时 的 名 称 为 login_name 。

-e, --expiredate EXPIRE_DATE:加 上 使 用 者 帐 号 停 止 日 期 。 日 期 格 式 为 MM/DD/YY.

 

-d, --home HOME_DIR:更 新 使 用 者 新 的 登 入 目 录 。

-m, --move-home:移动用户家目录至新的位置

 

 

练习

1. 创建用户java,uid 1000 基本组是gp001 附加组 gp002 gp003

 

useradd -u 1000 -g gp001 -G gp002,gp003  java

 

 

2. 修改用户java,

将名称修改为python,

将uid修改为 2000,

修改主组是cats,

shell类型改为 /sbin/nologin

让该用户在10月1号到期

 

#######################

 

id命令

 

作用:用来查看指定的用户的信息(或判断用户是否存在)

格式:id [-u|-g|-G] username

选项

-u:仅仅显示用户uid

-g:仅仅显示用户gid

-G:仅仅显示用户全部组id

 

su命令(switch user)

 

作用:进行切换用户

格式:su - 目标用户

 

su命令和su -命令最大的本质区别就是:

前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;而后者连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。su切换成

root用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;而用su -命令切换以后,工作目录变成root的工作目录了。用echo $PATH命令看一下su和su -以后的环境变量有

何不同。以此类推,要从当前用户切换到其它用户也一样,应该使用su -命令

mysql系列详解四:mysql事务-技术流ken(代码片段)

...要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!在MySQL中... 查看详情

向大牛学习——如何快速成长为技术大牛?阿里资深技术专家的总结亮了(转)

...大家解决这些困惑。大道理是相通的,测试、运维都可以借鉴。  几个典型的误区 拜大牛为师 有人认为想成为技术大牛最简单直接、快速有效的方式是“拜团队技术大牛为师”,让他们平时给你开小灶,给你分配... 查看详情

软件管理yum--技术流ken

 软件管理yum 也是一个rpm包的管理工具,可以实现自动解决rpm包的依赖关系(自动安装依赖顺序进行rpm包的安装) 为何rpm包会有依赖关系?制作rpm的人,在制作rpm包的时候,就将这个rpm的所依赖的软件的信息保存在这... 查看详情

分布式系统监视zabbix讲解四之可视化--技术流ken(代码片段)

... 图形概述随着大量的监控数据被采集到Zabbix中,如果用户可以以可视化的表现形式来查看发生了什么事情,那么和仅仅只有数字的表现形式比起来则更加轻松。以下是进行图形设置的地方。图形可以一目了然地掌握数据的流... 查看详情

云计算openstack:keystone身份认证服务--技术流ken(代码片段)

...证服务,包括身份验证、令牌的发放和校验、服务列表、用户权限的定义等等。云环境中所有的服务之间的授权和认证都需要经过keystone.因此keystone是云平台中第一个即需要安装的服务。 作为OpenSta 查看详情

管理系统权限设计借鉴

...现一套简单的权限管理功能。一套最基本的权限管理包括用户、角色、资源。 查看详情

小白到大牛之路7换机后台管理之多用户账号登录(代码片段)

...dio.h>#include<string.h>intmain(void)//定义变量,用来表示用户名和密码charname[32];charpassword[16];FILE*file;//定义了一个档指针变量,变量名是filecharline[128];charname_tmp[32];charpassword_tmp[16];char*ret;//打开档file=fopen("users.txt","r");if(!file)//等... 查看详情

从菜鸟到大牛的码农升职必学文章推荐

...总结一下成为大牛的技术之路。先来看一张程序员的时间管理图。除了时间管理,技术学习也是少不了的。下面推荐一下比较好的技术文章。 使用瀑布流插件Masonry进行瀑布流布局业余草微信公众号上线了!使用HTML5Canvas实现... 查看详情

jenkins+git+gitlab+ansible实现持续集成自动化部署静态网站--技术流ken(代码片段)

...Ansible的两篇博客《Git+Gitlab+Ansible剧本实现一键部署Nginx--技术流ken》,《Git+Gitlab+Ansible剧本实现一键部署动态网站(二)--技术流ken》,以及关于jenkins的简单使用《Jenkins持续集成介绍及插件安装版本更新演示(一)--技术流ken》... 查看详情

nginx实现反向代理负载均衡-技术流ken(代码片段)

1.简介本篇博文是《nginx实现动态/静态文件缓存-技术流ken》的二部曲。将详细介绍nginx如何实现反向代理以及负载均衡技术,并辅以实战案例。反向代理--“反向代理(ReverseProxy)方式是指以代理服务器来接受internet上的连接请求,... 查看详情

kvm虚拟化使用详解--技术流ken(代码片段)

...buntu和Windows。Hypervisor作为OS上的一个程序模块运行,并对管理虚拟机进行管理。KVM、VirtualBox和VMWareWorkstation都属于这个类型。理论上讲:1型虚拟化一般对硬件虚拟化功能进行了特别优化,性能上比2型要高;2型虚拟化因为基于普... 查看详情

mysql系列详解一:mysql&&多实例安装-技术流ken(代码片段)

1.简介MySQL是一个真正的多用户、多线程SQL数据库服务器。SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言,它使得存储、更新和存取信息更加容易。MySQL是一个客户机/服务器结构的实现,它由一个服务器守护程... 查看详情

ios直播app原理

...、提现等;3、直播列表关注、热门、最新、分类直播用户列表等;4、自己直播录制、推流、解码、播放、美颜、心跳、后台切换、主播对管理员操作、管理员对用户等;5、房间逻辑创建房间、进入房间、退出房间、... 查看详情

公司怎么吸引和留住核心技术大牛

...代引导业务。也就是说,雇用这种类型的人,具有独特的管理和技术技能,可能是一个全新的概念,一个小企业领导者,直到现在 查看详情

zabbix实现qq邮件报警通知(最详细)--技术流ken(代码片段)

...示发送10次报警,60表示每隔60秒发送一次选择发送给哪个用户群中的哪个用户通过email填好之后点击添加即可 zabbix配置媒体类型 第一步 查看详情

bootloader简介(借鉴)

...始化;2、引导操作系统运行,如果没有操作系统就引导用户应用软件运行。 三、Bootloader两种工作模式:1、启动加载模式:设备上电后,自动加载并启动操作系统,不需要用户参与。2、下载模式:用户可通过系统控制命令... 查看详情

高可用集群之keepalived+lvs实战-技术流ken(代码片段)

...ed简介lvs在我之前的博客《高负载集群实战之lvs负载均衡-技术流ken》中已经进行了详细的介绍和应用,在这里就不再赘述。这篇博文将把lvs与keepalived相结合使用,在实际工作中搭建高可用,高负载,高性能的服务器集群。“Keepa... 查看详情

cobbler批量安装系统使用详解-技术流ken(代码片段)

1.前言  cobbler是一个可以实现批量安装系统的Linux应用程序。它有别于pxe+kickstart,cobbler可以实现同个服务器批量安装不同操作系统版本。2.系统环境准备及其下载cobbler    一.系统环境系统版本:CentOSrelease6.7(Final... 查看详情