shell学习笔记1-文件安全与权限

1,创建文件的用户和他所属的组拥有该文件,文件的属主可以设定谁具有读、写、执行该文件的权限,根用户可以改变任何普通用户的设置。

2,一个文件一经创建,就具有三种访问权限:读(可以显示该文件的内容)、写(可以编辑或删除它),执行(如果该文件是一个shell脚本或程序)

3,按照针对的用户,文件的权限分为三类:文件属主(创建该文件的用户)、同组用户(拥有该文件的用户组中的任何用户)、其他用户(不属于拥有该文件的用户组的某一用户)

4,解析文件描述

total 4232:该目录中所有文件所占空间

-rwxr-xr-x:说明文件权限。除去前面横杠,一共9个字符,对应9个权限,分为3组

  rwx:文件属主权限(前三位)

  r-x:同组其他用户权限(中间三位)

  r-x:其他用户权限(后三位)

出现在rwx位置上的横杠表示相应的访问权限被禁止

1:该文件硬链接的数目

root:文件的属主

root:文件的属主所在的缺省组

3578:用字节来表示文件的长度

Oct 14 04:44 文件的更新时间

demsg:文件名

5,-rwxrwxrwx 前面的横杠表示的是文件的类型。

  d(目录)、l(符号链接)、s(套接字文件)、b(块设备文件)、c(字符设备文件)、p(命令管道文件)-(普通文件,确切的说是不属于以上几种类型的文件)

6,系统在创建文件的时候,出于加强系统安全的考虑,系统不会自动设置执行权限位,必须手动修改。chmod命令可以改变文件权限位的设置。

  chmod [who] operator [permission] filename

  who:u(文件属主权限)、g(同组用户权限)、o(其他用户权限)、a(所有用户:文件属主、同组用户、其他用户)

  operator:+(增加权限)、-(取消权限)、=(设定权限)

  permission:r(读权限)、w(写权限)、x(执行权限)、s(文件属主和组set-ID)、t(粘性位*)、l(给文件加锁、使其他用户无法访问)、u,g,o(针对文件属主、同组用户以及其他用户的操作)

  *:在列文件或目录时,有时会遇到‘t’位。‘t’位代表了粘性位。如果一个目录上出现了t位,表示该目录中的文件只有属主才能删除,即使某个同组用户具有和属主同等权限。

  如果在文件列表时,看到t,表示该脚本或程序被执行时,会被放在交换区(虚存)。

  chmod a-x filename   收回所有用户的执行权限

  chmod og+w filename  赋予同组用户和其他用户写权限

  chmod u+x o-w filename   赋予属主执行权限,取消其他用户写权限

