当前位置: 首页 > news >正文

Linux账号和权限管理详解

Linux系统中安装和管理程序 太详细了

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。


推荐:Linux运维老纪的首页,持续学习,不断总结,共同进步,活到老学到老
导航剑指大厂系列:全面总结 运维核心技术:系统基础、数据库、网路技术、系统安全、自动化运维、容器技术、监控工具、脚本编程、云服务等。
常用运维工具系列:常用的运维开发工具, zabbix、nagios、docker、k8s、puppet、ansible等
数据库系列:详细总结了常用数据库 mysql、Redis、MongoDB、oracle 技术点,以及工作中遇到的 mysql 问题等
懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂
非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

Linux账号和权限管理详解(超详细示例操作)!

一、用户账号和组账号概述
1.1 Linux基于用户身份对资源访问进行控制
1.2 用户账号
1.3 组账号
二、用户账号文件
2.1 用户账号文件 /etc/passwd
2.2 用户账号文件 /etc/shadow
三、用户账号设置
3.1 添加用户账号 useradd 或者 adduser
3.2 设置/更改用户口令passwd
3.3 修改用户账号的属性 usermod
3.4 用户账号的初始配置文件
3.5 PATH变量用于设置可执行程序的默认搜索路径
四、组账号文件
4.1 组账号文件
4.2 添加组账号 groupadd
4.3 添加删除组成员 gpasswd
4.4 删除组账号 groupdel
五、查询账号信息
5.1 查询用户所属的组 groups
5.2 查询用户身份标识 id
5.3 查询用户帐号的详细信息 finger
5.4 w、who、 users 命令
六、文件/目录的权限和归属
6.1 文件/目录的权限
6.2 查看文件/目录的权限和归属
6.3 设置目录和文件的权限 chmod
6.4 设置目录和文件的归属 chown
6.5 设置目录和文件的默认权限 umask
总结
一、用户账号和组账号概述
1.1 Linux基于用户身份对资源访问进行控制
用户帐号
超级用户、普通用户、程序用户

组帐号
基本组(私有组)
附加组(公共组)

UID和GID
UID (User IDentity,用户标识号)
GID (Group IDentify,组标识号)

1.2 用户账号
超级用户:root用户是Linux操作系统中默认的超级用户账号,对本主机拥有最高的权限。系统中超级用户是唯一的。

普通用户:由root用户或其他管理员用户创建,拥有的权限会受到限制,一般只在用户自己的宿主目录中拥有完整权限。

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

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

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

UID:用户标识号
GID:组标识号
root用户账号的UID和GID号为固定值0
程序用户账号的UID和GID号默认为1~499
普通户UIDRGID默认为500~60000

二、用户账号文件
2.1 用户账号文件 /etc/passwd
■保存用户名称、宿主目录、登录Shell 等基本信息
文件位置:/etc/passwd
每一行对应一个用户的帐号记录
[root@localhost~]# head-2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin

■用户账号文件 /etc/passwd
基于系统运行和管理需要,所有用户都可以访问passwd文件中的内容,但是只有root用户才能进行更改。
在早期的UNIX操作系统中,用户帐号的密码信息是保存在passwd文件中的,不法用户可以很容易的获取密码字串并进行暴力破解,因此存在一定的安全隐患。后来经改进后,将密码转存入专门的shadow文件中,而passwd文件中仅保留密码占位符"x"
root:x:0:0:root:/root:/bin/bash
字段1:用户帐号的名称
字段2:用户密码占位符"x"
字段3:用户帐号的UID号
字段4:所属基本组帐号的GID号
字段5:用户全名
字段6:宿主目录
字段7:登录Shell 信息( /bin/bash为可登陆系统,/sbin/nologin和/bin/false为禁止用户登陆系统)

2.2 用户账号文件 /etc/shadow
■保存用户的密码、账号有效期等信息
文件位置: /etc/shadow
每一行对应一个用户的密码记录
[root@localhost~]# head-2   /etc/shadow
[root@localhost-]# tail -1   /etc/shadow     

