三、用户和组

1、概念

(1)、用户概念:

用户是用来运行某一些进程、拥有某一些文件或目录。

在Linux里面,用户分成三大类:root用户、系统用户、普通用户。

用户是用UID来唯一标识身份的,且root用户UID为0,系统用户UID范围为1-999,普通用户UID从1000开始默认依次往后累加。

(2)、什么是系统用户?

一般运行的进程属于系统内核进程,那么运行这些进程的用户都是系统用户,通常不会到系统前台,也就是命令解释器shell里面去登录。

(3)、主要组的概念:

当系统创建一个用户的时候,会单独给这个用户分配一个组。

在/etc/passwd文件中的第四个字段GID定义。

特点1:默认情况下,组名与用户名同名

特点2:默认情况下,GID与UID同号

特点3:默认情况下,该组里面只有该成员本身一人

特点4:每个用户有且仅有一个主要组,是1:1的数量关系。
(4)、从属组(附加组)的概念:

某个用户被人为添加到某个额外的组,获取了这个组的权限,那么这个组就叫做从属组,或者附加组,它是非主要组。

在/etc/group文件中的最后一个字段定义。

特点1:每个用户的从属组可以有多个,是1:n的数量关系。

特点2:反过来,一个组可以有多个用户成员,即可以是多个用户的从属组。

2、管理用户的常用命令:

id 命令——查看当前登录用户的UID、GID和groups等信息

ll 命令——查看用户对某个文件的访问权限,或查看三类用户对某个文件的访问权限

ps -au 命令——查看当前终端下运行的所有进程并显示与之相关联的用户。

useradd命令——创建新用户

usermod命令——修改用户属性

-G修改用户的从属组

-g修改用户的主要组

-c修改用户的注释字段

-u修改用户的UID

groupdel 用户名 命令—— 删除组

3、长文件形式详情:

ls -l 或 ll

第一列:文件的访问权限,共3组

是对谁而言的:文件所属用户、文件所属组、除了所属用户和组以外的其他用户

第一列第1位:

l->link  ->  链接文件

d->directory  ->  文件夹

横杠-  -> 普通文件

第一列后9位:

第一组代表所属用户对文件的访问权限

第二组代表所属组对文件的访问权限

第三组代表其他用户对文件的访问权限

权限包括以下三种:

r  ->  read  -> 可读

w  ->  write  ->  可写

x   ->  execute  ->  可执行

只读:r--

可读可写:rw-

可读可写可执行:rwx

第三列root -> 文件所属用户是root

第四列root -> 文件所属组是root组

4、存放信息的位置:

/etc/passwd -> 存放本地用户的信息

格式 -> 用户名:密码:UID:GID:注释:宿主目录:命令环境

密码:用X代替保存在影子文件中

GID:新建用户后系统默认一个同名组

注释:可空

宿主目录:/root或者/home/dir

命令环境:/bin/bash或者/sbin/nologin

/bin/bash -> 用户可以使用shell登陆系统

/sbin/nologin -> 用户不能登陆系统,但可以运行某个程序,如果哪个用户属于不安全用户,就可以将该用户设置为nologin

锁定账户:Vim /etc/passwd -> luna : /sbin/nologin

解锁账户:Vim /etc/passwd -> luna : /bin/bash

/etc/group -> 存放本地组信息

格式 -> 组名称:组密码:GID:从属组用户

组密码:用X代替,密码存放在/etc/gshadow文件中

从属组用户:即有哪些用户从属于这个组

/etc/shadow -> 存放本地用户的密码

格式 -> 用户名:密码:最后更改密码日期:密码最短使用期限:密码最多使用期限:密码到期警告期:密码到期后还可使用时间:密码到期日:预留空白字段

密码:  *  ->  代表没有密码,是空的

!->  代表该用户被禁用

密码最短使用期限:0  ->  表示无限期使用

5、用户和组的命令:

sudo 命令——以root身份运行命令

root用户 -> 系统超级用户 -> 具有系统全部权限的用户

useradd命令——创建用户,通常新建完一个用户后紧接着给他分配一个密码

usermod命令——修改用户属性

-g  ->  为用户指定主要组 

-G ->  为用户指定从属组

-c  ->  为用户添加一个注释字段

-u  ->  为用户指定一个UID

-L  ->  锁定用户,使用户密码不可用,例如连续输错密码。

-U ->  解锁用户,使用户密码恢复可用

userdel命令——删除用户

userdel 用户名 -> 非彻底删除,宿主目录被保留

userdel -r 用户名 -> 彻底删除,宿主目录被删除

groupadd命令——创建组

-g  ->  给新建的组分配一个GID

groupmod命令——修改现有的组 -modify

-g  ->  指定新的GID(主组)

-G  ->  指定附加组

-n  ->  指定新的groupname

groupdel命令——删除组 (不能删除属于其他用户的主组)

chage -用户名 命令——设置账户到期时间

-d  ->  设置最后一次修改用户密码的时间,以距离1970年1月1日开始算起

-E  ->  设置账户到期日期

-I   ->  设置账户到期后能继续登陆系统的时间

