0

0

Linux 系统权限解析:普通文件与目录的权限分类及表示方法

WBOY

WBOY

发布时间:2024-06-19 09:13:01

|

7108人浏览过

|

来源于ITcool

转载

linux系统拥有好多权限,虽然目的是为了用户安全服务,并且也加强了理解难度,这儿我依照文件类型总结一下Linux的权限

一、普通文件、目录

对linux系统上的普通文件、目录来说,有三种权限:rwx权限、隐藏属性权限和ACL权限

1.rwx权限(1)用数字表示rwx权限

r代表读权限;w代表写权限;x代表执行权限。

linux系统有三种身分:所有者(u)、所属组(g)和其他人(o)

linux系统用0表示权限关掉,用1表示权限开启,这么对于任意一个文件来说如何安装LINUX,其所有者权限的所有可能组合为8种,其中

只有读权限,表示为r--,二补码数为100,转化为十补码为4;

只有写权限,表示为-w-,二补码数为010,转化为十补码为2;

只有执行权限,表示为–x,二补码数为001,转化为十补码为1.

由此,我们得到了用十补码数字表示rwx权限的方式:

r用4表示,w用2表示,x用1表示。

(2)rwx权限对系统中文件、目录的影响

对文件来说,r权限代表可读,表示可查看文件内容,对应到命令上,就是可执行cat/more/less等查看内容的命令;w权限代表可写,表示可更改(写入)文件linux 文件授权给用户,对应到命令上,就是可执行vim文件编辑器;x代表执行权限,表示该文件可以放在系统中运行,一般我们的各类命令和脚本,都是要具有执行权限的。

对目录来说,r权限代表可读,表示可查看目录下的文件和目录名称(这儿可以把目录理解为记录文件属性信息的文件)linux 文件授权给用户,对应到命令上,就是可以执行ls;w权限代表可写,表示可以更改文件、目录名,对应到命令上,就是可以执行touch、mkdir、rmdir、rm等命令;x代表执行权限,表示可以运行这个目录,对应到命令上,就是可以用cd步入到该目录。

2.隐藏属性权限

linux 文件授权给用户_linux授权文件给用户_linux授予用户文件权限

linux系统存在一些隐藏属性,可保证文件安全

查看可用如下的命令:

lsattr -a

-a表示查看所有文件目录,要是只看目录linux版qq,可加-d选项。

若要对某个文件/目录添加或删掉隐藏属性权限,可用如下的命令:

chattr -a filename#删除权限
chattr +i filename#添加权限

其中i选项和a选项对文件和目录又有不同的影响:

对文件来说,假如有i隐藏属性,这么该文件就是一个只读文件,难以更改;假如有a隐藏属性,只能降低数据(echo重定向形式),不能更改数据(因而a隐藏属性适宜于日志)。

对目录来说,假如有i隐藏属性,只能更改目录下已有文件,不能完善新文件以及删掉已有文件(只读目录);假如有a隐藏属性,只能新建或更改文件,不能删掉、改名已有文件。

3.ACL权限

ACL=accesscontrollist英文为“访问控制列表”

作用:可对单一用户设置文件、目录的rwx权限。

形成缘由:出于安全考虑,linux系统下的文件、目录默认对其他人有较低权限,假如某个其他人身分想要查看他不具备权限的目录或文件,要么切换他的身分为所有者,要么让他以所有者的身分登入系统,而这两种做法都具有一定安全隐患,为此,为解决该问题,ACL权限形成。

设置ACL权限可用如下的命令格式:

setfacl -m u:user:rwx filename

-m选项用于设置ACL权限,user表示要修改权限的用户,rwx表示要赋于该用户的权限情况,filename表示要赋于ACL权限的文件或目录。

linux授权文件给用户_linux授予用户文件权限_linux 文件授权给用户

查看ACL权限可用如下的命令格式:

getfacl filename #在当前文件目录下

ACL权限优势:

我们可以用getfacl查看早已设置好ACL权限的文件或目录:

#省略输出…………
user::rwx #文件所有者权限
user:user:rwx #用户user对该文件的权限
group::rwx#文件所属组权限
other::---#文件其他人权限
省略输出…………

可以看见,用户user不属于所有者、所属组或其他人,而是单独为他设置了对该文件的rwx权限。这样在保证其他人难以查看、修改该文件的情况下,也可同时确保用户user更改、查看该文件,达到安全目的。

二、特殊文件——可执行文件

linux系统存在着好多可执行文件,比如各类命令、shell脚本等,这么对于个别只能由超级用户才可执行的命令怎么给普通用户执行呢?这就涉及到了SetUID和SetGID的概念。

1.SetUID权限

linux系统示例:/bin/passwd命令

可以查看一下该文件的权限情况

可以见到,在所有者执行权限的x位上弄成了s,这就表示某个可执行文件被赋于了SUID权限。

作用:普通用户也可用passwd命令更改密码(给用户某执行文件的所有者权限)。

运作过程:

普通用户使用passwduser,意图更改密码------passwd拥有SUID权限且user对passwd命令有x权限------user暂时拥有root权限,以所有者身分执行passwd-------root可把密码写入密码文件/etc/shadow-----更改完成,user身分恢复。

SetUID权限添加、删除命令:

chmod u+s filename #给文件/目录添加SUID权限
chmod u-s filename #给文件/目录删除SUID权限

2.SetGID权限

linux系统示例:/usr/bin/locate

可以见到,在所所属组执行权限的x位上弄成了s,这就表示某个可执行文件被赋于了SGID权限。

作用:普通用户也可用locate命令查询mlocate.db数据库(给用户某执行文件的所属组权限)。

运作过程:

普通用户使用locate,意图查询系统上的某文件------locate拥有SGID权限且user对locate命令有x权限------user暂时拥有slocate组权限,以所属组身分执行locate-------该组对mlocate.db数据库有r权限-----user可以查询------查询结束,user组身分恢复。

SetGID权限添加、删除命令:

chmod g+s filename #给文件/目录添加SGID权限
chmod g-s filename #给文件/目录删除SGID权限

3.StickyBIT权限

linux系统示例:/tmp

可以看见,该目录的其他人执行权限上的x位弄成了t,这就表示该目录具有BIT权限。

BIT权限特征:仅对目录有效;仅其他人可用。

linux 文件授权给用户_linux授予用户文件权限_linux授权文件给用户

作用:设置了BIT权限的目录,任何人都可以在该目录下创建、修改文件,但只有该文件的所有者或root用户才可删掉文件。(谁创建,谁删掉)

权限添加、删除命令:

chmod o+t filename #给文件/目录添加BIT权限
chmod o-t filename #给文件/目录删除BIT权限

4.umask权限

在命令行执行umask命令时,会听到4位权限数:

其中后三位就表示一个文件/目录的rwx默认权限,它限制了新创建的文件/目录的初始权限(文件644,目录755)

这儿还存在第一位上的0,这一点结合上述执行文件三种权限即可解释:

SetUID权限:以s表示,对应所有者,用十补码4表示(100);

SetGID权限:以s表示,对应所属组,用十补码2表示(010);

BIT权限:以t表示,对应其他人,用十补码1表示(001)。

这样,任何一个文件/目录的权限可表示如下:

rwxsrwxsrwxt

ugo

三、系统命令

尽管超级用户具备linux所有命令的执行权限,但一个多用户系统假如全都由root用户管理是不现实的,正常的管理方式是root用户把一些系统命令授权给普通用户,让其协助管理,这才符合多用户系统的管理思路。

操作对象:系统命令(与上述权限不同)

工具:

1.su:切换用户身分,赋于某用户所有系统命令权限。(有安全隐患)

在这里插入图片描述

使用方式:su-用户名(不加为root)

弊病:非root用户切换他人须要密码。

2.sudo:限制用户使用系统命令

授权形式:

vi /etc/sudoers
visudo #两种方式选一个即可

更改模板:

root ALL=(ALL)ALL
#用户主机名身份执行的命令 

赋于过程(以user为例):

如果root用户想要赋于普通用户user重启服务器权限

vi /etc/sudoers #在root下加一行即可
rootALL=(ALL) ALL
userALL=usr/sbin/reboot

sudo作用:把原本只能由root用户执行的命令赋于普通用户执行。

四、小结

关于linux系统的权限,主要分为三个部份:普通文件/目录、可执行文件和系统命令,每种权限的诞生都是为了解决相关的权限问题,所以要明白为何会有这些权限。

相关专题

更多
Sass和less的区别
Sass和less的区别

Sass和less的区别有语法差异、变量和混合器的定义方式、导入方式、运算符的支持、扩展性等。本专题为大家提供Sass和less相关的文章、下载、课程内容,供大家免费下载体验。

202

2023.10.12

vim保存退出命令
vim保存退出命令

vim是一个非常强大的文本编辑器,常用于Unix和Linux系统。它是从vi发展而来的,相比vi有许多改进和扩展。在vim中,保存并退出的命令是:wq"wq"这个命令是由两个部分组成的。其中,"w"表示写入文件,将所做的更改保存到磁盘;而"q"表示退出vim编辑器。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

266

2023.08.01

数据库三范式
数据库三范式

数据库三范式是一种设计规范,用于规范化关系型数据库中的数据结构,它通过消除冗余数据、提高数据库性能和数据一致性,提供了一种有效的数据库设计方法。本专题提供数据库三范式相关的文章、下载和课程。

352

2023.06.29

如何删除数据库
如何删除数据库

删除数据库是指在MySQL中完全移除一个数据库及其所包含的所有数据和结构,作用包括:1、释放存储空间;2、确保数据的安全性;3、提高数据库的整体性能,加速查询和操作的执行速度。尽管删除数据库具有一些好处,但在执行任何删除操作之前,务必谨慎操作,并备份重要的数据。删除数据库将永久性地删除所有相关数据和结构,无法回滚。

2076

2023.08.14

vb怎么连接数据库
vb怎么连接数据库

在VB中,连接数据库通常使用ADO(ActiveX 数据对象)或 DAO(Data Access Objects)这两个技术来实现:1、引入ADO库;2、创建ADO连接对象;3、配置连接字符串;4、打开连接;5、执行SQL语句;6、处理查询结果;7、关闭连接即可。

347

2023.08.31

MySQL恢复数据库
MySQL恢复数据库

MySQL恢复数据库的方法有使用物理备份恢复、使用逻辑备份恢复、使用二进制日志恢复和使用数据库复制进行恢复等。本专题为大家提供MySQL数据库相关的文章、下载、课程内容,供大家免费下载体验。

255

2023.09.05

vb中怎么连接access数据库
vb中怎么连接access数据库

vb中连接access数据库的步骤包括引用必要的命名空间、创建连接字符串、创建连接对象、打开连接、执行SQL语句和关闭连接。本专题为大家提供连接access数据库相关的文章、下载、课程内容,供大家免费下载体验。

324

2023.10.09

数据库对象名无效怎么解决
数据库对象名无效怎么解决

数据库对象名无效解决办法:1、检查使用的对象名是否正确,确保没有拼写错误;2、检查数据库中是否已存在具有相同名称的对象,如果是,请更改对象名为一个不同的名称,然后重新创建;3、确保在连接数据库时使用了正确的用户名、密码和数据库名称;4、尝试重启数据库服务,然后再次尝试创建或使用对象;5、尝试更新驱动程序,然后再次尝试创建或使用对象。

410

2023.10.16

菜鸟裹裹入口以及教程汇总
菜鸟裹裹入口以及教程汇总

本专题整合了菜鸟裹裹入口地址及教程分享,阅读专题下面的文章了解更多详细内容。

0

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.6万人学习

Git 教程
Git 教程

共21课时 | 2.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号