Linux用户与文件权限学习

news2024/9/23 7:53:43

Linux是一个多用户操作系统,允许多个用户同时登录和使用系统资源,在Linux中,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。Linux的多用户管理也可以通过组的概念来简化,一个用户可以属于多个组,一个组可以有多个用户,用户和组是多对多的关系。Linux的多用户多分组管理系统都是针对文件来说的,每个文件都有所属的用户和所属的分组。

总的来说Linux系统允许多个用户同时登录系统,要先创建用户,将用户分配到不同的组进行目录和文件权限的划分。因此这次主要学习用户和文件权限的概念。

一、用户与组管理

用户与组会应用在所有文件与目录上体现,用户就是通过管理员手工创建的一个用户账号,在/home/下有一个自己用户名的目录,那里就是用户的家目录,登录后默认在家目录。

[root@localhost keli]# pwd
/home/keli

用户组的概念类似于windows的部门共享文件夹,表示相同部门的用户能够进行查询、编辑与执行的权限。 用户与组 在Linux上还有一个others(其他人的概念),用户代表一个用户,组代表属于一个特定特点的用户集合,而其他人就是除了上述两个集合的其他用户。举例:

以公司组织架构为例,你是IT部的一个管理员,然后你部门还有一个上级领导属于IT部这个组,那其他的部门行政部、业务部都属于其他人,Linux中这些概念是相对概念。

默认系统有一个超级管理员root,如果在安装系统时选择了创建普通用户会在/home下有一个用户的家目录。

可以通过命令进行创建用户和组,以及设置默认Shell.

# 需要管理员root有权限创建新用户
# 创建用户chuck
[root@localhost home]# useradd chuck

# 设置chuck用户密码
[root@localhost home]# passwd chuck
更改用户 chuck 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

# 注意:默认创建用户时会分配一个唯一的UID,然后会自动创建一个与用户名相同的组,一个用户可以属于多个用户组,需要先创建用户组才能添加

# 创建组
[root@localhost home]# groupadd it-group

# 将用户加入组,usermod -aG 组名 用户,上述具体命令选项可以参照之前的命令行基础查询用法
[root@localhost home]# usermod -aG it-group chuck

用户与组相关目录:

  • 用户信息: /etc/passwd
  • 组信息: /etc/group
  • 密码信息: /etc/shadow
# 查询用户信息
[root@localhost home]# cat /etc/passwd
chuck:x:1001:1001::/home/chuck:/bin/bash

keli: 这是用户名,即该用户在系统上的唯一标识。
x: 这表示密码的字段。在早期的 UNIX 系统中,密码是直接存储在 /etc/passwd 文件中的,但由于安全原因,现代的 UNIX 和 Linux 系统将密码存储在 /etc/shadow 文件中,而 /etc/passwd 文件中的密码字段用 x 表示。
1000: 这是用户 ID (UID)。每个用户都有一个唯一的 UID。
1000: 这是组 ID (GID)。这表示该用户所属的默认组也有相同的 GID。
keli: 这可能是用户的全名或描述,具体取决于系统配置。
/home/keli: 这是用户的家目录。每个用户都有自己的家目录,通常用于存储个人文件。
/bin/bash: 这是用户的默认 shell。shell 是用户与操作系统交互的界面。

简而言之,这一行描述了一个名为 keli 的用户,其 UID 和 GID 都是 1000,属于同一个组,家目录在 /home/keli,并使用 /bin/bash 作为其默认的 shell。

# 查询组信息,显示组名称和GID
[root@localhost home]# cat /etc/group | grep chuck
chuck:x:1001:
it-group:x:1002:chuck
[root@localhost home]# cat /etc/group | grep it-group
it-group:x:1002:chuck

# 查询用户密码信息,默认是已经加密存储
[root@localhost home]# cat /etc/shadow | grep chuck
chuck:$6$fo8v6VfIh9KXUgyp$BurSGV7/rxmSjq/.g8KLKwrq1PUBQUNFDR13NEWvSo3vDXoOVfYgFIexuOEdWR09yNy0smt1RKoalyMsmt0mN/:19712:0:99999:7:::

查看用户所属的所有组:

# 可以通过groups或者id命令查询用户所属用户组信息
[root@localhost home]# groups chuck
chuck : chuck it-group

[root@localhost home]# id chuck
uid=1001(chuck) gid=1001(chuck) 组=1001(chuck),1002(it-group)

# 表示chuck用户属于chuck和it-group两个组

