三、用户和组

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. Liunx下Mysql,MongoDB性能优化的配置

    场景 这几天在赶十一上线的项目,但是突然发现接口性能不好,高并发支持不住.又不想改代码,就在数据库层面进行优化. Mysql 分区:项目中有对40万条的数据进行时间查询的要求,就算对DateTime建 ...

  2. vue成就购物城的功能 (展示增删改查)

    <!DOCTYPE html><html> <!DOCTYPE html> <html> <head> <meta charset=& ...

  3. 【C++ Primer Plus】编程练习答案——第5章

    1 void ch5_1() { 2 using namespace std; 3 int small, big, sum{0}; 4 cout << "enter small ...

  4. redis 5.0.12 install

    redis 5.0.12 install ## check directory ls -l /XXXXXXX ##create dir mkdir -p /XXXXXXX/dataredis mkdi ...

  5. Java数据类型详解!Java秘诀,Java入门基础

    Java的基本数据类型算是Java学习的基础之一,经常会听到大家提起.那么你到底有没有真正理解和掌握数据类型呢? Java 语言支持的数据类型分为两种:基本数据类型和引用数据类型!本文主要针对这两大数 ...

  6. Django序列化页和过滤页规范

    序列化类:serializers.py from rest_framework import serializers from goods.models import Goods, GoodsCate ...

  7. c++-string类--insert函数

    string &insert(int p0, const char *s);--在p0位置插入字符串s string &insert(int p0, const char *s, in ...

  8. Windows用cmd编译运行C程序

    在Windows环境下用命令行编译运行程序 浙江大学-C语言程序设计进阶 配置gcc 准备一个Dev-cpp 找到gcc.exe所在目录 Dev-Cpp\MinGW64\bin 地址栏右键将地址复制为 ...

  9. 半天撸一个简易版mybatis

    为什么需要持久层框架? 首先我们先看看使用原生jdbc存在的问题? public static void main(String[] args) { Connection connection = n ...

  10. Java序列初始化

    1.数组 Java数组可以用元素集合初始化: char[] c=new char[]{'.','.','.','.'}; 而想要用指定数量的相同元素来初始化数组,可以使用Arrays.fill()方法 ...