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

定义创建用户默认选项的文件

# useradd defaults file       # useradd默认文件

GROUP=100               #表示可创建普通组

HOME=/home             #用户的家目录建在/home中;用户家目录的默认创建地

INACTIVE=-1               #是否启用帐号过期停权,-1表示不启用;宽限天数,0及以下数皆为无效数字

EXPIRE=                   #帐号终止日期,不设置表示不启用;帐号失效日期(如:20081212)

SHELL=/bin/bash            #所用SHELL的类型;登录后执行的程序

SKEL=/etc/skel              #用户家目录中的环境文件,默认添加用户的目录默认文件存放位置;也就是说,当我们用adduser添加用户时,用户家目录下的文件,都是从这个目录中复制过去的;

CREATE_MAIL_SPOOL=yes    #是否创建用户邮件缓冲,yes表示创建

Linux中的用户类别

可以登录系统的用户

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

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

不能登录系统的用户:

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

各类用户的id

管理员用户:0(超管root)

系统用户: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 ken

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:

在这个命令中无法确定主组附属组,只能先创建组,然后再useradd命令中增加用户后,再指定主组和附属组。

删除用户组 groupdel

groupdel groupname

Shadow文件详解  

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

第一段:用户名:

第二段:加密后的密码

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

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

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

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

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

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

第九段:保留字段

常常听到:我的密码忘记或者被更动了?怎么办?
 
  有的时候会发生这样的情况,就是说,你的 root 密码忘记了!要怎么办?重新安装吗?另外, 有的时候是被入侵了, root 的密码被更动过,该如何是好?
 
  这个时候就必须要使用到 /etc/shadow 这个资料了!我们刚刚知道密码是存在这个档案中的, 所以只要你能够以各种可行的方法开机进入 Linux ,例如单人维护模式,或者是以 live CD (KNOPPIX) 来进入 Linux 系统。之后,将硬碟顺利挂载,然后进入 /etc/shadow 这个档案中,将 root 的密码这一栏全部清空!然后再登入 Linux 一次,这个时候 root 将不需要密码 (有的时候需要输入空白字元) 就可以登入了!这个时候请赶快以 passwd 设定 root 密码即可。 

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:移动用户家目录至新的位置

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 -命令

练习

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

2. 修改用户java,

将名称修改为python,

将uid修改为 2000,

修改主组是cats,

shell类型改为 /sbin/nologin

让该用户在10月1号到期

答案:

1.

[root@ken ~] # useradd -u 1000 -g gp001 -G gp002,gp003  java

2.

[root@ken ~]# usermod -l python -u 2000 -g cats -s /sbin/nologin -e 10/01 java

引用地址:https://www.cnblogs.com/kenken2018/p/10267775.html

20190404用户及用户组管理(week1_day4)的更多相关文章

  1. 用户及用户组管理(week1_day4)--技术流ken

    本节内容 useradd userdel usermod groupadd groupdel 用户管理 为什么需要有用户? 1. linux是一个多用户系统 2. 权限管理(权限最小化) 用户:存在的 ...

  2. 用户及用户组管理(week1_day4)

      本节内容   useradd userdel usermod groupadd groupdel   用户管理   为什么需要有用户?   1. linux是一个多用户系统 2. 权限管理(权限最 ...

  3. Linux 系统常用命令汇总(三) 用户和用户组管理

    用户和用户组管理 命令 选项 注解 示例 useradd [选项] 用户名 新建用户 创建一个名为tester的用户,并指定他的UID为555,指定加入test群,指定其使用C-shell:  use ...

  4. Linux 用户和用户组管理

    Linux 用户和用户组管理 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统. 用户的账号一方面可以帮助 ...

  5. linux常用命令之--用户与用户组管理命令

    linux的用户与用户组管理命令 1.用户和群组 groupadd:用于添加新的组群 其命令格式如下: groupadd [-option] 群组名 常用参数: -g GID:指定创建群组的GID(G ...

  6. Linux用户和用户组管理总结

    Linux下和用户和用户组管理有关的配置文件: /etc/group Group account information. /etc/gshadow Secure group account info ...

  7. Linux系列教程(十五)——Linux用户和用户组管理之用户管理命令

    上篇博客我们介绍了用户管理的相关配置文件,包括用户信息文件/etc/passwd,用户密码文件/etc/shadow:然后介绍了用户组信息文件/etc/group,用户组密码文件/etc/gshado ...

  8. Linux基础学习(7)--用户和用户组管理

    第七章——用户和用户组管理 一.用户配置文件 1.用户信息文件/etc/passwd: (1)用户管理简介:所以越是对服务器安全性要求高的服务器,越需要建立合理的用户权限等级制度和服务器操作规范.   ...

  9. Linux命令——用户和用户组管理

    Linux命令--用户和用户组管理 命令groupadd 作用:新增组 格式:groupadd [-g GID] groupname 参数:-g,指定GID,一般从500开始 说明:一般不必加-g参数 ...

随机推荐

  1. 关于Kafka区分请求处理优先级的讨论

    所有的讨论都是基于KIP-291展开的.抱歉,这又是一篇没有图的文字. 目前Kafka broker对所有发过来的请求都是一视同仁的,不会区别对待.不管是用于生产消费的PRODUCE和FETCH请求, ...

  2. LeetCode - 804. Unique Morse Code Words

    International Morse Code defines a standard encoding where each letter is mapped to a series of dots ...

  3. Elasticsearch学习之图解Elasticsearch中的_source、_all、store和index属性

    转自 : https://blog.csdn.net/napoay/article/details/62233031 1. 概述 Elasticsearch中有几个关键属性容易混淆,很多人搞不清楚_s ...

  4. java模拟http请求(代理ip)

    java实现动态切换上网IP (ADSL拨号上网) java动态设置IP java模拟http的Get/Post请求 自动生成IP模拟POST访问后端程序 JAVA 动态替换代理IP并模拟POST

  5. Web 测试总结

    一.输入框 1.字符型输入框: (1)字符型输入框:英文全角.英文半角.数字.空或者空格.特殊字符“~!@#¥%……&*?[]{}”特别要注意单引号和&符号.禁止直接输入特殊字符时,使 ...

  6. date格式互转

    +"%Y/%m/%d-%H:%M:%S" date -d "2017/11/21 17:02:09" +%s

  7. C和C指针小记(十五)-结构和联合

    1.结构 1.1 结构声明 在声明结构时,必须列出它包含的所有成员.这个列表包括每个成员的类型和名称. struct tag {member-list} variable-list; 例如 //A s ...

  8. SQL[Err] ORA-00933: SQL command not properly ended

    原文链接:https://www.cnblogs.com/godtrue/p/3784526.html 1:可能SQL语句中关键字前后缺少空格 2:Oracle 给表起别名时,直接在表名的后面空格别名 ...

  9. Vue Watch 的原理 和 $nextTick() 通俗理解

    网上watch和$nextTick()解释比较复杂,涉及到promise,h5的dom发生变化的新api等复杂代码,下列就是两个参考. [watch原理] [$nextTick()] 首先,看遇到问题 ...

  10. Spring 学习教程(三):Spring MVC

    1. 用户访问 /index2. 根据web.xml中的配置 所有的访问都会经过DispatcherServlet3. 根据 根据配置文件springmvc-servlet.xml ,访问路径/ind ...