Linux的文件权限

在Linux系统中,一切皆文件

用户、用户组、其他人

●文件所有者

●Linux是一个多用户,多任务的系统,因此通常会有很多人同时使用一台Linux的主机进行工作,为了保护每一个人的隐私权以及每个人喜欢的工作环境,文件所有者就显得异常重要了。
●例如你住在一个小区里,你对自己的家拥有所有权,可以任意处置自己家里的东西,而别人要来你的家里做客,就需要经过你的授权。

●用户组

●用户组就是将多个用户归为一个小组,该小组对某文件可以有特定权限,则该组中的成员就对该文件有同样的权限,但小组中每个用户又是一个独立的用户。
●例如在一个家里有张一、张二、张三,而这个家是登记在张一名下的,三个人都有自己的房间,并且共同拥有一个客厅。“张一家”就是所谓的“用户组”,“张一”“张二”“张三”就是分别三个“用户”,“张一”“张二”“张三”可以自由进入客厅,但是不属于“张一家”的人就不可以随便进入“张一家”的客厅。

●root用户

●可以将root用户理解为上帝用户,该用户拥有一切权限,可以做自己想做的一切事情。所以使用root用户登录时一定要谨慎。

●Linux用户身份与用户组记录的文件

在Linux系统中,默认情况下所有的系统上的账号、一般身份用户和root用户的相关信息都会记录在/etc/passwd这个文件内,个人密码则会记录在/etc/shaow这个文件下。此外,Linux所有组名都记录在/etc/group文件内。

文件权限的查看与更改

通过命令来查看文件的属性:

[ahao@localhost~]$ ls -al
total 68
drwxr-xr-x   1    ahao   ahao   512   Sep 16 11:49 .
drwxr-xr-x   1    root   root   512   Aug 12 22:03 ..
-rw-------   1    ahao   ahao 17437   Sep 16 11:49 .bash_history
-rw-r--r--   1    ahao   ahao   220   Aug 12 22:03 .bash_logout
-rw-r--r--   1    ahao   ahao  3771   Aug 12 22:03 .bashrc
drwx------   1    ahao   ahao   512   Aug 21 22:38 .cache
-rw-rw-r--   1    ahao   ahao    53   Aug 12 23:01 .gitconfig
-rw-r--r--   1    ahao   ahao   120   Sep 13 16:22 .indexer_files
drwxr-xr-x   1    ahao   ahao   512   Sep 12 23:00 .indexer_files_tags
drwx------   1    ahao   ahao   512   Aug 21 22:40 .local
-rw-r--r--   1    ahao   ahao   807   Aug 12 22:03 .profile
drwx------   1    ahao   ahao   512   Aug 12 23:00 .ssh
-rw-r--r--   1    ahao   ahao     0   Aug 12 22:03 .sudo_as_admin_successful
drwxrwxr-x   1    ahao   ahao   512   Sep 12 22:11 .vim
-rw-------   1    ahao   ahao 28763   Sep 15 20:59 .viminfo
-rw-rw-r--   1    ahao   ahao  5764   Sep 13 19:33 .vimrc
drwxrwxr-x   1    ahao   ahao   512   Aug 12 23:00 Linux_code
drwxrwxr-x   1    ahao   ahao   512   Sep 14 12:04 data
drwxrwxr-x   1    ahao   ahao   512   Sep 14 12:43 tmp
[   权限  ][连接][所有者][用户组][size][  修改日期  ][文件名]

[1.]第一列代表该文件的类型与权限

这里写图片描述

文件类型

●**[d]:目录**
●**[-]:普通文件**
●**[l]:连接文件(linkfile)**
●**[b]:表示设备文件里面的可供存储的接口设备**
●**[c]:表示设备文件里面的串行端口,例如键盘、鼠标(一次性读取设备)**

文件权限

在文件类型之后的字符中,以三个为一组,且均为“rwx”的三个参数组合。其中[r]代表可读(read),[w]代表可写(write),[x]代表可执行(execute)。这三个权限的位置不会改变,如果没有权限,对应位置就会出现[-]代替
第一组为“文件所有者权限”
第二组为“同用户组的权限”
第三组为“其他非本用户组的权限”

[2.]第二列表示有多少个文件名连接到此节点(i-node)

每一个文件都会将它的权限与属性记录到文件系统的i-node中,不过我们使用的目录树却是用文件名来记录,因此每一个文件名都会连接到一个i-node。

[3.]第三列表示该文件/目录的所有者账号

[4.]第四列表示该文件/目录的所属用户组