7,chmod命令绝对模式

  chmod [mode] file  mode是一个八进制数,每一个权限位用一个八进制数来表示

  0400(属主可读)、0200(属主可写)、0100(属主可执行)

  0040(同组可读)、0020(同组可写)、0010(同组可执行)

  0004(其他可读)、0002(其他可写)、0001(其他可执行)

  在设定权限时,只需要找到相应数字,相加即可。最大权限位7

  例如:-rw-r--r--表示的权限为644,即0400+0200属主可读写,0040同组可读,0004其他可读

  r+w+x = 4+2+1

  chmod 444 file  赋予所有用户读权限

  chmod 644 *   一次设置目录下所有文件的权限,文件属主具有读写权限,同组用户和其他用户只要读权限

  chmod -R 664 /usr/local/home/dave/*   一次性将dave目录下的所有文件连同各个子目录下的文件的权限,全部设置为文件属主和同组用户可读可写,其他用户只读(只有在改变目录树下全部文件权限时,才可以使用-R)

8,读指列出文件目录的权限,写指在该目录中创建或删除文件的权限,执行指搜索或进入该目录的权限

9,目录的权限级别大于目录中文件的权限级别

  

10,suid意味着如果某个用户对属于自己的shell脚本设置了这种权限,那么其他用户在执行这一脚本时,也会具有其属主的相应权限。于是,如果根用户的某一脚本设置了这样的权限,那么其普通用户在执行它的期间,也同样有根用户的权限。同样的原则也适用于guid,执行相应脚本的用户将具有该文件所属用户组中用户的权限。

  想找出设置了suid和guid的命令,可以进入/bin或/sbin目录执行下面的命令

  

  如果希望设置suid,那么就将相应权限位之前的那一位设置为4,如果希望设置guid,那么就将相应权限位之前的那一位设置为2,如果希望同时设置,那么相应权限位之前的那一位设置为4+2。

  一旦设置了这一位,一个s将出现在x的位置上。在设置suid或guid的同时,相应的执行权限位必须要被设置。

  

 

rwS rw-rw-表示该文件没有设置执行位,这是一种没有任何用处的suid设置

chmod不进行必要的完整性检查

11,只有文件的属主和系统管理员可以改变文件的所有权,一旦将文件的所有权交给另外一个用户,将无法再重新收回它的所有权,如果真的要收回,就只能求助于系统管理员。

  chown命令的一般形式:chown -R -h owner file

  -R表示对所有子目录下的文件也进行同样的操作。-h表示在改变符合链接文件的属主时,不影响该链接所指向的目标文件。

12,

13,找出自己所属的用户组

14,找出其他用户的组

15,当我们登录系统后创建文件时,总有一个默认权限,这就是umask干的事情,umask设置了用户创建文件的默认权限。与chmod相反,umask设置的是权限“补码”,而chmod设置的是文件权限码。一般来说umask是在/etc/profile文件中设置的,每个用户登录时都会引用这个文件。如果希望永久性的设置自己的umask,就将它放在自己$HOME目录下的.profile或.bash_frofile文件中。

  对于文本文件来说,umask的最大值是6,对于目录来说,umask最大是7。因为系统不允许在创建一个文本文件时就赋予它执行权限,必须在创建后使用chmod增加,目录则允许设置执行权限。

  umask命令形式:umask nnn  nnn范围是000-777

  umask的计算是从权限中拿走相应的位即可。例如umask是002,则对于文件的缺省权限是664,针对目录的权限是775

  

  如果想知道umask的值,可以使用umask命令

  

16,符号链接:存在两种不同类型的链接,软链接和硬链接。

  软链接实际就是一个指向文件的指针。比如,有很多子目录,进入很浪费时间,那就可以在方便的位置针对这个很深的子目录创建一个链接。链接的名字可以和源文件不同。

  命令模式:ln [-s] source_path target_path  其中的路径可以是目录页可以是文件,若target不存在,系统会自动创建

  链接一旦创建,链接目录将具有权限777(对原有文件的权限不会产生改变),所以不要忘记在原有目录设置执行权限

 

转载于:https://www.cnblogs.com/javadongx/p/shell_chmod_chown_group_umask_ln.html

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

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

相关文章

最新70佳单页网站设计案例欣赏(上篇)

单页网站是指只有一个页面的网站,这种形式的网站曾经非常流行,现在依然有很多人喜欢。不过,并不是每个网站都适合做成单页,一般都是内容比较少而且将来内容也不怎么增加的情况才适合这样做。如果你打算做一个这样的网站&#xff0…

Kubernetes 中文文档

Kubernetes 中文文档 如果想学习 Kubernetes 的小伙伴,可以参考如下文档学习: https://www.kubernetes.org.cn/docs 文档中详细讲解了 k8s 的设计理念,基本概念,常用命令等。 转载于:https://www.cnblogs.com/miracle-luna/p/1111…

网易原来也是个骗子

当初开通photo.163.com网易相册时,就是看着网易的宣传口号:免费而且不限容量!结果现在坏了,规则说改就改,容量一下子收到1G,超过部份要么给钱¥¥¥¥&#xffe5…

不同设备屏幕尺寸和DPR适配

为什么需要适配 目前市面上设备屏幕属性十分多样化(宽度和DPR并不一致),而作为设计和前端开发,无法为每个尺寸的设备单独设计一套UI并将其转为前端代码,这不现实。所以我们需要一套方案来将一套设计稿完美呈现在不同尺…

Edge浏览器开发人员工具

UserAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240" 本地存储/会话存储模拟达到上限 资源终于全部列表出来了 删除 Cookie 和 删除会话 Cookie 样式可以实时编辑了 …

linux 第一个内核模块Hello World

内核模块是Linux内核向外部提供的一个插口,其全称为动态可加载内核模块(Loadable Kernel Module,LKM),我们简称为模块。Linux内核之所以提供模块机制,是因为它本身是一个单内核(monolithic kern…

【JS复习笔记】00 序

作为一个前端苦手,说是复习,你就当我是重学好了。 好吧,我当然不可能抱着一个砖头去复习,所以捡了本薄的来读——《JavaScript语言精粹》。 当初带我的人说这本书挺好,就看这本书好了。我觉得他说的挺对。我喜欢这么…

Generator执行步骤浅析

在Generator函数出现之前JS的函数只能返回一个值,返回的方式就是return,但是Generator函数可以返回多个值,返回的方式是yield。并且Generator赋予了外部动态影响函数内部的执行顺序的能力。 基础语法 function* f () {const a yield 1cons…

使用 jQuery.Pin 垂直滚动时固定导航

ZKEACMS的导航默认是不能固定的,随着页面的滚动而滚动,为了有更好的用户体验,当页面往下滚动时,可以将导航固定在顶端,这样方便用户点击。 jQuery Pin 借助jQuery的一个插件 jQuery.Pin,这个插件可在用来…

MDK升级后的头文件冲突

////TITLE:// MDK升级后的头文件冲突//AUTHOR:// norains//DATE:// Friday 17-June-2011//Environment:// Keil MDK 4.2// .NET Micro Framework Porting 4.1// 因为在移植的时候,发现了不少MDK编译的一些问题,于是便想升级到最新版本&a…

阻止默认事件

在JS中经常需要阻止元素的默认事件。而阻止默认事件的方法都是使用事件对象的preventDefault()方法或者在函数中return false。在最近一次开发中使用preventDefault()方法的时候遇到一个问题&#xff0c;现在才想/猜明白原因&#xff0c;场景是这样的&#xff1a; <a href&…

MySQL之SQL优化详解(三)

目录 MySQL 之SQL优化详解&#xff08;三&#xff09; 1. 索引优化2. 剖析报告:Show ProfileMySQL 之SQL优化详解&#xff08;三&#xff09; 1. 索引优化 一旦建立索引&#xff0c;select 查询语句的where条件要尽量符合最佳左前缀的原则&#xff0c;如若能做到全值匹配最好。…

行内格式化

相对于熟知的块级格式化上下文&#xff0c;行内格式化上下文更加的复杂难明。行内元素不像块级元素那样直来直去&#xff0c;一个块级元素占据一行&#xff0c;其他块级元素在垂直方向依次向下排列即可。行内元素不同&#xff0c;多个行内元素可以在一行显示&#xff0c;那么&a…

[转载]struts+hibernate遇到的错误总结

原文地址&#xff1a;strutshibernate遇到的错误总结作者&#xff1a;畫上句號经过对strutshibernate几天的学习&#xff0c;大体上还算比较的了解机制&#xff0c;以前学习的时候都是 单个框架训练&#xff0c;没有结合2个框架做&#xff0c;所以今天就找了个网上发布租房信息…

JPA休眠替代方案。 如果JPA或Hibernate对于我的项目而言不够好,该怎么办?

你好&#xff01;你好吗&#xff1f; 今天&#xff0c;我们将讨论不建议使用JPA / Hibernate的情况。 在JPA领域之外&#xff0c;我们还有哪些选择&#xff1f; 我们将谈论的是&#xff1a; JPA /休眠问题 解决一些JPA /休眠问题的方法 选择此处描述的框架的标准 Spring J…

一个Web前端自学者的自述

想来想去还是写下这篇文章&#xff0c;先说明&#xff0c;我精通JAVA编程语言和web前端常见的技术&#xff0c;个人是做JAVA的多&#xff0c;但是更加喜欢前端。因为我从高一开始接触JAVA&#xff0c;家父是黑马的JAVA讲师&#xff0c;自己对编程很热爱&#xff0c;在大学的时候…

css实现web前端最美的loading加载动画!

这些好看的loading效果&#xff0c;你还只会用第三方库吗&#xff1f;CSS3教你实现 ​前言 loading效果在实际开发中是很常见的&#xff0c;尤其是在Ajax请求的时候&#xff0c;可以给用户一个很好的交互体验。 今天这篇文章我们一起来看看如何通过CSS3实现各种不同的loadin…

如何使用Hibernate从Play生成DDL脚本! 框架项目

好的&#xff0c;因此您一直在使用hibernate属性名称“ hibernate.hbm2ddl.auto ” value “ 更新 ”来不断更新数据库架构&#xff0c; 但是现在您需要一个完整的DDL脚本吗&#xff1f; 从您的Global Class onStart中使用此方法来导出DDL脚本。 只需为其提供实体的包名称&…

C# 设计模式,工厂方法

C#工厂方法 1 using System;2 using System.Collections.Generic;3 using System.Linq;4 using System.Text;5 using System.Threading.Tasks;6 7 namespace 工厂方法 {8 class Program {9 static void Main(string[] args) { 10 IFacotry i new Fact…

css3帮你轻松实现圆角效果,不一样的前端页面。

在Web前端页面实现圆角效果&#xff0c;CSS3帮你轻松实现&#xff0c;一个人人皆知的属性 圆角边框的绘制是Web页面和Web应用程序中经常用来美化页面效果的手法之一。今天&#xff0c;小编为大家介绍CSS3提供的可以将矩形变为圆角矩形的一个属性 技术等级&#xff1a;中级 | 适…