■用户账号文件 /etc/shadow
默认只有root用户能够读取shadow文件中的内容,且不允许直接编辑该文件中的内容。
root: $6$VyOUGqOC$v5H1LM1wagZc/FwGfnrtJFn1T:18445:0:99999:7:::
字段1:用户帐号的名称
字段2:使用MD5加密的密码字串信息,当为"*"或"! "时表示此用户不能登录到系统。若该字段内容为空,则该用户无须密码即可登录系统
字段3:上次修改密码的时间,表示从1970年01月01日算起到最近一次修改密码时间隔的天数
字段4:密码的最短有效天数, 自本次修改密码后,必须至少经过该天数才能再次修改密码。默认值为0,表示不进行限制
字段5:密码的最长有效天数, 自本次修改密码后,经过该天数以后必须再次修改密码。默认值为99999,表示不进行限制
字段6:提前多少天警告用户密码将过期,默认值为7
字段7:在密码过期之后多少天禁用此用户
字段8:帐号失效时间,此字段指定了用户作废的天数(从1970年01月01日起计算) ,默认值为空,表示账号永久可用。
字段9:保留字段(未使用)

三、用户账号设置
3.1 添加用户账号 useradd 或者 adduser
在 /etc/passwd文件和 /etc/shadow文件的末尾增加该用户账号的记录。
若未明确指定用户的宿主目录,则在 /home目录下自动创建与该用户账号同名的宿主目录,并在该目录中建立用户的各种初始配置文件。
若没有明确指定用户所属的组,则自动创建与该用户账号同名的基本组账号,组账号的记录信息将保存到 /etc/group和 /etc/gshadow文件中。
格式:useradd [选项] 用户名
常用选项:
-u:指定用户的 UID 号,要求该 UID 号码未被其他用户使用。
-d:指定用户的宿主目录位置(当与-M 一起使用时,不生效)。
-e:指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。
-g:指定用户的基本组名(或使用 GID 号),对应的组名必须已存在。
-G:指定用户的附加组名(或使用 GID 号),对应的组名必须已存在。
-M:不建立宿主目录。
-s:指定用户的登录 Shell,(比如/bin/bash为可登陆系统,/sbin/nologin和/bin/false为禁止用户登陆系统)。
举例:
useradd -d /admin -g wheel -G root admin1
useradd -e 2020-12-31 -s /sbin/nologin admin2

添加用户账号wangwu在添加用户账号wangwu的时候,就同时创建了用户的目录

建立一个用户名为zhengsan的用户,UID号为2000,指定用户的附加组名test,不建立宿主目录,指定用户的账户失效时间2021-12-30

3.2 设置/更改用户口令passwd
root用户可以指定用户名作为参数,对指定账号的密码进行管理;不指定用户名时,修改当前账号的密码。
普通用户却只能执行单独的"passwd"命令修改自己的密码。
命令格式:
passwd [选项] 用户名
常用选项:
-d:清空指定用户的密码,仅使用用户名即可登录系统。
-l:锁定用户账户,锁定的用户账号将无法再登录系统。
-S:查看用户账户的状态(是否被锁定)。
-u:解锁用户账户。(-u解锁时,如果没有密码会提示,需要使用-f强制解锁)

设置密码
清空密码后可直接登录

其他命令演示:

3.3 修改用户账号的属性 usermod
命令格式:usermod [选项] 用户名
常用选项:
-u:修改用户的 UID 号。
-d:修改用户的宿主目录位置。
-e:修改用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。
-g:修改用户的基本组名(或使用 GID 号)。
-G:修改用户的附加组名(或使用 GID 号)。
-s:指定用户的登录 Shell。
-l:更改用户账号的登录名称。
-L:锁定用户账户。
-U:解锁用户账户。

将zhengsan用户的登录名更改为lisi
usermod -l lisi zhengsan

3.4 用户账号的初始配置文件
命令格式:userdel  [-r]  用户名
添加“-r”选项时可以将该用户的宿主目录一并删除