[5.]第五列表示这个文件/目录的容量大小,默认单位为B

[6.]第六列表示这个文件/目录的创建日期/最近修改日期

如果想要显示完整的时间格式,可以使用"ls -l --full-time"

[7.]第七列为该文件的文件名

如何改变文件属性与权限

chmod:改变文件权限
chgrp:改变文件所属用户组
chown:改变文件所有者

改变权限:chmod

改变文件权限有两种方式,分别可以使用数字或者符号进行权限的修改。

通过数字改变文件权限

Linux文件的基本权限有9个,分别是own、group、others三种身份各有自己的read、write、execute权限。文件的权限字符为"-rwxrwxrwx",这九个权限是三个三个为一组的。我们可以用二进制数字来代表各个权限是否存在,存在即为1,不存在即为0。
●**[r–]:可以用二进制数字100来替代,八进制即为4**
●**[-w-]:可以用二进制数字010来替代,八进制即为2**
●**[–x]:可以用二进制数字001来替代,八进制即为1**
每种身份[own、group、others]各自的三个权限[r、w、x]分数是需要累加的,例如:
owner=rwx=4+2+1=7
group=rwx=4+2+1=7
others=—=0+0+0=0
所以当我们需要给一个文件改变权限为"-rwxrwx- - -“时,经过计算”-rwxrwx- - -"的权限数字为770,就可以通过chmod [-R] 770 文件名[-R]为进行递归的持续更改,即连同目录下的所有文件的权限也会被更改

通过符号改变文件权限

●方法如下表:
这里写图片描述

目录与文件的权限意义

权限对文件的意义

r(read):可读取该文件的内容,如读取文本文件的文字内容等
w(wirte):可以编辑、新增或修改文件的内容(不包含删除该文件)
x(execute):该文件具有可以被系统执行的权限

权限对目录的意义

r(read contents in directory):表示具有读取目录结构列表的权限,即表明可以读取目录中的文件名
w(modify contents of directory):表示具有更改该目录结构列表的权限,即:创建新的文件或目录、删除已经存在的文件或目录(不论该文件的权限为何)、将已经存在的文件或目录进行重命名、转移该目录内的文件或目录位置
x(access directory):表示用户是否能进入该目录成为工作目录的用途,所谓工作目录就是当前所在的目录目录不可以被执行

文件的特殊权限:SUID,SGID,SBIT

●SetUID

当s该标志出现在文件所有者的x权限上时,就被称为Set UID,简称为SUID的特殊权限。
功能:
SUID权限仅对二进制程序(binary program)有效
执行者对该程序需要具有x的可执行权限
本权限仅在执行过程中(run-time)有效
执行者将具有该程序所有者(owner)的权限

●SetGID

与SUID不同的是,SGID可以针对文件或目录来设置
如果是对文件来说,SGID有以下功能:
SGID对二进制程序有效
程序执行者对该程序来说,需要具有x权限
执行者在执行的过程中将会获得该程序用户组的支持
当一个目录设置SGID权限之后,有以下功能:
用户若对此目录具有r与x的权限时,该用户能进入此目录
用户在此目录下的有效用户组(effective group)将会变成该目录的用户组
若用户在此目录下具有w权限(可以新建文件),则用户所创建的新文件的用户组与此目录的用户组相同

●Sticky Bit

Sticky Bit(SBIT)权限只对目录有效。如果一个目录具有此权限,则该目录有如下功能:
当用户对此目录具有我w,x权限,即具有写入的权限时:当用户在该目录下创建文件或目录时,仅有文件/目录的创建者/root才有权力删除该文件

●SUID,SGID,SBIT权限设置

数字方法:
SUID:4
SGID:2
SBIT:1
数字方法设置普通权限的方法为“三个数字”的组合,在这三个数字之前添加一个数字,该数字就代表这几个特殊权限
SUID不用在目录上,SBIT不用在文件上
在设置特殊权限的时候,我发现特殊权限有时表示为小写s/t,有时候为大写S/T,那么小写s/t与大写S/T有什么区别呢?
当owner的x权限位上显示为大写S时,表示该文件的owner不具有x(执行)权限
当owner的x权限位上显示为小写s时,表示该文件的owner具有x(执行)权限
当group的x权限位上显示为大写S时,表示该文件的group不具有x(执行)权限
当group的x权限位上显示为小写s时,表示该文件的group具有x(执行)权限
当一个目录文件的others的x权限位显示为大写T时,表示该目录文件的others不具有x权限
当一个目录文件的others的x权限位显示为小写t时,表示该目录文件的others具有x权限

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值