77百科网
当前位置: 首页 生活百科

给文件赋予权限的命令(linux权限管理)

时间:2023-05-24 作者: 小编 阅读量: 6 栏目名: 生活百科

而这种控制就是通过权限实现的,本节课我们介绍linux权限的使用一、基本权限基本权限的介绍Linux中每个文件或目录都有3个基本权限位,控制三种访问级别用户的读、写、执行,所以linux的基本权限位一共有9个。任意存取该文件拥有者能使用的全部系统资源。如果所有者是root的话,那么执行人就有超级用户的特权了。

课程目标:
  • 能够说出Linux基本权限的作用和用法
  • 能够说出特殊权限的作用
  • 能够知道隐藏权限的用法
  • 能够知道acl权限的使用
==知识点==
  • 基本权限
  • 特殊权限
  • 隐藏权限
  • acl权限
介绍

Linux系统是一个典型的多用户操作系统,不同的用户处于不同的地位,为了保护系统的安全性,linux系统对于不同用户访问同一个文件或目录做了不同的访问控制。而这种控制就是通过权限实现的,本节课我们介绍linux权限的使用

一、基本权限基本权限的介绍

Linux中每个文件或目录都有3个基本权限位,控制三种访问级别用户的读、写、执行,所以linux的基本权限位一共有9个。基本权限位和另外3个可以影响可执行程序运行的3个特殊权限位一起构成了文件访问模式。三个属性规定了对应三种级别的用户能够如何使用这个文件,这三个基本权限位对于文件和目录的含义有所差别的,我们一起来看一下

字符

权限

对文件的含义

对目录的含义

r

意味着我们可以查看阅读

可以列出目录中的文件列表

w

意味着,对文件可以修改或删除

可以在该目录中创建、删除文件

x

执行

如果是文件就可以运行,比如二进制文件或脚本。

可以使用cd命令进入该目录

那三种访问级别都有哪些呢?每个文件都有三组不同的读、写和执行权限,分别适用于三种访问级别,其中每组中的三个栏位分别使用读取权限(r)、写入权限(w)、执行权限(x)或没有相应的权限(-)来表示,共9位来表示。

第一组:适用于文件的属主,图中属主的权限是rwx。

第二组:适用于文件的属组,图中属组的权限是r-x。

第三组:使用于其它用户权限位,图中其它用户权限位是r-x。

当有人试图访问一个文件的时候,linux系统会按顺序执行如下步骤:

(1)使用者拥有这个文件吗?如果是,启用用户权限。

(2)用户是组所有者成员吗?如果是,启用组权限

(3)如果以上两个都不是,启用其它人权限

上面我们提到的是第一种表示方法,在linux中还有另外一种表示方法,八进制表示法,我们来看下字母和八进制表示方法的对应关系

字符表示法

八进制表示法

含义

r

4

w

2

x

1

执行

所以上面给出的权限rwxr-xr-x换成数字的表示方式就是755,那权限如何设置呢?

基本权限的设置和查看

通过前面的学习我们知道,用户分为所有者,所有者组,其他人这三类,而每一类有包含三种基本权限,他们的对应关系是

权限位

含义

属主权限位

用于限制文件或目录的创建者

属组权限位

用于限制文件或目录所属组的成员

其它用户的权限

用于限制既不是属主又不是所属组的能访问该文件或目录的其他人员

当我们使用命令来查看文件或目录时,会看如下内容

[root@localhost ~]# ls -l总用量 13804drwxr-xr-x. 2 root root 6 10月 11 06:36 公共drwxr-xr-x. 2 root root 6 10月 11 06:36 模板drwxr-xr-x. 2 root root 6 10月 11 06:36 视频drwxr-xr-x. 2 root root 6 10月 11 06:36 图片drwxr-xr-x. 2 root root 6 10月 11 06:36 文档drwxr-xr-x. 2 root root 6 10月 11 06:36 下载drwxr-xr-x. 2 root root 6 10月 11 06:36 音乐drwxr-xr-x. 2 root root 6 10月 11 06:36 桌面-rw-------. 1 root root 1214 10月 11 06:12 anaconda-ks.cfg-rw-r--r--. 1 root root 1369 10月 11 06:17 initial-setup-ks.cfg

