草庐IT

『Linux从入门到精通』第 ⑤ 期 - 用户分类+权限管理+umask+粘滞位说明

花想云(西安第一深情) 2024-03-15 原文

目录

💐专栏导读

💐文章导读 

🌷用户分类

🌺su指令

🌷认识Linux权限

🌺文件访问者的分类

🌺文件类型和访问权限

🌼文件类型

🌼file指令

🌼 访问权限

🌺文件权值的表示方法

🌼字母表示法

🌼八进制表示法

🌷如何修改文件访问者的权限及相关指令

🌺chmod指令

🌺chown指令

🌺chgrp指令

🌺权限掩码与umask指令 

umask指令

🌷目录的权限

🌺粘滞位


💐专栏导读

🌸作者简介:花想云,在读本科生一枚,致力于 C/C++、Linux 学习。

🌸本文收录于 Linux从入门到精通 系列,本专栏主要内容为Linux的系统性学习,专为小白打造的文章专栏。

🌸相关专栏推荐:C语言初阶系列 、C语言进阶系列 数据结构与算法

💐文章导读 

本章主要内容有认识Linux中的用户分类、认识Linux权限相关知识,学会如何查看权限与修改权限、认识粘滞位等等。

我们对权限并不陌生,权限代表着限制。对于某些用户做一些事情是可以的,但其他人却不行。

同样的,在Linux中也存在着权限的概念。既然是限制,那就得针对用户身份,所以Linux中,对于用户身份也有着分类。

🌷用户分类

Linux下有两种用户:

超级用户(root):可以再linux系统下做任何事情,不受限制;

普通用户:在linux下做有限的事情。

其中,超级用户只能有一个,而普通用户可以有很多个。如何添加普通用户我之前已经提到过这里就不作赘述,链接:如何添加普通用户

🌺su指令

功能:用来切换用户身份;(例如,有些时候,作为普通用户没有权限做某些事,可以临时切换为root身份)

语法:su + [用户名字] (su root 此时root可以省略)

🌷认识Linux权限

当我们用 ll(等于ls -l)显示文件的详细信息时:

我们并不知道红色方框中的内容代表什么意思,但是有些能大概猜出来。例如,7 表示的是文件名;6 代表的是文件创建时间;5 代表文件的大小(单位:字节)。

至于其他的内容我们并不清楚,接下来的内容就是认识它们。

🌺文件访问者的分类

当我们要访问某个文件时,我们的身份又有了重新的划分:

文件和文件目录的所有者:u---User;

文件和文件目录的所有者所在的组的用户:g---Group;

其它用户:o---Others ;

对于不同身份的文件访问者,都有各自的权限;

🌺文件类型和访问权限

我们之前看到的第 1 个红框中,有这些符号:

其中第一列代表的是文件类型,其余的代表访问权限。

🌼文件类型

d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件

🌼file指令

功能:查看文件类型;

语法: file [选项]  目标文件或目录

常用选项:

-c :详细显示指令执行过程,便于排错或分析程序执行的情形;
-z :尝试去解读压缩文件的内容;

实际上Linux系统并不会识别你自己取得文件后缀(例如 test.txt 和t est.c),在系统眼中,它们都是普通文件。但是系统不关心并不代表某些软件不关心(例如不能用gcc编译  .txt文件),所以文件后缀一般还是不要省略。

🌼 访问权限

除了第一列,剩下得每 3 个为一组,分为三组。

第一组表示文件和文件目录的所有者(user)的权限;

第二组表示文件和文件目录的所有者所在的组的用户(group)的权限;

第三组表示其他用户(other)的权限。

🌺文件权值的表示方法

🌼字母表示法

🌼八进制表示法

🌷如何修改文件访问者的权限及相关指令

🌺chmod指令

功能:设置文件的访问权限;

语法:chmod [选项]  目标文件

常用选项:

-R :递归修改目录文件的权限

说明:只有文件的拥有者和root才可以改变文件的权限。

chmod指令的不同格式:

① 用户表示符+/-权限字符

+:向权限范围增加权限代号所表示的权限;
-:向权限范围取消权限代号所表示的权限;
=:向权限范围赋予权限代号所表示的权限;
用户符号: 
u:拥有者
g:拥有者同组用户
o:其它用户
a:所有用户

示例:

chmod u+r test.txt
chmod u-w test.txt
chmod u+r,u+w,o+x test.txt
chmod a+r test.txt
chmod a-w test.txt

 ②三位8进制数字