■文件来源
useradd 命令添加一个新的用户账号后在该用户的宿主目录中建立一些初始配置文件。
这些文件来自于账号模板目录/etc/skell,基本上都是隐藏文件。
■主要的用户初始配置文件
~/.bash_profile
~/.bashrc
~/.bash_logout
用户宿主目录下的初始配置文件只对当前用户有效
~/.bash_profile        此文件中的命令将在该用户每次登录时被执行,它会设置一些环境变量,并且会调用该用户的~/.bashrc文件
~/.bashrc            此文件中的命令会在每次打开新的bash shell时(也包括登录系统)被执行,并且会调用/etc/bashrc文件
~/.bash_logout        此文件中的命令将在用户每次退出登录或退出bash shell时执行
全局配置文件对所有用户有效
/etc/profile        这个文件是为系统全局变量配置文件,可通过重启系统或者执行source /etc/profile 命令使profile文件被读取
/etc/profile.d      这个文件实际上是/etc/profile的子目录,存放的是一些应用程序所需的启动脚本
/etc/bashrc            每一个运行bash shell的用户都会执行此文件,可通过执行bash 命令打开一个新的bash shell时,使 bashrc文件被读取
vim /etc/bashrc
alias myls='/bin/ls -lhr'
bash              
type myls    


3.5 PATH变量用于设置可执行程序的默认搜索路径
PATH 生效的原理:
每次启动系统的时候会初始化命令,会执行/etc/profile和~/.bash_profile。/etc/profile会将路径/usr/local/bin 、/usr/bin、/usr/local/sbin 、/usr/sbin 追加到PATH中去。然后调用 /etc/profile.d 目录下的脚本。
四、组账号文件
4.1 组账号文件
/etc/group:保存组帐号基本信息
/etc/gshadow:保存组帐号的密码信息
grep "postfix"  /etc/group
mail:x:12:postfix
postfix:x:89:
字段1:组帐号的名称
字段2:占位符"x"
字段3:组账号的GID
字段4:组账号包含的用户成员(一般不包括基本组对应的用户帐号) ,多个成员之间以逗号","分隔

4.2 添加组账号 groupadd
groupadd  -g 1000  market     
添加组账号market  
-g:指定GID号
tail  -1  /etc/group
market:x:1000:

示例:添加一个GID为666的zhaoqi组账户
4.3 添加删除组成员 gpasswd
命令格式:gpasswd [选项] 组账号名
常用选项:
-a:向组内添加一个用户
-d:从组内删除一个用户成员
-M:定义组成员列表,以逗号分隔
-a
-d
可以发现已经删除

-M、

4.4 删除组账号 groupdel
groupdel  组账号名
示例
groupdel  market     删除组账号market
grep "market" /etc/group  

五、查询账号信息
5.1 查询用户所属的组 groups
groups  [用户名]
5.2 查询用户身份标识 id
id  [用户名]

5.3 查询用户帐号的详细信息 finger
查询用户账号的登录属性
注:需要先进行安装finger软件包

5.4 w、who、 users 命令
查询已登录到主机的用户信息
通常使用tty来简称各种类型的终端设备,,Centos7系统, tty1表示图形界面,,tty2-tty6表示文字界面,可以用ctrl+Alt+F1-F6切换。
按Ctrl+Alt+F2登陆,执行w命令,查看使用的终端就是tty2
pts说明是用远程工具连接的,比如xshell,后面的数字代表登录的时间顺序,越小证明登录的越早
六、文件/目录的权限和归属
6.1 文件/目录的权限
■访问权限
读取r:允许查看文件内容、显示目录列表
写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
可执行x:允许运行程序、切换目录
■归属(所以权)
属主:拥有该文件或目录的用户帐号
属组:拥有该文件或目录的组帐号
权限项    读    写    执行    
字符表示    r    w    x    -
数字表示(八进制)    4    2    1    0
6.2 查看文件/目录的权限和归属
ls  -l  install.log 
-rw-r--r--  1  root  root   34298  04-02  00:23   install.log    #  -rw-r--r-- :文件类型、权限    root  root   属主、属组

