【从零带你玩转Linux】权限及相关指令

news2024/9/20 12:38:36

前言

🏠个人主页:泡泡牛奶

🌵系列专栏:从零带你玩转Linux

本期将会让大家了解什么是权限,权限该如何理解,以及Linux中一些有关权限设置的指令操作,让你在Linux使用中更加得心应手(~ ̄▽ ̄)~

在开始看这篇文章之前,我们可以思考以下问题:

  1. 什么是权限?
  2. 为什么会有权限?
  3. 如何设置权限?
  4. 没有权限会怎么样?

认识权限

在Linux下,有两种用户:超级用户(root)、普通用户。

  • root用户:可以在linux系统下做任何事,不受权限的限制
  • 普通用户:在linux下受权限的制约,只能做有限的事

超级用户的命令提示符是#,普通用户的命令提示符是$

image-20221106133025813

1. 文件访问者的分类

  • 文件拥有者 u——User
  • 文件所属组 g——Group
  • 其它用户 o——Other

2. 文件类型和访问权限

我们可以使用ls -la来查看当前目录下的所有文件详细信息

image-20221121164417191

image-20221121165752920

有细心的小伙伴肯定发现了,这一栏一共有10个字符:

  • 第一个字符代表这个文件是文件、目录还是链接文件:

    字符选项含义
    [ d ]目录 (directory)
    [ - ]文件 (默认 - )
    [ l ]链接文件 (link file)
    [ b ]块设备文件,例如硬盘、光驱等 (block file)
    [ c ]字符设备文件,例如屏幕等串口设备 (character file)
    [ p ]管道文件 (pipe files)
    [ s ]套接口文件 (socket file)
  • 第二个字符到最后一个字符,每3个为一组

    image-20221121175332628

    每组有三个权限,分别是:

    权限含义
    r可读 (readable)
    w可写 (writable)
    x可执行 (excutable)
    -无权限

    例如图中的就是,拥有者和所属组可读可写可执行,其他人不可读不可写不可执行

3. 文件权值的表示方法

1) 字符表示法

