Linux:用户账号和权限管理的命令

news2024/11/28 12:46:21

目录

一、Linux用户的分类和组的分类

1.1、用户账号和组账号

1.2、用户的分类

1.3、组账号

1.4、用户账号文件/etc/passwd

二、用户管理相关命令

2.1、chage命令:用来修改帐号和密码的有效期限,针对目前系统已经存在的用户

2.2、useradd:添加用户账号

2.3、passwd命令

2.4、usermod命令

2.5、userdel命令

三、用户账号文件与组账号文件

3.1、用户账号的初始配置文件

3.2、组账号文件

四、组账号文件相关命令

4.1、groupadd命令

4.2、gpasswd命令

4.3、groupdel命令

4.4、groups命令

4.5、finger命令   :查询用户账号的详细信息

4.6、查询账号信息w、who、users

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

5.1、设置文件/目录权限 — chmod

5.2、文件或目录的权限和归属

六、权限掩码umask


一、Linux用户的分类和组的分类

1.1、用户账号和组账号

(1)用户帐号

①超级用户  ②普通用户  ③程序用户

 (2)组帐号

①基本组(私有组)   ②附加组(公共组)
 (3)UID和GID 

①UID (User IDentity,用户标识号)

②GID (Group IDentify,组标识号)

1.2、用户的分类

①超级用户  ②普通用户  ③程序用户

(1)超级用户: root 用户是 Linux 操作系统中默认的超级用户账号,对本主机拥有至高 无上的权限,类似于 Windows 操作系统中的 Administrator 用户。只有当进行系统 管理、维护任务时,才建议使用 root 用户登录系统,日常事务处理建议只使用普 通用户账号。
root 拥有对系统的最高的管理权限 ID=0

(2)普通用户:普通用户账号需要由 root 用户或其他管理员用户创建,拥有的权限受 到一定限制,一般只在用户自己的宿主目录中拥有完整权限
系统用户 UID:1-999(centos7 版本) 1-499(centos6 版本) 
UID:即每个用户的身份标示,类似于每个人的身份证号码。

(3)程序用户:在安装Linux操作系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,而仅用于维持系统或某个程序的正常运 行,如 bin、daemon、ftp、mail 等伪用户 一般不会用来登录系统的,它主要是用于维持某个服务的正常运行.如:ftp,apache。

1.3、组账号

管理员组:root, 0                          普通组:GID
系统组:1-499(CentOS6), 1-999(CENTOS7)
普通组:500+(CentOS6), 1000+(CENTOS7)
表示该账户需要密码才能登录,为空时,账户无须密码即可登录
组账号
基本组:基于某种特定联系(如都需要访问 FTP 服务)将多个用户集合在一起,即构成一个用
户组,表示该组内所有用户的账号称为组账号。每一个用户账号至少属于一个组,这个组称为该用户的基本组(或私有组)。

1.4、用户账号文件/etc/passwd

wangming:用户名是为了方便用户查看,,linux系统是通过UID来识别用户身份,并给权限

x:表示用户没有设置密码,但不是真正的密码,真正密码在/etc/shadow下(!这个x是不能删除的,删除了回导致用户不用密码也能登陆,从而引发安全问题)

1000:表示用户的UID

1000:表示所属基本组账号的GID

wangming:描述性信息,此字段只是用来解释这个用户的意义而已

/home/wangming:宿主目录,即该用户登录后所在的默认工作目录

/bin/bash:录 Shell 等信息,用户完成登录后使用的

扩展:/etc/shadow(影子文件)
/etc/shadow 文件只有 root 用户拥有读权限,其他用户没有任何权限,这样就保证了用户密码的安全性和 /etc/passwd 文件一样,文件中每行代表一个用户,同样使用 ":" 作为分隔符,不同之处在于,每行用户信息被划分为 9 个字段。