6.3 设置目录和文件的权限 chmod
语法1:chmod   [ugoa]  [+-=]  [rwx]  文件或目录...(+、-、= 分别表示增加、去除、设置权限)
(u、g、o、a 分别表示属主、属组、其他用户、所有用户)
(r,w,x权限字符可分别表示为8进制字符4,2,1,表示一个权限组合时需要将数字进行累加;如rwx=7,rw-r-r=644)
语法2:chmod  nnn  文件或目录...(3位八进制数)
常用命令选项:-R:递归修改指定目录下所有子项的权限

方法1

方法2
6.4 设置目录和文件的归属 chown
chown 属主 文件或目录
chown :属组 文件或目录
chgrp 属组 文件或目录
chown 属主:属组 文件或目录
chown 属主.属组 文件或目录
-R:递归修改指定目录下所有子目录及文件的归属
演示:
6.5 设置目录和文件的默认权限 umask
■umask作用
指定目前用户在新建文件或目录时的权限默认值
新建的文件或者目录的权限为默认最大权限减去umake (普通文件的最大默认权限为6, 目录的最大默认权限为7)
1.umask设置:umask 022
2.umask查看:umask

这边我先查询默认的umask默认为0022,0022用后三位022,(文件用6去减权限的八进制数)
如12文件的rw为4+2=6   6-6=0    r为4  6-4=2      022
目录如上用7去减

如果我们想设置所创建的目录所以用户都有rwx权限
示例
总结
■用户账号管理(useradd、passwd、usermod、userdel)
■组账号管理(groupadd、gpasswd.groupdel)
■用户账号文件与组账号文件
■查询账号相关信息的命令(groups.id、finger、w)
■设置目录与文件权限(chmod)
■设置目录与文件归属(chown)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 浅谈MMORPG的战斗系统
  • Mysql知识大全
  • ubuntu22.04 编译freetype动态库
  • 决策树算法介绍,原理与案例实现
  • 代码审查的艺术:Xcode的深度指南与实战技巧
  • Autosar诊断实战系列28-2E写DID Pending期间偶发回NRC0x13问题排查
  • 学习笔记——动态路由——IS-IS中间系统到中间系统(特性之路由撤销)
  • 网络安全第一次作业
  • maven——(重要)手动创建,构建项目
  • 部署YUM仓库及NFS共享功能
  • docker拉取镜像-配置阿里云镜像加速
  • Python | Leetcode Python题解之第229题多数元素II
  • vue3实现vuedraggable实现拖拽到垃圾桶图标位置进行删除
  • TypeScript中的交叉类型
  • Qt/C++项目积累: 2.主机监控器 - 2.2 历史功能实现
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • 11111111
  • ES6语法详解(一)
  • js作用域和this的理解
  • Mocha测试初探
  • vue-router 实现分析
  • 分布式熔断降级平台aegis
  • 如何实现 font-size 的响应式
  • 时间复杂度与空间复杂度分析
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 首页查询功能的一次实现过程
  • 算法-插入排序
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • ​业务双活的数据切换思路设计(下)
  • # linux 中使用 visudo 命令,怎么保存退出?
  • #mysql 8.0 踩坑日记
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (7)STL算法之交换赋值
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (二)构建dubbo分布式平台-平台功能导图
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (一)kafka实战——kafka源码编译启动
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • .chm格式文件如何阅读
  • .mat 文件的加载与创建 矩阵变图像? ∈ Matlab 使用笔记
  • .NET 4.0中的泛型协变和反变
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)...
  • .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态
  • .NetCore发布到IIS
  • .NET大文件上传知识整理
  • .net访问oracle数据库性能问题
  • .net获取当前url各种属性(文件名、参数、域名 等)的方法
  • .NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2
  • .net专家(高海东的专栏)