Linux表示说明
r–只读
-w-只写
–x只执行
rw-可读可写(不执行
r-x可读可执行 (不可写
-wx可写可执行(不可读
rwx可读可写可执行
无权限

2) 8进制表示法

将9位数每3位坐为一个8进制数字,有此权限就为1,没有此权限就为0

例如:

image-20221003182920044

权限符号二进制八进制
0000
–x0011
-w-0102
-wx0113
r–1004
r-x1015
rw-1106
rwx1117

创建普通用户 adduser

语法:

add [选项] 新建账号名

功能:

创建一个普通用户,adduseruseradd 一致,都是同样一条指令

(一般配合下面一条指令使用)

参数说明:

选项含义
-d指定家目录位置
-m若目录不存在,自动建立目录,默认/home/{新建账号名}
-g指定所属组名称

实例:

adduser test_user
  • 什么都不指定的情况下,默认家目录为/home/{账号名},所属组名 与 账号名相同

设置用户密码 passwd

语法:

root用户:
passwd 用户名

普通用户:
passwd

功能:

设置/修改用户密码

实例:

root(超级)用户:

passwd test_user

image-20221106181832922

passwd sam 
New password:******* (新密码)
Re-enter new password:******* (再次输入新密码)

普通用户:

passwd

image-20221106183151296

(current) UNIX password:**** (旧密码)
New password:***             (新密码)
Retype new password:****     (再次输入新密码)

注意:

  • 在输入密码时,不会显示在显示器上,但密码确实会输入,如果输入错误建议ctrl+c(注销当前操作)重新输入

删除用户 userdel

语法:

userdel [-r] 用户名

功能:

删除用户(需要root用户才能删除

实例:

删除用户(保留家目录)

userdel test_user

删除用户(家目录一起删除)

userdel -r test_user

以超级用户身份运行 sudo

语法:

sudo [其它命令]

作用:

以管理员身份执行命令

实例:

sudo whoami

image-20230127165801778

设置root权限:

大家在第一次执行词条命令的时候,会遇到无法使用的问题,下面就有我为大家介绍如何解决。( •̀ ω •́ )✧

  1. 当前用户必须为root

  2. vim或nano 打开 /etc/sudoers 文件

    vim /etc/sudoers  #用vim打开sudoers文件
    
    nano /etc/sudoers #用nano打开sudoers
    

    image-20230128212514067

  3. 大概在 90~110 行左右,会看到 root ALL=(ALL) ALL ,将 root 换成你想提升权限的普通用户即可

    root       ALL=(ALL)       ALL
    (替换用户)  ALL=(ALL)       ALL
    

注意: 打开 /etc/sudoers 文件一定要是 root 用户,若不是 root 用户,打开文件会一片空白

切换用户 su

语法:

su {用户}

su - {用户}

用法实例:

命令含义
su切换到root用户
su root切换到root用户
su -切换到root用户,同时进入root家目录
su 普通用户切换到普通用户
su - 普通用户切换到普通用户,同时进入家目录

查看当前用户 whoami

语法:

whoami

功能:

查看当前用户

实例:

image-20221106230010687

查看用户登录信息 who

·语法:

who

作用:

查看用户登录信息

退出登录账户 exit

语法:

exit

作用:

如果是图形界面,退出当前终端;

如果是使用ssh远程登录,退出登陆账户;

如果是切换后的登陆用户,退出则返回上一个登陆账号

快捷键:

ctrl+D

修改文件权限 chmod

语法:

chmod [ [目标对象][+-=][权限] ] [文件或目录]

功能:

修改文件或目录权限

参数说明:

目标对象含义
uuser 文件拥有者
ggroup 文件所属组
oother 其他人
aall 所有
[±=]含义
+增加权限
-撤销权限
=设定权限

实例:

# 符号表示法
chmod u+rw test.c
chmod u+rw,g+rw test.c
chmod a-rw test.c

# 8进制表示法
chmod 516 test.c

image-20221003194748758

修改用户拥有者 chown

语法:

chown [选项] 修改后拥有者[:新文件拥有者的所属组] [文件名]

功能:

  1. 修改用户拥有者
  2. 修改用户所属组

常用参数说明:

选项含义
-R递归处理,将目录与目录下所有文件一起修改

实例:

chown wyd file.txt 
#修改文件 file.txt 拥有者为 wyd

chown wyd:wyd file.txt
#修改文件 file.txt 拥有者及所属组为 wyd

chown -R wyd dir
#将目录及其文件下的所有文件拥有者修改为 wyd

image-20230127165010920

修改用户所属组 chgrp

语法:

chgrp [参数] [修改后用户组名] [文件名]

功能:

修改用户所属组

常用参数说明:

参数含义
-R递归处理,将目录与目录下所有文件一起修改
–reference=<参考文件或目录>将 文件所属组变成 与参考文件或目录一致

实例:

chgrp -R wyd test 
#将test目录及其目录下的所有文件所属组修改为 wyd

chgrp --reference=test1 test2 
#将test2所属组 变成 与test1所属组一致

chgrp -R --reference=test1 test2 
#将test2及其目录下的所有文件 变成 与test1所属组一致

image-20230127150404806

设置掩码 umask

语法:

umask [权限掩码]

作用:

  1. 查询掩码
  2. 设置掩码

说明:

  1. 权限和权限掩码是按照8进制表示法
  2. 新建文件默认权限 = 0666
  3. 新建目录默认权限 = 0777
  4. 假设默认权限是mask,则实际创建出来的文件权限是 mask & ~umask
  5. 超级(root)用户默认掩码为 0022
  6. 普通用户默认掩码为 0002

实例:

umask #查询掩码

umask 0001 #设置掩码为 0001

image-20230127162231009

总结

本期到这里就结束了,开头问的4个问题你能答的上来了吗?权限就是规定一个人是否能做这件事,若没有权限,那么就会造成所有的人都不能访问,或所有的人都可以访问,造成一系列的混乱,权限的存在就是为了保护一些数据信息不被随意改变,而且我们知道了root用户可以无视一切权限,那么我们更应该保护好root用户的密码。

我们下期再见 (*^▽^*)

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

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

相关文章

Git详细使用文档

Git 1.项目存在哪些问题 1.项目安全性太低2.项目很难协同开发3.项目无端报错4.项目版本混乱 2.Git概念 Git是一个分布式的版本控制及协同开发工具 3.版本控制工具分类 3.1.集中式版本控制工具 cvs svn ​ 集中式版本控制系统&#xff0c;版本库是集中存放在中央服务器的&am…

LeetCode 刷题系列 -- 143. 重排链表

给定一个单链表 L 的头节点 head &#xff0c;单链表 L 表示为&#xff1a;L0 → L1 → … → Ln - 1 → Ln请将其重新排列后变为&#xff1a;L0 → Ln → L1 → Ln - 1 → L2 → Ln - 2 → …不能只是单纯的改变节点内部的值&#xff0c;而是需要实际的进行节点交换。示例 1&a…

深度卷积神经网络、池化层、为什么使用卷积、残差网络

目录1.深度卷积神经网络(a deep convolutional neural network)输入图像的维度是&#xff0c;如果&#xff0c;计算输出图像维度公式&#xff1a;。s表示步幅&#xff0c;p表示填充的层数。filters的通道数是和输入图像的通道数保持一致的。分析上图案例&#xff1a;第一层卷积…

leetcode刷题记录总结-5.双指针专题

文章目录一、过滤保序27.移除元素题解题解1&#xff1a;暴力解法题解2&#xff1a;双指针法[26. 删除有序数组中的重复项](https://leetcode.cn/problems/remove-duplicates-from-sorted-array/)题解[283. 移动零 ](https://leetcode.cn/problems/move-zeroes/description/)题解…

借助ChatGPT学习ROS2机器人编程

很好用&#xff0c;很方便。简单发布和订阅代码直接能跑的。如下&#xff1a;学习效率指数提升&#xff0c;果然数字生产力之神&#xff01;空洞的问题和回复&#xff1a;如何在一个月时间内掌握ROS2机器人操作系统的全部核心内容&#xff1f;要在一个月时间内掌握ROS2机器人操…

源码启动MeterSphereV2.6版本注意事项(三)

前言 之前写过一篇MeterSphereV2.3版本Mac本地启动详细教程&#xff08;含常见错误&#xff09;本地启动V2.3版本的。时隔3个月&#xff0c;MeterSphere已经到了V2.6 版本了&#xff0c;很多小伙伴私信我让我写一篇V2.6 版本的启动&#xff0c;刚好趁过年有时间&#xff0c;给…

Spring和SpringMvc详细讲解

&#x1f3c6;今日学习目标&#xff1a; &#x1f340;Spring和SpringMvc详细讲解 ✅创作者&#xff1a;林在闪闪发光 ⏰预计时间&#xff1a;30分钟 &#x1f389;个人主页&#xff1a;林在闪闪发光的个人主页 &#x1f341;林在闪闪发光的个人社区&#xff0c;欢迎你的加入: …

金仓数据库单表与多表查询

单表与多表查询 单引号与双引号 针对有空格、特殊字符、数字开头的字段别名必须加双引号 针对标量字符串表达式必须用加单引号 连接运算 字符串的拼接运算 字符串拼接经常用于生成SQL脚本 删除exam模式下所有的表&#xff0c;可以通过拼接生成如下批量的SQL select drop t…

scipy learn sharpen filter

文章目录1. 问题2. 方案2.1 学习一个 5 * 5的滤波核2.2 学习分通道的滤波核 以及 分离卷积3. 分析根据图像对学习滤波核之前研究过根据图像对生成3Dlut, 以及生成颜色变换系数 这里我们利用图像对学习 滤波 1. 问题 遇到的问题是这样的&#xff0c;已知一个图像和经过邻域滤…

爱快软路由对笔记本实现网络唤醒

本人有一台爱快软路由作为动态域名和端口映射&#xff0c;实现通过阿里域名远程访问内网设备。一台X201笔记本连接在软路由上。由于X201电池已经卸下无法实现来电开机&#xff0c;只能通过爱快e云APP手动实现网络唤醒&#xff0c;感觉非常麻烦。爱快云web端也不能实现开机唤醒X…

学长教你学C-day11-C语言结构体、枚举、联合体

“前面我们学习了数组&#xff0c;从数据类型来看&#xff0c;数组就是具有相同数据类型的变量集合&#xff1b;从内存空间来看&#xff0c;数组就是一串由相同大小的数据空间组成的较大的内存空间。那么结构体是什么呢&#xff1f;从内存角度讲&#xff0c;结构体也是一块地址…

PEG化芘衍生物——Pyrene-PEG-Acid,Pyrene-PEG-COOH,芘丁酸-聚乙二醇-羧基

一&#xff1a;产品描述 1、名称 英文&#xff1a;Pyrene-PEG-COOH&#xff0c;Pyrene-PEG-Acid 中文&#xff1a;芘丁酸-聚乙二醇-羧基 2、CAS编号&#xff1a;N/A 3、所属分类&#xff1a; Carboxylic acid PEG Pyrene PEG 4、分子量&#xff1a;可定制2000、1000、340…

2022个人年度总结:别让内心的烦躁和焦虑,占据本就不多的热情。

在从毕业一直到现在&#xff0c;我都会写一篇关于自己的从技术、商业、人情世故以及未来展望的博文&#xff0c;以至于归纳每个时期的自己&#xff0c; 走在互联网开发的边缘&#xff0c;不得不抽出时间鞭策自己学习新知识&#xff0c;未知的知识是 充满好奇的&#xff0c; 就好…

Makefile学习⑧:Makefile中通用部分做公共头文件

Makefile学习⑧&#xff1a;Makefile中通用部分做公共头文件 创建2个文件夹Demo1和Demo2,2个文件夹中的文件完全一样&#xff0c;但是命名不一样。 博主创建的如下&#xff0c;内容沿用前几章的函数文件。 这两个Makefile中的内容除了目标文件名和依赖文件名不一致&#xff0…

轻松实现一个Python+Selenium的自动化测试框架

首先你得知道什么是Selenium&#xff1f; Selenium是一个基于浏览器的自动化测试工具&#xff0c;它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分&#xff1a;Selenium IDE、Selenium WebDriver 和Selenium Grid。 Selenium IDE&#xff…

知识抽取-实体及关系抽取

信息抽取的三个最重要&#xff0c;最受关注的子任务&#xff1a; 实体抽取 命名实体识别&#xff0c;包括实体检测&#xff08;find)和分类&#xff08;classify) 关系抽取。 通常我们所述的三元组抽取&#xff0c; 一个谓词&#xff08;predicate)带2个形参&#xff08;argum…

MySQL学习记录(9)存储引擎

文章目录6、InnoDB存储引擎6.1、逻辑存储结构6.2、架构6.2.1、概述6.2.2、内存结构6.2.3、磁盘结构6.2.4、后台线程6.3、事务原理6.3.1、事务基础6.3.2、redo log日志6.3.3、undo log日志6.4、MVCC6.4.1、基本概念6.4.2、记录中隐藏字段6.4.3、undo log日志6.4.4、readview6.4.…

算法基础(二):数组知识点及题型讲解

算法基础&#xff08;二&#xff09;&#xff1a;数组知识点及题型讲解1 数组定义2 Python数组常用操作2.1 创建数组2.2 添加元素2.3 访问元素2.4 更新元素2.5 删除元素2.6 获取数组长度2.7 遍历数组2.8 查找某个元素2.9 数组排序3 力扣题目训练一些算法基础知识点和leetcode题…

汇编语言1基础知识

机器语言 机器语言是机器指令的集合&#xff0c;即计算机可以执行的指令。 机器指令由一连串二进制数字构成&#xff0c;计算机中用高低电平表示。高电平为1&#xff0c;低电平为0。 早期通过在纸带上打孔输入计算机运算。打孔为1&#xff0c;不打孔为0。 上图出自剧版三体第…

c语言tips-【gcc详细介绍】

0. 什么是gcc GCC 原名为 GNU C语言编译器&#xff08;GNU C Compiler&#xff09;GCC&#xff08;GNU Compiler Collection&#xff0c;GNU编译器套件&#xff09;是由 GNU 开发的编程语言译器。 GNU编译器套件包括C、C、 Objective-C、 Java、 Ada 和 Go语言前端&#xff0c…