-m ->  设置账户可以修改密码的最少天数

-M ->  设置账户必须更改密码前的最多天数

-W ->  设置密码即将到期的警告天数

Linux基础三:用户和组的更多相关文章

  1. 【原创】Linux基础之用户和组

    1 添加.删除用户 # useradd $user# userdel $user 2 设置用户密码 # passwd $user /etc/passwd 3 查看$user的用户和组信息 # id $ ...

  2. linux基础之用户和组管理及权限

    一.用户和组管理 相关配置文件 /etc/passwd: 用户名 : 密码占位符 : UID : GID : COMMENTS : 家目录 :默认shell /etc/group: 组名 : 组密码占 ...

  3. linux基础_用户和组的三个文件

    1./etc/passwd文件 用户(user)的配置文件,记录用户的各种信息 每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录shell 2./etc/shadow文件 口令 ...

  4. Linux系统下用户与组的管理

    Linux系统下用户与组的管理 一.用户及组基本概述 Linux 系统上,用户管理是基于用户名和密码的方式进行资源的分配. 1.uid(用户身份标识) (1)root用户 uid为0 (2)普通用户: ...

  5. Linux学习--4.用户和组的管理

    用户和组的管理 前言 本篇文章主要讲Linux系统下用户和组的概念,还有添加用户和组,修改用户和组的基本操作,会涉及不少与之相关的配置文件与命令的介绍,几乎所有 正文 首先,简单提下概念,用户是操作系 ...

  6. 管理Linux服务器的用户和组

    管理Linux服务器的用户和组 Linux操作系统是一个多用户多任务的操作系统,允许多个用户同时登录到系统,使用系统资源. 为了使所有用户的工作顺利进行,保护每个用户的文件和进程,规范每个用户的权限, ...

  7. linux下创建用户及组

    linux下创建用户及组: 1.创建组 groupadd  组名 2.创建用户,并将用户添加到组 useradd  用户名  -g  组名 3.更改用户的密码 password  用户名 4.修改目录 ...

  8. Linux基础-3.用户、群组和权限

    1.用户及passwd文件 1)掌握/etc/passwd文件的功能:存储所有用户的相关信息,每一个用户占用一行记录,该文件也被称为用户信息数据库(Database) 2)/etc/passwd文件中 ...

  9. linux(centOS7)的基本操作(三) 用户、组、权限管理

    用户和组 1.用户.组.家目录的概念 linux系统支持多用户,除了管理员,其他用户一般不应该使用root,而是应该向管理员申请一个账号.组类似于角色,系统可以通过组对有共性的用户进行统一管理.每个用 ...

随机推荐

  1. Kettle启动时报错Cannot create java virtual machine & A java exception has occurred

    开源免费--最喜欢的四个字没有之一 1.官网下载 https://sourceforge.net/projects/pentaho/files/Data%20Integration/ 下载完后,解压即 ...

  2. oracle 查看表结构语句

    desc + 表名 describe命令 列出指定表的列定义,视图或同义词,或指定函数或存储过程的详述. 语法:desc[ribe]   {[模式.]对象[@链接串]} 模式 表示对象驻留的架构.如果 ...

  3. php flush() 页面缓冲及时输出 每隔一秒输出页面输出

    <?php //方案一 ob_end_clean(); echo str_pad('', 1024); // 设置足够大,大过php.ini的output_buffering设置值 for ($ ...

  4. NER为什么那么难

    命名实体识别(Name Entity Recognition) 是自然语言处理中一个比较基础的问题.要解决的问题是,从unstructure的文本当中找到实体并归类.当然我这么定义已经有了一定的bia ...

  5. Dapr + .NET Core实战(十一)单机Dapr集群负载均衡

    如何单机部署Dapr集群 第十篇讲过了K8S集群下如何使用Dapr运行程序,但是很多人一直在问如何单机下进行Dapr的负载,这节课我们来聊聊如何单机进行Dapr的负载. 首先要说的是单机下,通过 da ...

  6. enum 试图表达64位数

    enum AttributeType: unsigned long long{ aa = 1, bb = 2, cc = 0x842AC1040000}; int main() { DWORD64 b ...

  7. 技术番外篇丨Github Action CI/CD

    起源 看到.Net群里再聊CI/CD,我就这里分享一下我目前自己一些小东西的做法,我目前在Github有一个自己私有的组织,里面存放了我的部分商业化项目,早期我采用Jenkins用Webhooks进行 ...

  8. SpringBoot-语言国际化

    在resouce下新建i18ni18n 类似的还有k8s在i18n下新建signIn.properties再新建 signIn_zh_CN.properties此时,iden会帮助合并: 现在可以在这 ...

  9. ScatterLayout:分散布局在py中的引用

    """ ScatterLayout:分散布局 """ from kivy.app import App from kivy.uix.scat ...

  10. JVM:内存溢出OOM

    JVM:内存溢出OOM 本笔记是根据bilibili上 尚硅谷 的课程 Java大厂面试题第二季 而做的笔记 经典错误 JVM 中常见的两个 OOM 错误 StackoverflowError:栈溢出 ...