第一列:账户名
第二列:存放真正加密的密码,采用SHA512散列算法,更加安全  加密原来用MD5 或 DES
!!和*表示没有密码不能登陆,新创建用户也是!!,如果密码前面显示双感叹号表示该账户被锁定了

第三列:上一次修改密码的时间,从1970年1月1日开始算的,因为1970年是linux的诞生日,date -d "1970-01-01 18983  days"可以查看哪一天改过

第四列:多久之后才可以修改密码,如果是 0,则密码可以随时修改
最小修改间隔时间 ,也就是说 该字段规定了从第三个字段(最后一次修改密码的日期)起,多长时间之内不能修改密码,如果是0 则随时修改密码,如果是10 则代表密码修改后10天之内不能再次修改密码,此字段是为了针对某些人频繁更改账号密码而设计的。

第五列:密码有效期,默认99999(273年),表示永久生效

第六列:密码到期前的第几天发出告警信息,默认是7天,每次登录系统都会向该账户发出 "修改密码" 的警告信息

第七列:密码过期的宽限天数,过期后的几天还是可以登陆的,如果过了宽限天数,系统将不再让此账户登陆,也不会提示账户过期,是完全禁用

比如说,此字段规定的宽限天数是10,则代表密码过期10天后失效;如果是0 则代表密码过期后立即失效;如果是 -1 则代表密码永远不会失效
第八列:账号失效时间,使用自  1970 年 1 月 1 日以来的总天数作为账户的失效时间
第九列:保留,未使用

二、用户管理相关命令

2.1、chage命令:用来修改帐号和密码的有效期限,针对目前系统已经存在的用户

chage [选项] 用户名

-m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。
-M:密码保持有效的最大天数。chage -M 60 root
-w:用户密码到期前,提前收到警告信息的天数。
-E:帐号到期的日期。过了这天,此帐号将不可用。
-d:上一次更改的日期。
-i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
-l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。

2.2、useradd:添加用户账号

useradd  [选项]  用户名

-u:指定用户的 UID 号,要求该 UID 号码未被其他用户使用。 
-d:指定用户的宿主目录位置(当与-M 一起使用时,不生效)。 
-e:指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。 
-g:指定用户的基本组名(或使用 GID 号)。 
-G:指定用户的附加组名(或使用 GID 号)。 
-M:不建立宿主目录,即使/etc/login.defs 系统配置中已设定要建立宿主目录。 
-s:指定用户的登录Shell。

2.3、passwd命令

 passwd  [选项]  用户名

-d:清空指定用户的密码,仅使用用户名即可登录系统。 
-l:锁定用户账户。  
-S:查看用户账户的状态(是否被锁定)。 
-u:解锁用户账户。

2.4、usermod命令

usermod  [选项]  用户名

-l:更改用户账号的登录名称(Login Name)。 

-L:锁定用户账户。  
-U:解锁用户账户。

-u:修改用户的 UID 号。  
-d:修改用户的宿主目录位置。 
-e:修改用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。 
-g:修改用户的基本组名(或使用 GID 号)。 
-G:修改用户的附加组名(或使用 GID 号)。  
-s:指定用户的登录 Shell。

2.5、userdel命令

userdel  [-r]  用户名

添加 -r 选项时,表示连用户的宿主目录一并删除

三、用户账号文件与组账号文件

3.1、用户账号的初始配置文件

1  .bash_profile:示例代码中为用户添加了2个环境变量(JAVA_HOME和CLASSPATH),并修改了已有环境变量PATH的值.(PATH的查找是从前开始查找,找到就返回)
CLASSPATH环境变量的值是在JAVA运行时查找加载类的默认classpath.

2 .bashrc :例子中定义了路径,语言,命令别名(使用rm删除命令时总是加上-i参数需要用户确认,使用ls命令列出文件列表时加上颜色显示)。
每次修改.bashrc后,使用source ~/.bashrc(或者 . ~/.bashrc)就可以立刻加载修改后的设置,使之生效。

