Linux的账号及权限管理

一.管理用户账号

1.1 用户账户的分类

1.1.1 用户账号的分类
  1. 超级用户(拥有至高无上的权利) root用户是Linux操作系统中默认的超级用户账号,对本主机拥有最高的权限,系统中超级用户是唯一的。
  2. 普通用户(权限受到限制的用户)由root用户或其他管理员用户创建,拥有的权限会受到限制,一般只在用户自己的宿主目录中拥有完整权限。
  3. 程序用户(不是给人使用的,是给程序使用的  不允许登录)在安装Linux操作系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,仅用于维持系统或某个程序的正常运行,如bin、daemon、ftp、mail等。
1.1.2 用户标识号 UID

超级用户root用户账号的UID固定值0

程序用户账号的UID默认为Centos 6: 1~499,Centos7: 1~ 999

普通用户的UID默认为Centos 6: 500以上 ,Centos7: 1000~ 60000

1.1.3 用户账号文件

作用:保存用户名称、宿主目录、登录Sell等基本信息,每一行对应一个用户的帐号记录

/etc/passwd  存放用户信息

/etc/shadow   存放密码以及用户密码信息

1.2 用户账号管理

1.2.1 添加用户账号——useradd

添加新用户,并对新用户进行一些个性化设置

格式: useradd 【选项】 用户名

选项说明
-u 指定uid
-M不生成家目录
-s指定shell类型
-e指定用户的失效时间
-d指定用户的家目录位置(与-M一起使用,不生效)
-g指定基本组
-G指定附加组
-r创建程序用户  id<1000
-c写备注信息
-p密码加密
-o生成相同的UID

小题目:

随机生成一个密码

tr -d  删除去除

tr  -c  用字符串中字符集的补集替换此字符集,要求字符集为ASCII

[[:alnum:]]  [a-zA-Z0-9]  数字和字母

head -c 12    取字符12位

1.2.2 用户账号的初始化配置

新建用户账号时,从  /etc/skel  目录中复制而来

主要的用户初始配置文件:

~/.bash_profile  这个文件是为系统全局变量配置文件,可以通过重启系统或者执行source /etc/profile 命令使profile文件被读取

~/.bashrc   这个文件实际上是/etc/profile的子目录,存放的是一些应用程序所需的启动脚本

~/.bash_logout  每一个允许bash shell 的用户都会执行此文件,可通过执行bash命令打开一个新的bash shell时,使bashrc文件被读取

1.2.3 设置/更改用户的口令——passwd

格式:passwd 【选项】 用户名

选项说明
-l 锁定用户      (不能登录)
-u解锁用户
-S查看用户的状态
-d清空密码  不需要密码直接登录
修改密码

免交互修改密码

设置用户密码直接使用passwd设置,需要一个一个进行设置,可以调用管道符号,给用户设置密码,进行批量设置密码,使用 --stdin选项。 --stdin  代表标准输入

1.2.4 修改用户账号属性——usermod

对已有用户的属性进行修改

格式: usermod 【选项】 用户名

选项说明
-l更改用户账号的登录名称
-L锁定用户账户
-u修改用户的UID 号
-U解锁用户账户
-d修改用户的家目录位置
-e修改用户的账户失效时间,可使用YYYY-MM-DD的日期格式
-g修改用户的基本组名
-G修改用户的附加组名
-s指定用户的登录shell

-l 修改用户名

usermod  -l  新名  原名

1.2.5 删除用户账号——userdel

格式: userdel    [-r]   用户名

使用userdel时,加上-r选项,表示删除用户的家目录。

如果不加 -r ,删除之后再创建用户时会报错

二.管理组账号

2.1 组账号概述

2.1.1 组账号的分类

基本组(私有组): 基本组账号只有一个,一般为创建用户时指定的组。在/etc/passwd文件中第4段记录的即为该用户的基本组GID号。

附加组(公共组): 用户除了基本组以外,额外添加指定的组。

2.1.2 组标识号 GID

root用户账号的GID固定值0

程序用户账号的GID默认为Centos 6: 1~499,Centos 7: 1~ 999

普通用户的GID默认为Centos 6: 500以上,Centos7: 1000~ 60000

