Linux的账号及权限管理

news2024/11/18 21:52:00

一.管理用户账号

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              显示本帮助信息

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ChatGPT如何在地学、GIS、气象、农业、生态、环境等领域中完美应用

以ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diffusion、星火大模型、文心一言、千问为代表AI大语言模型带来了新一波人工智能浪潮&#xff0c;可以面向科研选题、思维导图、数据清洗、统计分析、高级编程、代码调试、算法学习、论文检索、写作、翻译、润色、文献辅助…

利用易点易动设备管理系统优化企业设备巡检流程

随着科技的发展,各种物联网IoT技术日趋成熟,各种智能设备也被广泛应用于各行各业。相比传统手写方式记录设备状态信息,利用数字化设备管理系统收集和记录设备运行数据,无论是从工作效率还是数据准确性来看,都能获得很大提升。作为一家制造企业,我们在日常设备运行与维修保养中,…

CAN协议FPGA篇

一.引言 CAN&#xff08;Controller Area Network&#xff09;总线&#xff0c;即控制器局域网总线&#xff0c;是一种功能丰富的车用总线标准。该协议最初是由德国博世&#xff08;Bosch&#xff09;公司在1983年制定的&#xff0c;之后在美国密歇根州底特律举行的汽车工程师协…

Qt 中使用 MySQL 数据库保姆级教程(下)

作者&#xff1a;billy 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 前言 上篇中我们安装好了 MySQL 数据库和 Navicat 软件&#xff0c;下面在 Qt 中尝试使用数据库 1. 在 Qt 中连接 MySQL 数据库&#…

实现阿里云oss云存储,简单几步

一、前言 虽然平常学习用的不多&#xff0c;但是用的时候再去找官方文档&#xff0c;也很繁琐&#xff0c;不如直接整理以下&#xff0c;方便粘贴复制&#xff0c;本文介绍两种图片上传方式①普通上传②服务端签名直传 1.普通上传 加载maven依赖 <dependency><grou…

外汇天眼:心态为何是交易成败的第一要素?

外汇天眼&#xff1a;心态为何是交易成败的第一要素&#xff1f; 交易是一项高难度、高复杂度的任务&#xff0c;其背后需要具备纪律性、适应性强的性格&#xff0c;以及严密的计划和执行力。 良好的交易心态是成为优秀交易者的关键要素。 从新手到精湛的交易者&#xff0c;这…

logstash收集华为、H3C、Cisco交换机日志

网络设备配置 将 syslog-ip 替换成服务器的IP地址。 Huawei info-center loghost source interface info-center loghost syslog-ip local-time facility local6 H3C info-center loghost source interface info-center loghost syslog-ip facility local5 Aruba logging arm …

C语言学生管理系统(全部代码,复制即用)

文章目录 前言功能运行截图所有代码 前言 无套路&#xff0c;均已上机通过&#xff0c;求个关注求个赞&#xff0c;提供答疑解惑服务。 功能 本课题要求用C语言编写某班级学生学情管理系统。对一个有若干个学生的学院&#xff0c;每个学生有N门课程&#xff0c;系统实现对学…

Java学习:初入Java

1.Java文件扩展名 .class&#xff1a;字节码文件&#xff0c;通过JVM虚拟机译码执行相关程序&#xff0c;java的跨平台依靠的就是JVM&#xff0c;不同平台有不同类型的JVM。 .java&#xff1a;Java源文件&#xff0c;存放Java源代码&#xff0c;一份Java源文件可能有多个类&…

GIt的应用

一、Git概述 1.1 什么是git git 是一个代码协同管理工具&#xff0c;也称之为代码版本控制工具&#xff0c;代码版本控制或管理的工具用的最多的主要 是 svn 、 git 。 SVN 是采用的同步机制&#xff0c;即本地的代码版本和服务器的版本保持一致&#xff08;提交版本时&…

ansible 备忘清单(一)