每一行显示一个文件或目录的信息,这些信息包括文件的类型(1位)、文件的权限(9位)、文件的连接数、文件的属主(第3列)、文件的所属组(第4列),大小以及相关时间和文件名。其中Linux 文件的权限标志为九个,分为3 组,分别代表文件拥有者的权限,文件所属用户组的权限和其它用户的权限,现在我们知道文件有三种权限((r)读取、(w)写入和(x)执行)和三种访问级别((u)用户、(g)主要组和(o)其它人)决定文件可以被如何使用。那如何修改?

修改文件权限 chmod

缩写

含义

u

User(用户)

g

Group (组)

o

Other(其它)

a

All(所有)

Add(加)

-

Remove(减去)

=

Set (设置)

r

Read (可读)

w

Write (可写)

x

Execute (执行)

命令

作用

结果权限

chmod o-r a.File

取消其他人的可读权限

rw-rw---

chmod g-w a.file

取消组的写入权限

rw-r--r--

chmod ug w a.file

赋予用户和组写入权限

rwxrwxr--

chmod o w a.file

赋予其他人写入权限

rw-rw-rw-

chmod go-rwx a.file

取消组和其他人的阅读、写入和执行权限

rw-------

chmod a-w a.file

取消所有人的写入权限

r-- r-- r--

chmod uo-r a.file

取消用户和其它人的阅读权限

-w-rw--w-

chmod go=rw a.file

将组和其他人的权限设置为阅读和写入

rw-rw-rw-

使用数字的表示方式类似chmod 755 a,执行完成后a这个文件的权限对应就是 -rwxr-xr-x,这是文件权限的两种修改方式,如果你想修改文件的所有者和所有者组需要使用的命令就是chown,chgrp

[root@localhost test]# ll总用量 0-rw-r--r-- 1 root root 0 10月 18 01:26 file1[root@localhost test]# chown oracle file1[root@localhost test]# ll总用量 0-rw-r--r-- 1 oracle root 0 10月 18 01:26 file1[root@localhost test]# chgrp oracle file1[root@localhost test]# ll总用量 0-rw-r--r-- 1 oracle oracle 0 10月 18 01:26 file1

这里,我们涉及到了三条与权限修改相关的命令

操作

可以执行的用户

chmod

Root用户和文件的所有者

chgrp

Root用户和文件的所有者(必须是组成员)

chown

只有root用户

以上是三种基本权限 -R

文件或目录的默认权限

每一个新产生的文件都会有一个默认的权限,这个权限是通过系统中的umask来控制的

文件的最大权限是666

目录的权限是777

使用umask查看

二、特殊权限特殊权限的介绍

之前我们提到了特殊权限有三个,这三个特殊权限是在可执行程序运行时影响操作权限的,它们分别是SUID,SGID,sticky-bit位

特殊权限

说明

SUID

当一个设置了SUID 位的可执行文件被执行时,该文件将以所有者的身份运行,也就是说无论谁来执行这个文件,他都有文件所有者的特权。任意存取该文件拥有者能使用的全部系统资源。如果所有者是 root 的话,那么执行人就有超级用户的特权了。

SGID

当一个设置了SGID 位的可执行文件运行时,该文件将具有所属组的特权,任意存取整个组所能使用的系统资源;若一个目录设置了SGID,则所有被复制到这个目录下的文件,其所属的组都会被重设为和这个目录一样,除非在复制文件时保留文件属性,才能保留原来所属的群组设置。

stickybit

对一个文件设置了sticky-bit之后,尽管其他用户有写权限,也必须由属主执行删除、移动等操作;对一个目录设置了sticky-bit之后,存放在该目录的文件仅准许其属主执行删除、移动等操作。

一个典型的例子就是passwd命令,这个命令允许用户修改自己的密码。我们可以看到本来是rwx的权限表示形式变成了rws,同样如果/usr/bin/passwd这个文件同时被设置了三个特殊权限,那么权限的格式就会变成rwsrwsrwt,需要注意的是特殊权限设置的前置要求是可执行,也就是如果没有x权限位,是不要设置的,即便你使用root用户设置上了特殊权限,也不会生效。