2.1.3 组账号文件

文件位置:

​ /etc/group:保存组账号基本信息

​ /etc/gshadow:保存组账号的密码信息

2.2 组账号管理

2.2.1 添加组账号——groupadd

格式: groupadd 【-g GID】组账号名

不加 -g 的话,会默认创建组id号

2.2.2 添加、设置、删除组成员——gpasswd

格式: gpasswd 【选项】 组账号名

选项说明
-a向组内添加一个用户
-d从组内删除一个用户成员
-M定义组成员列表,以逗号分隔

2.2.3 删除组账号——groupdel

格式: groupdel 组账号名

2.3 查询账号信息

2.3.1 查询用户账号所属组——groups

格式:groups  [用户名]

2.3.2 查询用户账号身份标识——id

格式:id   [用户名]

2.3.3 查询用户账号的登录属性——finger

格式:finger  [命令]

2.3.4 查询当前主机的用户登录情况——w命令、who命令、user命令

三.文件/目录的权限和归属

 在Linux文件系统的安全模型中,为系统中的文件赋予了两个属性:访问权限和文件所有者,简称“权限”和“归属”。其中访问权限包括读取、写入、可执行三种基本类型,归属包括属主(拥有该文件的用于账号)、属组(拥有该文件的组账号)。Linux系统根据文件和目录的访问权限、归属来对用户访问数据的过程进行控制。

3.1 查看文件/目录的权限和归属

第1个字符:表示该文件的类型,可以是d(目录文件)、b(块设备)、c(字符设备)、“-”(普通文件)、l(软链接)、s(套接字)、p(管道符)

第2~4个字符:表示该文件的属主用户(User)对该文件的访问权限;

第5~7个字符:表示该文件的属组内各成员用户(Group)对该文件的访问权限;

第8~10个字符:表示其他任何用户(Other)对该文件的访问权限;

第11个字符:这里的“ . ” 与SELinux有关

访问权限:

读取 r : 允许查看文件内容、显示目录列表

写入 w : 允许修改文件内容、允许在目录中新建、移动、删除文件或子目录

可执行 x : 允许运行程序、切换目录

特殊的一个的tmp(临时文件)文件 t

归属(所有权):

属主: 拥有该文件或目录的用户账号

属组: 拥有该文件或目录的组账号

3.2 设置文件/目录的权限和归属

3.2.1 设置文件/目录权限——chmod

u属主
g属组
o其他人
a所有人(上面三个)
+ 在原有的基础上加上权限
-在原有的基础上减去权限
=赋于  原有的权限不看,就是等于后面的权限

3.2.2 设置文件/目录归属——chown

属主改变:

属组改变:

属主 属组都改

小问题:

执行cp  /etc/issue  /data/dir/ 所需要的最小权限

cp   x

/etc/  x

issue   r

/data/   x

/dir/   wx

3.3 权限掩码——umask

umask作用:

控制新建的文件或目录的权限(创建文件的话,执行权限不会受影响)

默认权限去除umask的权限为新建的文件或目录的权限

umask查看: umask

新建目录的默认权限:777

新建文件的默认权限:666

root的umask默认时  022

非特权用户umask默认是 002

实例:

默认的 减去022

用户文件创建掩码 123

意会即可  言传太难

3.4 特殊权限

suid

当设置在可执行文件上时,允许以文件所有者的身份(setuid)或文件所属组的身份(setgid)运行该文件。

此处s表示当使用这个命令程序时,把当前用户当成文件的所属主

Sticky位

其它用户虽然有权限,但是无法删除

小问题:

/tmp

t  权限中多了一个t 是什么意思?

除了文件所有者  超级管理员 其他人不可以删除文件

只能对文件夹有用

3.5 ACL 访问控制列表

实现灵活的权限管理

除了文件的所有者,所属组和其它人,可以对更多的用户设置权限

用法: setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...
-m,       --modify-acl 更改文件的访问控制列表
-M,       --modify-file=file 从文件读取访问控制列表条目更改
-x,       --remove=acl 根据文件中访问控制列表移除条目
-X,       --remove-file=file 从文件读取访问控制列表条目并删除
-b,       --remove-all 删除所有扩展访问控制列表条目
-k,       --remove-default 移除默认访问控制列表
          --set=acl 设定替换当前的文件访问控制列表
          --set-file=file 从文件中读取访问控制列表条目设定
          --mask 重新计算有效权限掩码
