Linux下权限的设定及管理

Linux下权限的设定及管理

1 基本文件属性

ls -l filename #文件属性的查看方式 
ls –ld directory # 目录属性的查看方式 

在这里插入图片描述

字段对于文件属性字段的理解对于目录属性字段的理解
1类型类型
2文件权限目录权限
3SELinux ContextSELinux Context
4文件硬链接个数目录中子目录的个数
5文件拥有者文件拥有者
6文件拥有组文件拥有组
7文件大小目录中自文件或子目录元数据大小
8文件最后一次被修改的时间目录中的内容最后一次被修改的时间
9文件名称目录名称
类型

当为[ d ]则是目录
当为[ - ]则是文件;
若是[ l ]则表示为链接文档(link file);
若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

每个文件的属性由左边第一部分的10个字符来确定(如下图)。
在这里插入图片描述
其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。

2 修改文件属性

用户和用户组
chown 和 chgrp

Linux 是个多用户多任务的系统 , 常常会有多人同时使用同一主机来进行工 作 , 为了考虑每个人的隐私权以及每个人喜好的工作环境, 对用户进行分类
更改文件拥有者及拥有组的方法

文件拥有者及拥有组只有超级用户root可以修改
更改方式如下:

命令作用
chown 用户名 文件更改文件拥有者
chgrp 组名称 文件更改文件拥有组
chown –R 用户名 目录处理指定目录以及其子目录下的所有文件
chgrp –R 组名称 目录将指定目录下的所有文件及子目录一并处理。
chown 用户名 : 组名称 文件 / 目录同时更改文件/目录拥有者/组

在这里插入图片描述

修改文件权限
chmod

Linux文件属性有两种设置方法,一种是数字,一种是符号。

Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限。

  • 数字方式
    文件的权限字符为:『-rwxrwxrwx』, 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:

r:4 w:2 x:1

每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx—] 分数则是:

owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= --- = 0+0+0 = 0

而变更权限的命令格式是:

chmod [-R] ugo 文件/目录
  • 字符方式
    还有一个改变权限的方法,从之前的介绍中我们可以发现,基本上就九个权限分别是:

(1)user
(2)group
(3)others

那么我们就可以使用 u, g, o 来代表三种身份的权限!

此外, a 则代表 all,即全部的身份。读写的权限可以写成 r, w, x,也就是可以使用下表的方式来看:

u+(加入)r
u
chmodg-(除去)W文件或目录
o
a=(设定)X

如果我们需要将文件权限设置为 -rwxr-xr-- ,可以使用 chmod u=rwx,g=rx,o=r 文件名 来设定:
在这里插入图片描述

  • 模板方式
    依照文件模板复制文件权限,格式如下:
chmod --reference=模板文件 目标文件 

在这里插入图片描述

  • 使用cp命令复制文件及属性
cp -p file1 file2

1在这里插入图片描述

系统预留权限

系统为了保护正常工作往往在建立文件和目录时已经预留了权限,比如:
在这里插入图片描述

  • 查看系统预留权限
    在这里插入图片描述
    很明显 777-022=755 但是文件是 777-022-111=644

  • 更改系统预留权限
    只需要 umask加所需权限即可,但是只在当前shell有用
    在这里插入图片描述

  • 永久更改系统预留权限
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

特殊权限SUID,SGID,SBIT

linux系统基本权限位为9位权限,但还有额外3位权限位,共12位权限:

suids(x)S4用户对应的权限位(用户对应的3位上)
sgids(x)S2用户对应的权限位(用户组对应的3位上)
stickyt(x)T1其他用户对应的权限位
SUID

suid是针对命令和二进制程序的
用户或属主对应的前三位权限的x位上如果有s就表示suid权限
当x位上没有小写x执行权限的时候,suid的权限显示的就是大S
suid的作用是让普通用户可以以root(或其他)的用户角色运行只有root(或其他)账号才能运行的程序或命令,或程序命令对应本来没有权限操作的文件等。
以cat为例:
在这里插入图片描述
原本没有权限的文件现在可以打开了
在这里插入图片描述
suid和su及sudo的区别:suid为某一个命令设置特殊权限(使用者为所有人)

SGID

sgid是针对用户组权限位的
对于文件来说,sgid的功能如下:
sgid仅对二进制程序有效
二进制命令或程序需要有可执行权限x
执行命令的任意用户可以获得该命令程序执行期间所属组的权限
对于目录来说,sgid的功能如下:
linux里默认情况所以用户创建文件,默认用户和组都是自身
sgid可以让用户在此目录下创建的文件和目录具有和此目录相同的用户组设置

SBIT

粘滞位,通常对目录而言。通常对于全局可写目录(other也可写)来说,让该目录具有sticky后,删除只对属于自己的文件有效(但是仍能编辑修改别人的文件,除了root的)。不能根据安全上下文获取对别人的文件的写权限。
在这里插入图片描述
别人的文件 仍然可以被其他人删
设定SBIT位
在这里插入图片描述
保护了文件不被除文件拥有者和root用户的用户删除

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值