[root@localhost test]# ll /usr/bin/passwd -rwsr-xr-x. 1 root root 34928 5月 11 11:14 /usr/bin/passwd

特殊权限的设置和查看

特殊权限的设置也是使用chmod

[root@localhost test]# ll总用量 0-rwxr-xr-x 1 oracle oracle 0 10月 18 01:26 file1[root@localhost test]# chmod u s file1[root@localhost test]# ll总用量 0-rwsr-xr-x 1 oracle oracle 0 10月 18 01:26 file1[root@localhost test]# chmod g s file1[root@localhost test]# ll总用量 0-rwsr-sr-x 1 oracle oracle 0 10月 18 01:26 file1[root@localhost test]# chmod o t file1[root@localhost test]# ll总用量 0-rwsr-sr-t 1 oracle oracle 0 10月 18 01:26 file1

或者使用数字

[root@localhost test]# chmod u-s,g-s,o-t file1[root@localhost test]# ll总用量 0-rwxr-xr-x 1 oracle oracle 0 10月 18 01:26 file1[root@localhost test]# chmod 7755 file1[root@localhost test]# ll总用量 0-rwsr-sr-t 1 oracle oracle 0 10月 18 01:26 file1

三、隐藏权限隐藏权限的介绍

有时候你发现即使使用的是root用户也不能修改某个文件,大部分原因是因为使用过chattr命令锁定了该文件,这个命令的作用很大,通过chattr可以提高系统的安全性,但是这个命令并不适合所有的目录,如/dev,/tmp,/var。与我们前面看到的chmod这些命令修改权限不同的是chattr修改的是更底层的属性,这里面我们所提到的隐藏权限指的就是使用chattr来设置属性

隐藏权限的设置和查看

chattr的用户与我们之前讲的chmod,chow这些命令相似,都是直接对需要修改的文件进行操作就可以了

[root@localhost test]# chattrAaiSd file1[root@localhost test]# lsattr file1 --S-iadA---------- file1[root@localhost test]# chattr = file1[root@localhost test]# lsattr file1 ------------------ file1

A 文件或目录的atime不可被修改S 硬盘I/O同步选项,功能类似sync。a 只能向文件中添加数据,而不能删除,多用于服务器日志文件安全,只有root才能设定这个属性。d 文件不能成为dump程序的备份目标。i 设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。

通过上面的例子可以看到查看的时候使用的是lsattr,chattr还有很多参数,各位可以在man手册中获取到帮助,另外有些参数的使用是有局限性的。

四、acl权限acl权限的介绍

linux的权限非常重要,我们之前所说的几种权限中,但是并不能只针对一个用户或者一个组进行单独设置,而ACL权限可以帮助我们实现这个功能,比如说有一个文件的所有者和所有者组都是a,这个文件的权限是660,我可以让b这个用户可以对文件进行读写的操作,而b这个用户并不属于a组的成员。那我们来看下如何使用

acl权限的设置和查看

如果要使用acl权限,首先要确定你的文件系统支持acl权限,如果在Default mount options字段出现acl字样就意味着你的文件系统支持acl,不过在CentOS8中默认是都支持的。

[root@localhost test]# tune2fs -l /dev/sda1tune2fs 1.44.3 (10-July-2018)Filesystem volume name: <none>Last mounted on: /bootFilesystem UUID: be03eaec-6474-42ea-8f79-06e7198f5155Filesystem magic number: 0xEF53Filesystem revision #: 1 (dynamic)Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csumFilesystem flags: signed_directory_hash Default mount options: user_xattr aclFilesystem state: clean...

配置acl权限我们需要使用两个命令一个是setfacl用来设置acl权限,另一个是getfacl用来查看acl权限

setfacl

-m :设置acl-x :删除指定的acl-b :删除所有的acl

getfacl用来查看文件的acl权限,现在我们来看下如何设置