-n,       --no-mask 不重新计算有效权限掩码
-d,       --default 应用到默认访问控制列表的操作
-R,       --recursive 递归操作子目录
-L,       --logical 依照系统逻辑,跟随符号链接
-P,       --physical 依照自然逻辑,不跟随符号链接
          --restore=file 恢复访问控制列表,和“getfacl -R”作用相反
          --test 测试模式,并不真正修改访问控制列表属性
-v,       --version           显示版本并退出
-h,       --help              显示本帮助信息

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/272494.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

c++学习笔记(6)-类型转换

1、概念 C类型转换是将一种数据类型转换为另一种数据类型的过程。 2、分类 C中的类型转换可以从3个角度来划分&#xff1a; 根据类型转换是由程序员显式指定&#xff0c;还是由编译器自动完成&#xff0c;分为显式类型转换和隐式类型转换&#xff1b;根据参与类型转换的变量…

智能优化算法应用:基于减法平均算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于减法平均算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于减法平均算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.减法平均算法4.实验参数设定5.算法结果6.…

测试用例要如何写

​ &#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试…

IDEA基本设置

本博客适用于纯新手小白&#xff0c;或者刚下载IDEA想要优化开发添加配置的读者。 基础设置 不区分大小写代码补全 打开 IntelliJ IDEA。转到 “File”&#xff08;文件&#xff09; > “Settings”&#xff08;设置&#xff09;&#xff08;Windows/Linux&#xff09;或 “…

swagger1.2 apiPost工具测试接口没有问题,换成swagger 接口调测时报错 Required request body is missing

把 请求方法由get换成post GetMapping换成 PostMapping 原因apiPost自动把请求json参数封装到请求体里了&#xff0c; 但swagger没有封装&#xff0c;通过networker可以看到载荷里并没有任何东西

(C++)DS哈希查找—二次探测再散列(附思路和详细注释)

Description 定义哈希函数为H(key) key%11。输入表长&#xff08;大于、等于11&#xff09;&#xff0c;输入关键字集合&#xff0c;用二次探测再散列构建哈希表&#xff0c;并查找给定关键字。 Input 测试数据组数 1≤&#xfffd;≤50. 每组测试数据格式如下&#xff1a…

面试题:Zabbix 和 Prometheus 到底怎么选?

文章目录 前言历史简介PrometheusZabbix 架构对比PrometheusZabbix 综合对比总结 前言 新公司要上监控&#xff0c;面试提到了 Prometheus 是公司需要的监控解决方案&#xff0c;我当然是选择跟风了。 之前主要做的是 Zabbix&#xff0c;既然公司需要 Prometheus&#xff0c;…

【如何破坏单例模式(详解)】

✅如何破坏单例模式 &#x1f4a1;典型解析✅拓展知识仓✅反射破坏单例✅反序列化破坏单例✅ObjectlnputStream ✅总结✅如何避免单例被破坏✅ 避免反射破坏单例✅ 避免反序列化破坏单例 &#x1f4a1;典型解析 单例模式主要是通过把一个类的构造方法私有化&#xff0c;来避免重…

鸿蒙系统的分布式技术:重塑智能终端的未来

华为鸿蒙系统自发布以来&#xff0c;凭借其创新的分布式技术&#xff0c;改变了我们对智能终端的认知和使用方式。鸿蒙系统的分布式技术是一种全新的设计理念&#xff0c;它将不同设备、不同应用场景视为一个整体&#xff0c;通过共享、协同和无缝连接&#xff0c;为用户带来前…

android setText不生效问题

1.直接说解决方案&#xff1a; 在代码没问题的情况下&#xff0c;将你的TextView的Id改一下&#xff0c;然后再重启编译器即可(注意&#xff0c;不修改TextView的ID&#xff0c;单独重启是没有作用的&#xff01;) 2.出现问题的过程&#xff1a; 产品新增一个需求&#xff0c…