一般会在.bash_profile文件中显式调用.bashrc。登陆linux启动bash时首先会去读取~/.bash_profile文件,这样~/.bashrc也就得到执行了,你的个性化设置也就生效了。
关于环境变量的读取顺序:
用户登录 ->> 加载~/.bash_profile --> bash_profile中配置了首先是使~/.bashrc生效

3 .bash_logout 
用途: 用户登出时执行的命令

# ~/.bash_logout

# 在当前用户登出时,打印出Logout 和当前的时间
echo "Logout, `date`" 

3.2、组账号文件

与用户账号文件相类似:

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

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

某一个组账号包含哪些用户成员,将会在group文件内最后一个字段中体现出来(基本组对应的用户账号默认可能不会列出),多个组成员之问使用“,”(逗号)分隔。

grep "^root" /etc/group  #//检索root 组包括哪些用户
grep "root" /etc/group  //检索哪些组包括root 用户

四、组账号文件相关命令

4.1、groupadd命令

groupadd  [-g GID]  组账号名

4.2、gpasswd命令

-a:添加用户到组
-d:从组删除用户 
-A:指定管理员
-M:指定组成员和-A的用途差不多
-r:删除密码
-R:限制用户登入组,只有组中的成员才可以用newgrp加入该组

4.3、groupdel命令

groupdel 组账号名

4.4、groups命令

group [用户名]

4.5、finger命令   :查询用户账号的详细信息

finger [用户名]

此命令在初始下系统不一定有,所以我们要yum install -y finger  

4.6、查询账号信息w、who、users

(1)w、who、users命令

查询已登录到主机的用户信息

(2)含义

w、who、users           ###查询已登录到主机的用户信息
通常使用tty来简称各种类型的终端设备,Centos7系统,tty1表示图形界面,tty2-tty6表示文字界面,可以用Ctrl+Alt+F1-F6切换。按Ctr1+A1t+F2登陆,执行w命令,查看使用的终端就是tty2。

User: 登录用户名。

TTY:登录后系统分配的终端号。

From:远程主机名,即从哪登录的。

login@: 何时登录。

IDLE:用户空闲时间。这是个计时器,一旦用户执行任何操作,改计时器就会被重置。

JCPU:和终端连接的所有进程占用时间。包括当前正在运行的后台作业占用时间。

PCPU:当前进程所占用时间。

WHAT:当前正在运行进程的命令行。

pts说明是用远程工具连接的,比如1xshell,后面的数字代表登录的时间顺序,越小证明登录的越早。。

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

5.1、设置文件/目录权限 — chmod

字符形式:    chmod [ugoa···][+-=][rwx] 文件...

数字形式:    chmod nnn 文件/目录...

5.2、文件或目录的权限和归属

1、访问权限

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

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

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

2、归属(所有权)

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

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

3、查看目录和文件的属性

如“drwxr-xr-x"和“-rw-r--r--"。

权限字段由四部分组成,各自的含义如下所述。

第1个字符:表示该文件的类型,可以是d(目录)、b(块设备文件)、c(字符设备文件)、“_”(普通文件)、字母“l”(链接文件)等。

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

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

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

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

上述格式中,字符组合“[uga..][+-=][rwx]"或数字组合"nnn”的形式表示要设置的权限模式。其中,“nnn"为需要设置的具体权限值,如“755”“644"等; 而“[uga...][+-=][rwx]"的形式中,三个组成部分的含义及用法如下所述。

"ugoa”表示该权限设置所针对的用户类别。“u”代表文件属主,“g"代表文件属组内的用户,“o”代表其他任何用户,"a"代表所有用户(u、 g、。的总和)。

“+-="表示设置权限的操作动作。“+"代表增加相应权限,“_"代表减少相应权限,“=” 代表仅设置对应的权限。

"rwx"是权限的字符组合形式,也可以拆分使用,如“r"“rx"等。