[root@localhost test]# lsfile file1[root@localhost test]# ll file1-rw-r--r-- 1 root root 0 10月 18 02:48 file1[root@localhost test]# setfacl -m u:oracle:rw file1 为指定的用户配置一个rw的权限[root@localhost test]# setfacl -m u::rwx file1 如果没有指定用户则默认是为该文件的所有者设置[root@localhost test]# ll file1-rwxrw-r--1 root root 0 10月 18 02:48 file1 所有者权限变成的rwx而且后面多了一个 号

你会发现使用ll(等同于ls -l)命令查看时会发现多了一个 号,这只是提醒我们此文件被设置了acl权限,但是具体是什么样的,我们还需要使用getfacl来查看

[root@localhost test]# getfacl file1# file: file1 文件名# owner: root 所有者# group: root 所有者组user::rwx user:后面是空的,代表的是所有者的权限user:oracle:rw- 我们之前给额外用户设置的权限group::r-- 所有者组的权限mask::rw- 默认的有效权限other::r-- 其他人的权限

以上是我们针对一个额外的用户设置的权限,同理可以设置针对组和其他人的acl权限

[root@localhost test]# setfacl -m g:oracle:rw file1[root@localhost test]# setfacl -m o:rw file1[root@localhost test]# getfacl file1# file: file1# owner: root# group: rootuser::rwxuser:oracle:rw-group::r--group:oracle:rw-mask::rw-other::rw-

删除指定的acl

[root@localhost test]# setfacl -x u:oracle file1 删除用户acl[root@localhost test]# getfacl file1# file: file1# owner: root# group: rootuser::rwxgroup::r--group:oracle:rw-mask::rw-other::rw-[root@localhost test]# setfacl -x g:oracle file1 删除组acl[root@localhost test]# getfacl file1# file: file1# owner: root# group: rootuser::rwxgroup::r--mask::r--other::rw-[root@localhost test]# chmod o=r file1 删除其他人直接使用chmod就可以[root@localhost test]# ll file1-rw-r--r-- 1 root root 0 10月 18 04:21 file1[root@localhost test]# getfacl file1# file: file1# owner: root# group: rootuser::rw-group::r--other::r--

删除所有acl

[root@localhost test]# setfacl -m u:oracle:rw,g:oracle:rw,o:rwx file1[root@localhost test]# getfacl file1# file: file1# owner: root# group: rootuser::rw-user:oracle:rw-group::r--group:oracle:rw-mask::rw-other::rwx[root@localhost test]# setfacl -b file1[root@localhost test]# getfacl file1# file: file1# owner: root# group: rootuser::rw-group::r--other::rwx

你没看错,权限在指定的时候是可以指定多个的,我们之前提到的chmod也可以这样使用,好了权限管理我们就说这么多,现在我们来总结一下

总结

本节课我们学习了linux的权限管理,我们将权限管理分为四个部分

基本权限

特殊权限

隐藏权限

acl权限