示例:

chmod 000 test.txt
chmod 777 test.txt
chmod 667 test.txt

🌺chown指令

功能:修改文件的拥有者;

语法:  chown [选项] username 目标文件 

常用选项:

-R :递归修改目录文件的拥有者

示例:

chown root test.txt
chown -R hxy mydir

🌺chgrp指令

功能:修改文件或目录的所属组;

语法:  chgrp [选项] 用户所属组名 目标文件 

常用选项:

-R :递归修改目录文件的所属组

示例:

chgrp root test.txt
chgrp -R hxy mydir

🌺权限掩码与umask指令 

文件的权限生成其实是有一个过程的,有这样一个问题,为什么我们创建一个新文件时,它的权限是我们看到的那个样子?我们能修改这个默认的权限吗?

我们最终所看到的权限就是默认权限也叫最终权限,它的生成经过这样的过程:

最终权限 = 起始权限 & (~umask) (umask为权限掩码)。

起始权限:系统设定的,及文件一出生系统认为应该带有的权限。普通文件:666;目录文件:777。

权限掩码:三位八进制数字,用来控制最终权限的生成。

umask指令

功能:查看或修改文件掩码;

语法:  umask 权限值 

示例:

🌷目录的权限

可执行权限 x :如果目录没有可执行权限,则无法cd到目录中;

可读权限 r :如果目录没有可读权限, 则无法用 ls 等命令查看目录中的文件内容;

可写权限 w :如果目录没有可写权限,则无法在目录中创建文件,也无法在目录中删除文件。

有个疑问:故事如下:

在公司里,张三和李四共同掌管一个共享目录。该共享目录由老板 root 创建,且对于other有rwx权限(意味着谁都可以在共享目录创建或删除文件)。

张三在共享目录下创建了一个文件,对other的权限只开放了 r 与 x;意味着李四只能读文件而不能修改内容。但是李四心生歹意,你不让我写。我就删掉你的文件。结果该文件被删除,对张三乃至公司造成了极大的损失...

那么有什么办法能限制其他人不能在共享目录删除我的文件呢?

答案是,当然有,就是给共享目录添加粘滞位

🌺粘滞位

添加方法:

chmod +t 目标文件

当一个目录被设置为"粘滞位",则该目录下的文件只能由

▶ 超级管理员删除;

▶ 该目录的所有者删除;

▶ 该文件的所有者删除。

 

点击下方个人名片,可添加博主的个人QQ,交流会更方便哦~
 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓

有关『Linux从入门到精通』第 ⑤ 期 - 用户分类+权限管理+umask+粘滞位说明的更多相关文章

  1. ruby - i18n Assets 管理/翻译 UI - 2

    我正在使用i18n从头开始​​构建一个多语言网络应用程序,虽然我自己可以处理一大堆yml文件,但我说的语言(非常)有限,最终我想寻求外部帮助帮助。我想知道这里是否有人在使用UI插件/gem(与django上的django-rosetta不同)来处理多个翻译器,其中一些翻译器不愿意或无法处理存储库中的100多个文件,处理语言数据。谢谢&问候,安德拉斯(如果您已经在ruby​​onrails-talk上遇到了这个问题,我们深表歉意) 最佳答案 有一个rails3branchofthetolkgem在github上。您可以通过在Gemfi

  2. ruby-on-rails - 使用 rails 4 设计而不更新用户 - 2

    我将应用程序升级到Rails4,一切正常。我可以登录并转到我的编辑页面。也更新了观点。使用标准View时,用户会更新。但是当我添加例如字段:name时,它​​不会在表单中更新。使用devise3.1.1和gem'protected_attributes'我需要在设备或数据库上运行某种更新命令吗?我也搜索过这个地方,找到了许多不同的解决方案,但没有一个会更新我的用户字段。我没有添加任何自定义字段。 最佳答案 如果您想允许额外的参数,您可以在ApplicationController中使用beforefilter,因为Rails4将参数

  3. ruby-on-rails - 获取 inf-ruby 以使用 ruby​​ 版本管理器 (rvm) - 2

    我安装了ruby​​版本管理器,并将RVM安装的ruby​​实现设置为默认值,这样'哪个ruby'显示'~/.rvm/ruby-1.8.6-p383/bin/ruby'但是当我在emacs中打开inf-ruby缓冲区时,它使用安装在/usr/bin中的ruby​​。有没有办法让emacs像shell一样尊重ruby​​的路径?谢谢! 最佳答案 我创建了一个emacs扩展来将rvm集成到emacs中。如果您有兴趣,可以在这里获取:http://github.com/senny/rvm.el

  4. ruby-on-rails - 简单的 Ruby on Rails 问题——如何将评论附加到用户和文章? - 2

    我意识到这可能是一个非常基本的问题,但我现在已经花了几天时间回过头来解决这个问题,但出于某种原因,Google就是没有帮助我。(我认为部分问题在于我是一个初学者,我不知道该问什么......)我也看过O'Reilly的RubyCookbook和RailsAPI,但我仍然停留在这个问题上.我找到了一些关于多态关系的信息,但它似乎不是我需要的(尽管如果我错了请告诉我)。我正在尝试调整MichaelHartl'stutorial创建一个包含用户、文章和评论的博客应用程序(不使用脚手架)。我希望评论既属于用户又属于文章。我的主要问题是:我不知道如何将当前文章的ID放入评论Controller。

  5. ruby - RVM "ERROR: Unable to checkout branch ."单用户 - 2

    我在新的Debian6VirtualBoxVM上安装RVM时遇到问题。我已经安装了所有需要的包并使用下载了安装脚本(curl-shttps://rvm.beginrescueend.com/install/rvm)>rvm,但以单个用户身份运行时bashrvm我收到以下错误消息:ERROR:Unabletocheckoutbranch.安装在这里停止,并且(据我所知)没有安装RVM的任何文件。如果我以root身份运行脚本(对于多用户安装),我会收到另一条消息:Successfullycheckedoutbranch''安装程序继续并指示成功,但未添加.rvm目录,甚至在修改我的.bas

  6. ruby-on-rails - 事件管理员日期过滤器日期格式自定义 - 2

    是否有简单的方法来更改默认ISO格式(yyyy-mm-dd)的ActiveAdmin日期过滤器显示格式? 最佳答案 您可以像这样为日期选择器提供额外的选项,而不是覆盖js:=f.input:my_date,as::datepicker,datepicker_options:{dateFormat:"mm/dd/yy"} 关于ruby-on-rails-事件管理员日期过滤器日期格式自定义,我们在StackOverflow上找到一个类似的问题: https://s

  7. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  8. 微信小程序开发入门与实战(Behaviors使用) - 2

    @作者:SYFStrive @博客首页:HomePage📜:微信小程序📌:个人社区(欢迎大佬们加入)👉:社区链接🔗📌:觉得文章不错可以点点关注👉:专栏连接🔗💃:感谢支持,学累了可以先看小段由小胖给大家带来的街舞👉微信小程序(🔥)目录自定义组件-behaviors    1、什么是behaviors    2、behaviors的工作方式    3、创建behavior    4、导入并使用behavior    5、behavior中所有可用的节点    6、同名字段的覆盖和组合规则总结最后自定义组件-behaviors    1、什么是behaviorsbehaviors是小程序中,用于实现

  9. 【Java入门】使用Java实现文件夹的遍历 - 2

    遍历文件夹我们通常是使用递归进行操作,这种方式比较简单,也比较容易理解。本文为大家介绍另一种不使用递归的方式,由于没有使用递归,只用到了循环和集合,所以效率更高一些!一、使用递归遍历文件夹整体思路1、使用File封装初始目录,2、打印这个目录3、获取这个目录下所有的子文件和子目录的数组。4、遍历这个数组,取出每个File对象4-1、如果File是否是一个文件,打印4-2、否则就是一个目录,递归调用代码实现publicclassSearchFile{publicstaticvoidmain(String[]args){//初始目录Filedir=newFile("d:/Dev");Datebeg

  10. ES基础入门 - 2

    ES一、简介1、ElasticStackES技术栈:ElasticSearch:存数据+搜索;QL;Kibana:Web可视化平台,分析。LogStash:日志收集,Log4j:产生日志;log.info(xxx)。。。。使用场景:metrics:指标监控…2、基本概念Index(索引)动词:保存(插入)名词:类似MySQL数据库,给数据Type(类型)已废弃,以前类似MySQL的表现在用索引对数据分类Document(文档)真正要保存的一个JSON数据{name:"tcx"}二、入门实战{"name":"DESKTOP-1TSVGKG","cluster_name":"elasticsear

随机推荐