六、权限掩码umask

设置目录和文件的默认权限;

指定目前用户在新建文件或目录时的权限默认值;

新建的文件或者目录的权限为默认最大权限减去umask(普通文件的最大默认权限为6,目录的最大默认权限为7)

umask查看:    umask
umask设置:    umask 000

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

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

相关文章

八大经典排序算法

前言 本片博客主要讲解一下八大排序算法的思想和排序的代码 💓 个人主页:普通young man-CSDN博客 ⏩ 文章专栏:排序_普通young man的博客-CSDN博客 若有问题 评论区见📝 🎉欢迎大家点赞👍收藏⭐文章 目录 …

Java——web开发

两个月前大概学完了JavaSE,老师推荐说,直接做项目,跟着尚硅谷的视频去做。但对于我来说,难度还是太大了,可能一下午才搞懂几行代码,学习效率不高,,没有成就感和充实感。于是&#xf…

SpringCloud Alibaba Sentinel 流量控制之流控效果实践总结

当 QPS 超过某个阈值的时候,则采取措施进行流量控制。流量控制的效果包括以下几种:直接拒绝、Warm Up、匀速排队/排队等待。对应 FlowRule 中的 controlBehavior 字段。 注意:若使用除了直接拒绝之外的流量控制效果,则调用关系限流…

【Redis】哈希类型的常用命令以及使用场景

Redis 哈希是一种用于存储键值对的数据结构。在 Redis 哈希中,每个键(key)都关联着一个哈希表(hash)。这个哈希表包含了多个字段(field)和值(value)。哈希非常适合存储对…

Java | Leetcode Java题解之第171题Excel表列序号