笔者&#xff1a; 把以前的手写笔记电子化吧&#xff0c;顺便当作复习。 基础命令 命令 参数 备注 ansible --version 查看版本号 ansible-doc --help 查看帮助信息 -l &#xff5c;--list 查看所有模块 -s 查看模块摘要 Ansible servers -I &#xff5c;-…

AI大模型引领未来智慧科研暨ChatGPT在地学、GIS、气象、农业、生态、环境等领域中的高级应用

以ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diffusion、星火大模型、文心一言、千问为代表AI大语言模型带来了新一波人工智能浪潮&#xff0c;可以面向科研选题、思维导图、数据清洗、统计分析、高级编程、代码调试、算法学习、论文检索、写作、翻译、润色、文献辅助…

数据结构:单调栈

1.单调栈 单调栈是一种数据结构&#xff0c;其中存放的数据应该是有序的&#xff0c;所以单调栈也有单调递减栈和单调递增栈 单调递增栈&#xff1a;栈顶到栈底的元素大小是从小到大 单调递减栈&#xff1a;栈顶到栈底的元素大小是从大到小 单调栈主要就是用来求一个给定序列中…

【Proteus】swjtu西南交大微机原理与接口技术课设:8086 最小模式下的最简硬件核设计

一、实验目的 让学生深入理解计算机硬件的基本组成结构、工作原理和设计方法&#xff0c;掌握 16 位微处理 器&#xff08;如 8086&#xff09;的内部结构和原理&#xff0c;并能够通过实际操作实现对其功能的在线调试和验证。 这样可以加深对计算机系统的认识和理解&#xff…

技术太难,人工太慢,这才是最牛的温湿度监控工具!

随着科技的不断进步和各行业的发展&#xff0c;温湿度监控已经成为确保产品质量、维护设备安全以及提高工作环境效能的关键工具。 在这个信息时代&#xff0c;实时、精准的温湿度数据监测不仅为企业带来了飞速的发展&#xff0c;也为行业发展注入了新的活力。 客户案例 医疗行…

Checkpoint 执行机制原理解析

在介绍Checkpoint的执行机制前&#xff0c;我们需要了解一下state的存储&#xff0c;因为state是Checkpoint进行持久化备份的主要角色。Checkpoint作为Flink最基础也是最关键的容错机制&#xff0c;Checkpoint快照机制很好地保证了Flink应用从异常状态恢复后的数据准确性。同时…

golang连接mysql的第一个程序(最新)

不想多说话&#xff0c;先把golang和mysql连接好&#xff0c;环境配置好&#xff0c;然后直接上代码就行了&#xff0c;代码可直接运行。 package mainimport ("database/sql""fmt"_ "github.com/go-sql-driver/mysql" )func main() {// MySQL …

nvm 的安装及使用 (Node版本管理器)

目录 1、nvm 介绍 2、nvm安装 3、nvm 使用 4、node官网可以查看node和npm对应版本 5、nvm安装指定版本node 6、安装cli脚手架 1、nvm 介绍 NVM 全称 node.js version management &#xff0c;专门针对 node 版本进行管理的工具&#xff0c;通过它可以安装和切换不同版本的…

【SpringCloud笔记】(11)消息驱动之Stream

Stream 技术背景 底层不同模块可能使用不同的消息中间件&#xff0c;这就导致技术的切换&#xff0c;微服务的维护及开发变得麻烦起来 概述 官网&#xff1a; https://spring.io/projects/spring-cloud-stream#overview https://cloud.spring.io/spring-cloud-static/spring…

在Go语言中处理HTTP文件上传

大家好&#xff0c;我是你们可爱又迷人的编程小助手&#xff0c;今天要带你们一起探讨在Go语言中如何处理HTTP文件上传&#xff0c;让我们把这场技术之旅变得轻松有趣吧&#xff01; 首先&#xff0c;想象一下这个场景&#xff1a;你是一个网站的开发者&#xff0c;用户们急切…