其中基本权限和特殊权限的设置方法是类似的,隐藏权限和acl权限都有自己的设置方式,本节课的内容是后面课程的基石,大家要尽快熟悉,灵活应用。

    推荐阅读
  • 塔罗测试谁在默默的守护(平安夜你将会收到什么礼物呢)

    但是你有一对很好的父母,因为你的坚持和执着他们都看在眼里,所以他们就在平安夜把这个当成礼物送给你了。其实你很期待平安夜有人能给你送礼物,但是你自己是一个很小气的人,甚至还有一些自私,凡事都只考虑到自己,不会为他人着想。

  • 如何判断金牛男是否喜欢你

    用嘲讽来逗你开心如果金牛座真的喜欢你,他们会用嘲讽的语气来笑话你。耍脾气金牛座会用别扭的语气暗示你,他的情绪。金牛座这种人的脾气很臭,不高兴了不仅不会说,还会摆臭脸,让你莫名其妙,还故意找你茬,惹你生气,虽然这些表现很欠揍,只是说明金牛座对你的某些行为很不爽,也是吃醋的表现,要注意哦。

  • 国产比较虐心电视剧(请国产烂剧放过)

    最后导致车祸,双双入院治疗。P.S.护士错误佩戴口罩要知道,如果病人在医院失踪,家属是可以起诉医院的。医院的严格程度可见一斑。偷拍正在昏迷中的明星。然后请保安将她驱逐出病房,并且拨打报警电话。可现实中的医院人满为患,突发情况众多。镜头对准了云山医院的神经外科,记录了医护人员的工作日常。他们不仅跟随救护车抢救病人,还要观摩医院的大型急救手术和救治过程。为了还原医院的场景,剧组不惜下血本。

  • 46级考试成绩单(46级成绩按最新的来算)

    46级考试成绩单12月四六级成绩查询时间为:2月26号上午10点。根据英语四六级成绩查询系统规定,英语四六级成绩查询有效期为本次成绩公布至下次成绩查询开始前。(12月份参加考试的同学,次年2月下旬官网开通成绩查询后,这个成绩会保留到次年8月下旬,即次年6月考试成绩查询公布之前。比如说:中国工商银行北京分行2018年度校园招聘的外语要求,明确表明的必须具备的外语条件↓除了银行,还有公务员、国企……

  • 微波炉可以烤月饼吗(微波炉可以烤月饼吗要烤多少分钟)

    最近快到中秋节了,各大超市都已经开始售卖月饼了,也有很多人会自己在家里制作,但是有些人家里没有烤箱,那微波炉可以烤月饼吗?微波炉烤月饼用什么功能视情况而定。如果微波炉自带有“光波烧烤”功能的话,那么建议可以直接按下这个功能键来烤制月饼,这样操作起来比较简单方便。月饼在烤制的过程中裂开的原因有很多,比如馅料含水量太高、烘烤温度过高、烘烤时间过长等都有可能会导致月饼裂开。

  • 成都的火锅一条街(广州成都一顿火锅价差这么大)

    一直以为成都和重庆都是火锅之城,来到成都才发现,这个城市的空气里的没有重庆那么霸道的火锅气息。都是从成都走向全国的品牌,在成都两家店就是火锅界的麦当劳和肯德基,总是门对门而开。这顿火锅极大刷新了我对火锅价格的认知,一对夫妻或者情侣在成都放开吃也就人均70左右的消费,而在广州一顿品牌火锅绝对是人均上百了,旅行最大的收获就是感知各地差异啦夜已深,看着凌晨2点窗外的成都街景,真的感觉这里就是广州。

  • 女儿红是什么酒

    女儿红是中国传统名酒,传说古代时的父亲会在女儿落地时把女儿红装入酒坛中,埋入树下,然后在女儿出嫁那一天才会取出饮用。那么女儿红到底是一种什么酒呢?

  • 斗罗大陆手游怎么击败宁荣荣(斗罗大陆手游即将上线日本)

    在宣传的海报中,唐三占据主导地位,其余的小舞、戴沐白、朱竹清、马红俊、奥斯卡、宁荣荣以此围绕在唐三的身边。史莱克七怪形象大变样,配音阵容曝光在公布新形象的时候,唐三等人的配音角色也随之曝光,唐三的配音演员是樱井孝宏。奥斯卡是食物系武魂,战斗力比较弱,是辅助系武魂,是战斗时,不能缺少的魂师角色。小舞是《斗罗》唯一的女主,是《斗罗》的核心人物。三个女生中,朱竹清的变化是最小的。

  • 化学检验员职业资格证书有啥用(化学检验员可以干什么)

    最近很多小伙伴们在询问善恩教育有关化学检验员报考方面的问题。化学检验员是指使用仪器、设备、器具,检验、检测、化验、分析成品、半成品和原料、燃料、材料等样品化学性能、成分的人员。挪亚检测化学成分容量分析法,主要分为沉淀滴定分析、酸碱滴定分析、络合滴定分析、氧化还原滴定分析。漏斗端部不靠在烧杯内壁上,这也可能导致液滴飞溅。

  • 苹果醋的功效和服用方法(苹果醋已被证实的6大功效)

    敬请关注我的头条号《全能医师健康服务》!从6月份开始,全能医师将为大家推出专业性的医疗咨询服务:每周六早9点到晚9点,为10个粉丝解答医学问题,只要关注本头条号《全能医师健康服务》,并赞赏20元者,即可获得解答机会。图片来自百度图片。