题目: 题解: class Solution {public int titleToNumber(String columnTitle) {int number 0;int multiple 1;for (int i columnTitle.length() - 1; i > 0; i--) {int k columnTitle.charAt(i) - A 1;number k * multiple;multiple * 26;}ret…

44、基于深度学习的癌症检测(matlab)

1、基于深度学习的癌症检测原理及流程 基于深度学习的癌症检测是利用深度学习算法对医学影像数据进行分析和诊断,以帮助医生准确地检测癌症病变。其原理和流程主要包括以下几个步骤: 数据采集:首先需要收集包括X光片、CT扫描、MRI等医学影像…

【vite】define 全局常量定义

&#x1f9ed; define 说明 类型&#xff1a; Record<string, any> 定义全局常量替换方式。其中每项在开发环境下会被定义在全局&#xff0c;而在构建时被静态替换。 Vite 使用 esbuild define 来进行替换&#xff0c;因此值的表达式必须是一个包含 JSON 可序列化值&a…

xshell传输文件速率为0

你们好&#xff0c;我是金金金。 场景 此时我通过xshell客户端上传文件&#xff0c;速率一直为0 解决 安装 yum -y install lrzsz 即可 这个工具主要提供 rz 和 sz 命令&#xff0c;用于通过 Zmodem 协议在本地计算机和远程服务器之间传输文件 编写有误还请大佬指正&#xff0…

C++的智能指针 RAII

目录 产生原因 RAII思想 C11的智能指针 智能指针的拷贝与赋值 shared_ptr的拷贝构造 shared_ptr的赋值重置 shared_ptr的其它成员函数 weak_ptr 定制删除器 简单实现 产生原因 产生原因&#xff1a;抛异常等原因导致的内存泄漏 int div() {int a, b;cin >> a…

在Ubuntu系统中部署Java及Spring Boot开发环境

选择Java及Spring Boot构建Web服务具有显著优势&#xff0c;Java的跨平台兼容性保证了服务可在不同操作系统上顺畅运行&#xff0c;而Spring Boot的成熟框架则大大简化了开发流程&#xff0c;减少了繁琐配置。此外&#xff0c;强大的社区支持、易于维护与扩展的特性、优异的性能…

a-table 根据数据自动进行 行合并

<template><div class"chat_query_result"><button click"temp">点击</button><a-table :columns"columns" :data-source"data" bordered></a-table></div> </template><script&g…

计算机毕业设计hadoop+spark+hive游戏推荐系统 游戏数据分析可视化大屏 steam游戏爬虫 游戏大数据 大数据毕业设计 机器学习 知识图谱

游戏推荐系统开题报告 一、引言 随着信息技术和网络技术的飞速发展&#xff0c;电子游戏已成为人们日常生活中不可或缺的一部分。然而&#xff0c;面对海量的游戏资源&#xff0c;用户往往难以找到适合自己的游戏。因此&#xff0c;构建一个高效、准确的游戏推荐系统显得尤为…

C++ | Leetcode C++题解之第171题Excel表列序号

题目&#xff1a; 题解&#xff1a; class Solution { public:int titleToNumber(string columnTitle) {int number 0;long multiple 1;for (int i columnTitle.size() - 1; i > 0; i--) {int k columnTitle[i] - A 1;number k * multiple;multiple * 26;}return num…

万界星空科技MES系统中的仓库管理功能

制造执行系统&#xff08;Manufacturing Execution System&#xff0c;简称MES&#xff09;作为一种面向车间生产调度的管理信息系统&#xff0c;被广泛应用在车间作业调度和控制管理系统中&#xff0c;它以实现车间生产调度最优化为目标。同时&#xff0c;MES作为衔接ERP&…

Scikit-Learn梯度提升决策树(GBDT)

Scikit-Learn梯度提升决策树 1、梯度提升决策树(GBDT)1.1、Boosting方法1.2、GBDT的原理1.3、GBDT回归的损失函数1.4、梯度下降与梯度提升1.5、随机森林与GBDT1.6、GBDT的优缺点2、Scikit-Learn梯度提升决策树(GBDT)2.1、Scikit-Learn GBDT回归2.1.1、Scikit-Learn GBDT回归…

阿里云上构建_VPC专有网络_子网划分_原理说明_创建_释放---分布式云原生部署架构搭建006

可以看到有这种子网掩码计算工具可以使用 可以看到这个是,我们设计的一个子网 192.168.0.0/16 可以看到地址是 从192.168.0.1 到 192.168.255.254 有了子网,我们去看,可以看到在阿里云的管理后台,就有个 创建交换机.可以看到 然后指定这个交换机的网段 这里我们指定了192…

编写水文专业串口通讯软件的开发经历

编写水文专业串口通讯软件的开发经历 一、关于开发 YAC9900 水位雨量 RTU 通讯软件二、软件开发遇到的问题和困难1、开发架构的适应2、开发语言的学习3、.net core 8 架构中串口构建的难点4、YAC9900 水位雨量 RTU 通讯软件开发中的 UI 冻结 三、发现问题解决问题的具体办法1、…

会声会影2024专业免费版下载附带激活码序列号

&#x1f31f; 会声会影2024&#xff1a;你的视频编辑新伙伴&#xff01;大家好&#xff0c;今天来给你们安利一个超级棒的视频编辑软件——会声会影2024最新版本&#xff01;作为一位热爱创作的小伙伴&#xff0c;找到一款既强大又易用的视频编辑工具真的太重要了。而会声会影…

什么是嵌入式,单片机又是什么,两者有什么关联又有什么区别?

在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「嵌入式的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01;从科普的角度&#xff0c;…

【减法网络】Minusformer:通过逐步学习残差来改进时间序列预测

摘要 本文发现泛在时间序列(TS)预测模型容易出现严重的过拟合。为了解决这个问题&#xff0c;我们采用了一种去冗余的方法来逐步恢复TS的真实值。具体来说&#xff0c;我们引入了一种双流和减法机制&#xff0c;这是一种深度Boosting集成学习方法。通过将信息聚合机制从加法转…