SpringBoot整合JWT+Spring Security+Redis实现登录拦截(一)登录认证

一、JWT简介 JWT 全称 JSON Web Token&#xff0c;JWT 主要用于用户登录鉴权&#xff0c;当用户登录之后&#xff0c;返回给前端一个Token&#xff0c;之后用户利用Token进行信息交互。 除了JWT认证之外&#xff0c;比较传统的还有Session认证&#xff0c;如何选择可以查看之前…

MAGVIT: Masked Generative Video Transformer

Paper name MAGVIT: Masked Generative Video Transformer Paper Reading Note Paper URL: https://arxiv.org/abs/2212.05199 Project URL: https://magvit.cs.cmu.edu/ Code URL: https://github.com/google-research/magvit TL;DR 2023 年 CMU、google 等发表 CVPR20…

[Python工程化之路] 搭建Python开发环境 包管理环境以及Linter

个人博客:Sekyoro的博客小屋 个人网站:Proanimer的个人网站 在工程化上,Python相比于Java,C#这类语言还是差了不少,不过整个生态还是不错的. 项目结构 一般有两种,一种称为flat另一种为src. ├── sample │ ├── AUTHORS.rst │ ├── docs | | ├── conf.py │ │ └…

深入Apache Commons Config:管理和使用配置文件

第1章&#xff1a;引言 咱们都知道&#xff0c;在软件开发中&#xff0c;管理配置文件是一件既重要又让人头疼的事。想象一下&#xff0c;咱们的应用程序有一堆设置需要调整&#xff0c;比如数据库的连接信息、应用的端口号&#xff0c;或者是一些功能的开关。如果这些信息硬编…

java实现广度优先搜索算法

广度优先搜索算法&#xff08;BFS&#xff09;是一种用于图遍历的算法。它从图的某个节点开始&#xff0c;依次访问其所有邻接节点&#xff0c;再依次访问邻接节点的邻接节点&#xff0c;以此类推&#xff0c;直到遍历完所有节点。 BFS使用队列数据结构来实现遍历过程。具体步…

关于 Appium 各种版本的安装,都在这里

大家在初次接触 Appium 时会看到网上各种帖子讲解如何安装 Appium&#xff0c;各种 Appium 版本的安装教程满天飞&#xff0c;而很多帖子中提供的安装教程是已经过时了的&#xff0c;容易误导初学者。 这篇文章带着你一起全面了解 Appium 各种版本如何选择如何安装。 一句话概述…

Superset 二次开发之自定义Viz Plugins(Hello World v2)

环境&#xff1a; Node.js 16npm 7 or 8安装webpack 全局安装 npm install webpack -g 安装eslint superset-frontend> npm install eslint 1.Yeoman 生成器 全局安装Yo> npm i -g yo 2.进入/superset-frontend/packages/generator-superset目录 npm i && npm…

传感器原理与应用--传感器基本特性与应变式传感器

文章目录 上一篇传感器的基本特性应变式传感器应变式传感器的应用下一篇 上一篇 传感器的基本特性 一般来说能把特定被测量信息按一定规律转换成某种可用信号的器件或装置&#xff0c;称为传感器 静态特性 灵敏度 定义&#xff1a;输出量增量 Δ y \Delta y Δy与引起输出量…

xstream 远程代码执行 CVE-2021-29505 已亲自复现

xstream 远程代码执行 CVE-2021-29505 已亲自复现 漏洞名称漏洞描述影响版本 漏洞复现环境搭建漏洞利用 修复建议总结 漏洞名称 漏洞描述 XStream 是用于将 Java 对象序列化为 XML 并再次序列化的软件。 1.4.17 之前的 XStream 版本中存在一个漏洞&#xff0c;可能允许远程攻…

集成钉钉机器人消息推送

一、简介 背景 客户需要通过钉钉接收消息通知 名词解释 群聊机器人&#xff1a;钉钉群里可以创建一个机器人&#xff0c;平台通过机器人把告警/通知推送到群里私聊机器人&#xff1a;钉钉后台开启机器人配置&#xff0c;平台绑定此机器人后&#xff0c;可以通过私聊的方式将…