相关命令:

  • useradd username
  • passwd username
  • groupadd groupname
  • usermod -aG 组名 用户

修改用户信息:使用usermod

[root@localhost home]# usermod --help
用法:usermod [选项] 登录

选项:
  -c, --comment 注释            GECOS 字段的新值
  -d, --home HOME_DIR           用户的新主目录
  -e, --expiredate EXPIRE_DATE  设定帐户过期的日期为 EXPIRE_DATE
  -f, --inactive INACTIVE       过期 INACTIVE 天数后,设定密码为失效状态
  -g, --gid GROUP               强制使用 GROUP 为新主组
  -G, --groups GROUPS           新的附加组列表 GROUPS
  -a, --append GROUP            将用户追加至上边 -G 中提到的附加组中,
                                并不从其它组中删除此用户
  -h, --help                    显示此帮助信息并推出
  -l, --login LOGIN             新的登录名称
  -L, --lock                    锁定用户帐号
  -m, --move-home               将家目录内容移至新位置 (仅于 -d 一起使用)
  -o, --non-unique              允许使用重复的(非唯一的) UID
  -p, --password PASSWORD       将加密过的密码 (PASSWORD) 设为新密码
  -R, --root CHROOT_DIR         chroot 到的目录
  -P, --prefix PREFIX_DIR       prefix directory where are located the /etc/* files
  -s, --shell SHELL             该用户帐号的新登录 shell
  -u, --uid UID                 用户帐号的新 UID
  -U, --unlock                  解锁用户帐号
  -v, --add-subuids FIRST-LAST  add range of subordinate uids
  -V, --del-subuids FIRST-LAST  remove range of subordinate uids
  -w, --add-subgids FIRST-LAST  add range of subordinate gids
  -W, --del-subgids FIRST-LAST  remove range of subordinate gids
  -Z, --selinux-user  SEUSER       用户账户的新 SELinux 用户映射

本文由 mdnice 多平台发布

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

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

相关文章

Python | 使用VIF检测多重共线性

多重共线性是指多元回归模型中有两个或两个以上的自变量,它们之间具有高度的相关性。当某些特征高度相关时,我们可能很难区分它们对因变量的个体影响。多重共线性可以使用各种技术来检测,其中一种技术是方差膨胀因子(VIF&#xff…

Windows操作系统中:共享文件夹以及防火墙介绍

目录 一.共享文件夹 1.什么是共享文件夹 2.共享文件夹的优点以及不足 优点 不足之处 3.实际案例操作 共享介绍 普通共享 实例展示 高级共享 实例展示 二.防火墙 1.防火墙介绍 主要功能 2.防火墙常见的应用场景 3.实例操作 操作介绍 出现的问题 解决措施…

人工智能_机器学习074_SVM支持向量机_软间隔与优化目标函数构建_C参数由来_惩罚误差点的惩罚度---人工智能工作笔记0114

然后我们接着上一节再来看一下这里我们说有个 min_faces_per_person = 0 这个可以看到如果我们写上0,就意味着要加载所有的人脸图片,就会花费的时间久对吧 我们可以试试,这里我们 min_faces_per_person = 0 改成0然后 我们等一会加载完了以后,我们用 display(X.shape,faces.sh…

图灵日记之java奇妙历险记--输入输出方法数组

目录 输入输出输出到控制台从键盘输入使用 Scanner 读取字符串/整数/浮点数使用 Scanner 循环读取 猜数字方法方法定义方法调用的执行过程实参和形参的关系(重要)方法重载 数组数组的创建数组的初始化动态初始化静态初始化 数组的使用元素访问遍历数组 数组是引用类型null数组应…

定制TikTok引流脚本必备功能!

在TikTok的海洋中,如何让你的品牌或产品脱颖而出?除了内容创新,一个高效的TikTok引流脚本也是关键,本文将为你揭示定制TikTok引流脚本必备的四大功能,助你在这场流量大战中占得先机。 一、消息多发 在TikTok上,消息…

doris基本操作,05-Rollup

简述 Rollup类似于mysql的视图,区别在于视图并没有将数据独立存储,视图是逻辑上的连接。而Rollup将数据独立存储了,玩的是真的。当查询命中Rollup时,会从Rollup表里获取数据,提高查询效率。 操作 创建Rollup表 alt…

裸机开发(1)-汇编基础

文章目录 GNU汇编语法常用汇编指令处理器内部数据传输指令存储器访问指令压栈和出栈指令跳转指令算术指令逻辑运算指令实战 函数发生调用时,需要进行线程保护,简单来说,就是先进行压栈操作,将调用函数参数、返回值等存到R0-15寄存…

洛谷 CSP-J 2021 分糖果+插入排序 个人解答的优化过程以及详解

首先声明这两道题目第一题很简单,读者可以不看解答自己先做一遍题目,看看能不能获得满分,我就是因为无意识考虑时间复杂度的问题没有获得满分最开始,然后我进行了优化,获得了满分,但是第二题的难度较大&…

内存之-LeakCanary

关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、人工智能等,希望大家多多支持。 目录 一、导读二、概览三、使用四、原理分析4.1 自动初始化4.1.1 初始化…

使用 fixture 机制重构 appium_helloworld

一、前置说明 在 pytest 基础讲解 章节,介绍了 pytest 的特性和基本用法,现在我们可以使用 pytest 的一些机制,来重构 appium_helloworld 。 appium_helloworld 链接: 编写第一个APP自动化脚本 appium_helloworld ,将脚本跑起来 代码目录结构: pytest.ini 设置: [pyt…

利用FLRIT恢复符号表---笔记

文章目录 FLIRT应用FLIRT签名创建FLIRT签名文件创建签名概述识别和获取静态库创建模式文件创建签名信息 FLIRT 在某些ELF文件中,IDA无法识别库函数的签名。就会导致IDA加载的函数全是sub_xxxx的形式,这给我们的逆向工程造成极大的困难。 这个时候就可以…

Python爬虫中的多线程、线程池

进程和线程的基本介绍 进程是一个资源单位,线程是一个执行单位,CPU调度线程来执行程序代码。 当运行一个程序时,会给这个程序分配一个内存空间,存放变量等各种信息资源,而这个内存空间可以说是一个进程, 一…

Linux文件系统与命令行

什么是命令行? 接收键盘命令并将其传给操作系统执行的程序(用于输入和管理命令的程序),统称命令行,也叫: Shell,几乎所有Linux发行版都提供了一个 Shell 程序,叫做: Bash (Bourne-Again Shell, 因为最初的 Shell 是由 Steve Bourne 编写的原始 Unix 程序, Again 表…

ChatGPT新增聊天存档功能,可构建自己的聊天数据库啦!

12月21日,OpenAI在社交平台宣布,ChatGPT新增存档功能,用户可以保存聊天记录而不必删除它们。 虽然这只是一个很小的功能,但对于科研、医疗、写作、金融、律师等,对文本使用频率较高的行业帮助巨大,可构建自…

Vue3设计目标和优化

vue3.0的设计目标是什么?做了哪些优化? Vue3的设计目标:更小、更快、更友好、优化方案 一、设计目标 Vue3之前我们会面临的许多问题: 随着功能的增长,复杂组件的代码变得越来越难以维护起来缺少一种比较【干净】的…

YACS(上海计算机学会竞赛平台)一星级题集——评委打分

题目描述 许多比赛在计算选手得分平均数的时候,都会先去掉一个最高得分,再去掉一个最低得分,这样可以避免极大值与极小值对平均值的影响。 给定 n 个数字 a[1]​,a[2]​,⋯,a[n]​,表示一个选手获得的分数,请根据上述…

【力扣】199.二叉树的右视图

看到这个题目的一瞬间,我想递归,必须用递归。最近被递归折磨的有点狠,但是我感觉我快要打败它了,就是现在稍稍有点处于劣势。不过没关系,来日方长不是。 法一:递归 题解: 之前想的就是先递归&…

【Vue3+TypeScript】快速上手_笔记

前言 1. Vue3简介 2020年9月18日,Vue.js发布版3.0版本,代号:One Piece(n 经历了:4800次提交、40个RFC、600次PR、300贡献者 官方发版地址:Release v3.0.0 One Piece vuejs/core 截止2023年10月&#xf…

读文献、写论文时,有什么好用的软件或网站推荐?

高考志愿、考研保研、职业规划、简历优化,欢迎加入《猴哥成长营》! https://www.yuque.com/jackpop/ulig5a/srnochggbsa2eltw?singleDoc 读文献、写论文对于绝大多数本科生、研究生、博士生都是必经之路。 当突然面对这样一项任务时,会觉得…

NVIDIA NCCL 源码学习(十二)- double binary tree

上节我们以ring allreduce为例看到了集合通信的过程,但是随着训练任务中使用的gpu个数的扩展,ring allreduce的延迟会线性增长,为了解决这个问题,NCCL引入了tree算法,即double binary tree。 double binary tree 朴素…