Linux文件权限详细解析

合集下载

理解Linux的文件权限和所有权

理解Linux的文件权限和所有权

理解Linux的文件权限和所有权Linux的文件权限和所有权是该操作系统中非常重要的概念之一。

理解这些概念对于使用Linux系统并进行相关开发工作至关重要。

本文将详细介绍Linux的文件权限和所有权,并说明它们的作用和使用方法。

一、文件权限的基本概念和作用在Linux系统中,文件权限决定了对文件的访问权限。

每个文件都有三种基本权限:读取权限(r)、写入权限(w)和执行权限(x)。

这些权限可以分别授予文件的所有者(owner)、群组(group)和其他用户(others)。

文件的读取权限允许用户查看文件内容,写入权限允许用户修改文件内容,执行权限允许用户执行文件作为程序。

通过合理设置文件权限,可以确保文件的安全性和使用性。

二、查看和修改文件权限的方法1. 查看文件权限:可以使用命令`ls -l`来查看当前目录下所有文件的权限信息。

示例如下:```-rwxr-xr-- 1 owner group 1024 Dec 10 09:00 filename```在上述输出中,`-rwxr-xr--`表示文件权限,接下来的`owner`表示文件的所有者,`group`表示文件所属的群组。

最后的`filename`是文件的名称。

2. 修改文件权限:使用命令`chmod`可以修改文件的权限。

该命令的语法如下:```chmod [选项] 模式文件```其中,`选项`用于指定修改权限的方式,`模式`用于指定需要修改的权限,`文件`表示需要修改权限的文件名。

例如,若要将文件`filename`的所有者去除写入权限,可以使用命令`chmod u-w filename`。

三、文件所有权的概念和作用除了权限之外,文件还具有所有者和所属群组。

所有者是指创建文件的用户,而所属群组是指该文件所属的用户组。

文件的所有者可以通过命令`chown`来改变,而所属群组可以通过命令`chgrp`来改变。

四、查看和修改文件所有权的方法1. 查看文件所有权:使用命令`ls -l`同样可以查看文件的所有权信息。

linux系统644、755、777权限详解

linux系统644、755、777权限详解

linux系统644、755、777权限详解在linux系统中644、755、777三种权限是⾮常重要的⼀些权限了,下⾯我来详细的介绍644、755、777三种权限的使⽤,希望对各位有帮助。

常⽤的⽂件权限:444 r--r--r--600 rw-------644 rw-r--r--666 rw-rw-rw-700 rwx------744 rwxr--r--755 rwxr-xr-x777 rwxrwxrwx从左⾄右,1-3位数字代表⽂件所有者的权限,4-6位数字代表同组⽤户的权限,7-9数字代表其他⽤户的权限。

⽽具体的权限是由数字来表⽰的,读取的权限等于4,⽤r表⽰;写⼊的权限等于2,⽤w表⽰;执⾏的权限等于1,⽤x表⽰;通过4、2、1的组合,得到以下⼏种权限:0(没有权限);4(读取权限);5(4+1 | 读取+执⾏);6(4+2 | 读取+写⼊);7(4+2+1 | 读取+写⼊+执⾏)以755为例:1-3位7等于4+2+1,rwx,所有者具有读取、写⼊、执⾏权限;4-6位5等于4+1+0,r-x,同组⽤户具有读取、执⾏权限但没有写⼊权限;7-9位5,同上,也是r-x,其他⽤户具有读取、执⾏权限但没有写⼊权限。

rwx权限数字解释chmod也可以⽤数字来表⽰权限如 chmod 777 file语法为:chmod abc file其中a,b,c各为⼀个数字,分别表⽰User、Group、及Other的权限。

r=4,w=2,x=1若要rwx属性则4+2+1=7;若要rw-属性则4+2=6;若要r-x属性则4+1=7。

范例:chmod a=rwx file和chmod 777 file效果相同chmod ug=rwx,o=x file和chmod 771 file效果相同若⽤chmod 4755 filename可使此程序具有root的权限。

linux下修改文件权限chmod命令详细解析

linux下修改文件权限chmod命令详细解析

linux下修改⽂件权限chmod命令详细解析使⽤ Linux 的chmod命令控制谁可以访问读写或运⾏⽬标⽂件。

在 Linux 中,谁可以对⽂件或⽬录做什么是通过⼀系列权限来控制的。

权限可以控制对⽂件或⽬录执⾏的操作(读写或执⾏)。

我们可以使⽤-l(长格式)选项来ls列出⽂件和⽬录的⽂件权限。

ls -l在每⼀⾏中,第⼀个字符标识列出条⽬类型。

如果它是破折号 ( -),则它是⼀个⽂件。

如果是字母d,则是⽬录。

接下来的九个字符代表三组权限的设置。

前三个字符显⽰拥有⽂件的⽤户的权限(⽤户权限)。

中间三个字符显⽰⽤户组成员的权限(组权限)。

最后三个字符显⽰前两个类别(其他权限)以外的任何⼈的权限。

每组权限中有三个字符。

字符是权限存在与否的指⽰符。

它们是破折号 ( -) 或字母。

如果字符是破折号,则表⽰未授予权限。

如果字符是⼀个r,w或者x,该权限已被授予。

字母代表:r:读取权限。

可以打开⽂件并查看其内容。

w:写权限。

该⽂件可以被编辑、修改和删除。

x:执⾏权限。

如果⽂件是脚本或程序,则可以运⾏(执⾏)。

例如:---意味着根本没有授予任何权限。

rwx表⽰已授予完全权限。

读取、写⼊和执⾏指⽰器都存在。

设置权限的语法要使⽤chmod设置权限,我们需要告诉它:who:我们为谁设置权限。

what:我们正在做出什么改变?我们是添加还是删除权限?which:我们设置了哪些权限?我们使⽤指标来表⽰这些值,并形成简短的“权限语句”,例如u+x,其中“u”表⽰“当前⽤户”(who),“+”表⽰添加(what),“x”表⽰执⾏权限(which) .我们可以使⽤的“who”值是:u:⽤户,表⽰⽂件的所有者。

g:组,表⽰⽂件所属组的成员。

o : 其他,意思是不受u和g权限管理的⼈。

a : All,意思是以上所有。

我们可以使⽤的“what”的值包括:–:减号。

删除权限。

+:加号。

授予权限。

该权限将添加到现有权限中。

如果您想拥有此权限并且仅设置此权限,请使⽤该=选项,如下所述。

Linux文件和目录的777、755、644权限解释

Linux文件和目录的777、755、644权限解释

Linux⽂件和⽬录的777、755、644权限解释Linux⽂件和⽬录的权限1.⽂件权限在linux系统中,⽂件或⽬录的权限可以分为3种:r:4 读w:2 写x:1 执⾏(运⾏)-:对应数值0数字 4 、2 和 1表⽰读、写、执⾏权限rwx = 4 + 2 + 1 = 7 (可读写运⾏)rw = 4 + 2 = 6 (可读写不可运⾏)rx = 4 +1 = 5 (可读可运⾏不可写)⽰例:最⾼权限777:(4+2+1) (4+2+1) (4+2+1)第⼀个7:表⽰当前⽂件的拥有者的权限,7=4+2+1 可读可写可执⾏权限第⼆个7:表⽰当前⽂件的所属组(同组⽤户)权限,7=4+2+1 可读可写可执⾏权限第三个7:表⽰当前⽂件的组外权限,7=4+2+1 可读可写可执⾏权限⽰例:755:(4+2+1) (4+1) (4+1)第⼀个7:表⽰当前⽂件的拥有者的权限,7=4+2+1 可读可写可执⾏权限第⼆个5:表⽰当前⽂件的所属组(同组⽤户)权限,5=4+1 可读可执⾏权限第三个5:表⽰当前⽂件的组外权限,5=4+1 可读可执⾏权限⽰例:644:(4+2) (4) (4)第⼀个6:表⽰当前⽂件的拥有者的权限,6=4+2 可读可写不可执⾏权限第⼆个4:表⽰当前⽂件的所属组(同组⽤户)权限,4=4 可读权限第三个4:表⽰当前⽂件的组外权限,4=4 可读权限2.查看⽂件的权限(ls -l 或 ls ll 或 ls -al)总共分为7⼤列: 第⼀列:⽂件类型,1-代表普通⽂件 d-代表⽬录 第⼆列:⽂件节点数(node) 第三列:表⽰⽂件拥有者root⽤户 第四列:表⽰⽂件所属组root⽤户组 第五列:显⽰⽂件⼤⼩,默认是字节byte,可以通过命令 ls -lh 更⼈性化地查看⽂件⼤⼩ 第六列:⽂件最后修改时间 第七咧:⽂件或⽬录的名称3.设置⽂件/⽬录的权限(ls -l 或 ls ll 或 ls -al)语法: chomd 755 ⽂件名。

Linux-权限管理(文件权限)

Linux-权限管理(文件权限)

Linux-权限管理(⽂件权限)Linux - 权限管理(⽂件权限)⼀:基本权限1.基本权限介绍基本权限类型类型全拼释义权限位r read可读4w write可写2x execute可执⾏1权限的归属归属字母属主u属组g其他⽤户o2.设置权限修改属主、属组# 修改⽂件:1.txt的属主为:darker 属组为:human[root@localhost ~]# chown darker.human 1.txt# 修改⽂件:1.txt的属主为:darker[root@localhost ~]# chown darker 1.txt# 修改⽂件:1.txt的属组为:human[root@localhost ~]# chown .human 1.txt# 递归修改⽬录:file1的属主为:darker 属组为:human[root@localhost ~]# chown -R darker.human file1修改u、g、o对应的权限# 加减法# 修改⽂件:1.txt的权限为:属主为u 属组为w[root@localhost ~]# chmod u+x,g-w 1.txt# 赋值法# 修改⽂件:1.txt的权限为:所有⽤户为rwx[root@localhost ~]# chmod a=rwx 1.txt# 修改⽂件:1.txt的权限为:-[root@localhost ~]# chmod a=- 1.txt# 修改⽂件:1.txt的权限为:属主属组为rw 其他⽤户为r[root@localhost ~]# chmod ug=rw,o=r 1.txt# 数字# 修改⽂件:1.txt的权限为:所有⽤户的权限为rwx[root@localhost ~]# chmod 7771.txt# 递归修改⽬录:file1的权限为:所有⽤户的权限为rwx[root@localhost ~]# chmod 777 file1注意:把某⼀个⾮属主⽤户添加到⽂件的属组⾥,他就拥有了该组的权限,⽽不再是其他⼈权限对⽂件/⽬录的意义⽂件:ls -l ⽂件名权限释义r可以cat读取⽂件内容w可以修改⽂件x 可以执⾏⽂件代码,如果该⽂件的代码是编译好的结果那么只有x权限即可执⾏但如果该⽂件的代码是⼀个解释型的脚本程序则需要配合r权限才可执⾏⽬录:ls -dl ⽂件名权限释义r可以ls浏览⽂件下的内容w可以在⽬录下创建新⽂件or⽬录x 可以执⾏⽬录下的程序,除了对⽬录有执⾏权限外,还要对程序⽂件有执⾏权限才⾏可以正常cd切换到⽬录下涉及到多层⽬录如/a/b/c,需要对每⼀级都有x权限才可以正常⾛到下⼀级对⽂件夹的操作(不操作⽂件内容),需要当前⽤户具备的权限对沿途所有⽂件夹有x权限对⽬标⽂件夹有r或w权限权限释义r可以浏览w可以创建、删除、移动⼦⽂件和⼦⽬录对⽂件的操作(操作⽂件内容),需要当前⽤户具备的权限对沿途所有⽂件夹有x权限对⽬标⽂件有r或w权限权限释义r可以读取⽂件内容w可以修改⽂件内容注意点:vim修改的原理是将原⽂件删掉,然后再将内容的内容覆盖写⼊了新⽂件,新⽂件名重命名为原⽂件名验证vim修改的原理# (root⽤户)切换到/usr/local⽬录[root@localhost local]# cd /usr/local# (root⽤户)递归创建test01/dir1⽬录[root@localhost local]# mkdir -p test01/dir1# (root⽤户)递归修改⽬录test01权限为733[root@localhost local]# chmod -R 733 test01# (root⽤户)在test01⽬录下创建1.txt并写⼊内容“123”[root@localhost local]# echo "123" > test01/1.txt# (root⽤户)查看1.txt的内容[root@localhost local]# cat test01/1.txt123# (root⽤户)查看test01⽬录下的⽂件1.txt的详情信息:其他⽤户只有(r)读的权限[root@localhost local]# ll test01/1.txt-rw-r--r--. 1 root root 4 Nov 2510:02 test01/1.txt# (root⽤户)查看test01⽬录下的⽂件1.txt的iNode信息[root@localhost local]# stat test01/1.txtFile: ‘test01/1.txt’Size: 4 Blocks: 8 IO Block: 4096 regular fileDevice: fd00h/64768d Inode: 23609 Links: 1Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)Context: unconfined_u:object_r:usr_t:s0Access: 2020-11-2510:02:58.471562017 -0500Modify: 2020-11-2510:02:58.471562017 -0500Change: 2020-11-2510:02:58.471562017 -0500Birth: -# 切换到其他⽤户/⽤其他⽤户登录PS C:\Users\Darker> ssh darker@192.168.50.101darker@192.168.50.101's password:[darker@localhost ~]$ whoamidarker# (普通⽤户)⽤vim打开/usr/local/test01⽬录下的1.txt[darker@localhost ~]$ vim /usr/local/test01/1.txt123~~~"/usr/local/test01/1.txt" [readonly] 1L, 4C 1,1 All # [readonly] 只读# 按i进⼊插⼊模式-- INSERT -- W10: Warning: Changing a readonly file# (普通⽤户)修改1.txt的内容,强制保存并退出456Esc:wq!# 回到原来的root⽤户的窗⼝# (root⽤户)查看1.txt的内容[root@localhost local]# cat test01/1.txt456# (root⽤户)查看test01⽬录下的⽂件1.txt的详情信息:属主和属主变了[root@localhost local]# ll test01/1.txt-rw-r--r--. 1 darker darker 4 Nov 2510:21 test01/1.txt# (root⽤户)查看test01⽬录下的⽂件1.txt的iNode信息[root@localhost local]# stat test01/1.txtFile: ‘test01/1.txt’Size: 4 Blocks: 8 IO Block: 4096 regular fileDevice: fd00h/64768d Inode: 23609 Links: 1Access: (0644/-rw-r--r--) Uid: ( 1000/ darker) Gid: ( 1000/ darker)Context: unconfined_u:object_r:usr_t:s0Access: 2020-11-2510:30:54.822530748 -0500Modify: 2020-11-2510:21:17.823541511 -0500Change: 2020-11-2510:21:17.824541511 -0500Birth: -结论vim修改⽂件时:会将原⽂件删除,⽣成新的⽂件,属主和主组会变成修改的那个⽤户和⽤户所在的组⼆:特殊权限权限权限位SUID4SGID2权限权限位SBIT1SUID1.疑问普通⽤户既不是root也不属于root组,因此它对/etc/shadow⽂件没有任何权限(全是---)# 查看/etc/shadow信息[darker@localhost ~]# ll /etc/shadow----------. 1 root root 970 Nov 2407:29 /etc/shadow但是:普通⽤户为何可以⽤passwd直接修改密码?并且修改的是/etc/shadow⽂件,如何实现的?[darker@localhost ~]$ ll `which passwd`-rwsr-xr-x. 1 root root 27832 Jun 102014 /usr/bin/passwd这⾥可以看到,本应为rwx的第三个x变成了s,这就是s权限2.s权限的特殊之处SUID权限仅对⼆进制可执⾏⽂件有效(对⽬录⽆效)如果执⾏者对于该⼆进制可执⾏⽂件具有x的权限,执⾏者将具有该⽂件的所有者的权限本权限仅在执⾏该⼆进制可执⾏⽂件的过程中有效3.权限设定的⽅法字母表⽰法chmod u+s 可执⾏⽂件 # 给属主添加s权限chmod u-s 可执⾏⽂件 # 删除属主的s权限数字表⽰法(第1位4表⽰SUID,后3位表⽰普通权限 rwx)chmod 4755可执⾏⽂件 # 添加SUID权限到⼆进制可执⾏⽂件chmod 0xxx ... # 可以删除⽂件的SUID(但是⽆法删除⽬录的SUID)4.实例# (root⽤户)查看which cat[root@localhost ~]# ll `which cat`-rwxr-xr-x. 1 root root 54048 Nov 202015 /usr/bin/cat# (普通⽤户)查看/etc/shadow:没有权限(普通⽤户虽然是r-x,但是⽆法直接查看)[darker@localhost local]$ cat /etc/shadowcat: /etc/shadow: Permission denied# (root⽤户)修改 which cat 权限[root@localhost ~]# chmod u+s `which cat` # 或者 chmod 4755 `which cat`#(root⽤户)再次查看which cat[root@localhost ~]# ll `which cat`-rwsr-xr-x. 1 root root 54048 Nov 202015 /usr/bin/cat# (普通⽤户)查看/etc/shadow:有权限了[darker@localhost local]$ cat /etc/shadowroot:$6$Jvw3z/jmU1ASO4P1$vpTJ5OGEtfBOmIpjyK55k87iQPHXCC3.kKOFW9jkyslqC2DMdN7SZdT/zYRfmQ4hBAQXG6CQ4kKdRQ8eFqChf.::0:99999:7::: bin:*:16659:0:99999:7:::daemon:*:16659:0:99999:7:::adm:*:16659:0:99999:7:::lp:*:16659:0:99999:7:::...5.上例的⼯作原理环境前提:Linux中有1个⼆进制程序:cat,属组属组都是rootLinux中有⼀个系统⽂件:/etc/shadow,属组属组是: root:root有⼀个普通⽤户:darker普通⽤户:darker 属于其他⽤户,对⼆进制程序:cat 有执⾏(x)的权限普通⽤户:darker 对系统⽂件:/etc/shadow 没有任何权限默认情况下:普通⽤户:darker 执⾏⼆进制程序:cat系统会创建1个:cat进程该进程的属主属组是该程序的发起者:darker,也就是: darker:darkercat进程访问系统⽂件:/etc/shadowcat进程的属主和属主:darker:darker /etc/shadow⽂件的属主和属主:root:root⼆者的属主属组不匹配,所以被拒绝访问了:Permission denied给⼆进制程序:cat 设置SUID之后:普通⽤户:darker 执⾏⼆进制程序:cat系统会创建1个:cat进程执⾏者对于该⼆进制可执⾏⽂件具有 x 的权限,执⾏者将拥有该⽂件的属组的权限该进程属主是程序的发起者:darker,属组是cat原来的:root,属主属组就是:darker:rootcat进程访问系统⽂件:/etc/shadowcat进程的属主和属主:root:darker /etc/shadow⽂件的属主和属主:root:root⼆者的属主匹配,可以正常访问SGID1.权限设定的⽅法字母表⽰法chmod g+s ⽂件/⽬录 # 给⽂件/⽬录的属组添加s权限chmod g-s ⽂件/⽬录 # 删除⽂件/⽬录的属组的s权限数字表⽰法(第1位2表⽰SGID,后3位表⽰普通权限 rwx)chmod 2755⽂件/⽬录 # 给⽂件/⽬录的属组添加s权限chmod 0755⽂件/⽬录 # 删除⽂件/⽬录的属组的s权限chmod 755⽂件/⽬录 # 同上2.⽂件权限位的表⽰[root@localhost ~]# ll 1.txt-rwxr-sr-x. 1 root root 3243 Nov 2515:411.txt3.SGID相关说明作⽤在⼆进制可执⾏⽂件上时:执⾏有SGID权限的程序时,该⽤户将继承该程序的属组权限作⽤在⽬录上时:该⽬录下所有⽤户新建的⽂件都会⾃动继承该⽬录的属组当⼀个⽤户对某⼀⽬录有写和执⾏权限时,该⽤户就可以在该⽬录下建⽴⽂件如果该⽬录同时⽤SGID修饰,则该⽤户在这个⽬录下建⽴的⽂件都是属于这个⽬录的属组4.实例# (root⽤户)切换到/usr/loca/⽬录并创建⽬录:test02[root@localhost ~]# cd /usr/local[root@localhost local]# mkdir test02# (root⽤户)查看⽬录:test02 的信息[root@localhost local]# ls -dl test02/drwxr-xr-x. 2 root root 6 Nov 2514:19 test02/# !测试(root⽤户)在⽬录:test02 下创建⽂件:1.txt 并查看该⽂件的信息[root@localhost local]# touch /usr/local/test02/1.txt[root@localhost local]# ll /usr/local/test02/1.txt-rw-r--r--. 1 root root 0 Nov 2514:19 /usr/local/test02/1.txt# !测试(普通⽤户)在⽬录:test02 下创建⽂件:2.txt 并查看该⽂件的信息[darker@localhost ~]$ touch /usr/local/test02/2.txt[darker@localhost ~]$ ll /usr/local/test02/2.txt-rw-rw-r--. 1 darker darker 0 Nov 2514:20 /usr/local/test02/2.txt# (root⽤户)修改⽬录:test02 的权限[root@localhost local]# chmod 2773 test02# (root⽤户)再次查看⽬录:test02 的信息[root@localhost local]# ls -dl test02/drwxr-sr-x. 2 root root 6 Nov 2514:20 test02/# !测试(root⽤户)在⽬录:test02 下创建⽂件:3.txt 并查看该⽂件的信息[root@localhost local]# touch /usr/local/test02/3.txt[root@localhost local]# ll /usr/local/test02/3.txt-rw-r--r--. 1 root root 0 Nov 2514:21 /usr/local/test02/3.txt# !测试(普通⽤户)在⽬录:test02 下创建⽂件:4.txt 并查看该⽂件的信息[darker@localhost ~]$ touch /usr/local/test02/4.txt[darker@localhost ~]$ ll /usr/local/test02/4.txt-rw-rw-r--. 1 darker root 0 Nov 2514:21 /usr/local/test02/4.txtSBITSBIT 是the restricted deletion flag or sticky bit的简称,有时也称为Sticky,粘滞位SBIT 与 SUID 和 SGID 的关系并不⼤1.权限设定的⽅法字母表⽰法chmod o+t ⽂件/⽬录 # 给⽂件/⽬录的其他⽤户设置Stickychmod o-t ⽂件/⽬录 # 删除⽂件/⽬录的其他⽤户的Sticky数字表⽰法(第1位1表⽰添加Sticky位,后3位表⽰普通权限 rwx)chmod 1755⽂件/⽬录 # 给⽂件/⽬录的其他⽤户设置Stickychmod 0755⽂件/⽬录 # 删除⽂件/⽬录的其他⽤户的Stickychmod 755⽂件/⽬录 # 同上2.⽂件权限位的表⽰⽂件other位有x权限,并且⽤t代替了,表⽰被设置了Sticky如果other位没有x权限,会显⽰为⼤写T,表⽰有故障(权限⽆效)[root@localhost local]# ls -dl test03drwxr-xr-t. 2 root root 18 Nov 2514:34 dir013.相关说明对于⼀个多⼈可写的⽬录,如果设置了sticky,则每个⽤户仅能删除和改名⾃⼰的⽂件/⽬录只能作⽤在⽬录上,普通⽂件设置⽆意义,⽽且会被Linux内核忽略⽤户在设置 Sticky 权限的⽬录下新建的⽬录不会⾃动继承Sticky权限4.实例# (root⽤户)切换到 /usr/loca/⽬录[root@localhost ~]# cd /usr/local# (root⽤户)递归创建test03⽬录及2个⼦⽬录dir1和dir2[root@localhost local]# mkdir -p test03/dir{1,2}# (root⽤户)创建2个⽤户:user01、user02[root@localhost local]# useradd user01[root@localhost local]# useradd user02# (root⽤户)分别设置dir1和dir2的属主属组为user01和user02[root@localhost local]# chown -R user01:user01 test03/dir1[root@localhost local]# chown -R user02:user02 test03/dir2# (root⽤户)查看⽬录:test03的信息[root@localhost local]# ls -dl test03drwxr-xr-x. 4 root root 28 Nov 2515:37 test03[root@localhost local]# ll test03total 0drwxr-xr-x. 2 user01 user01 6 Nov 2515:37 dir1drwxr-xr-x. 2 user02 user02 6 Nov 2515:37 dir2# (root⽤户)修改⽬录:test03 的权限[root@localhost local]# chmod 1777 test03# (root⽤户)查看⽬录:test03的信息[root@localhost local]# ls -dl test03drwxrwxrwt. 4 root root 28 Nov 2515:37 test03[root@localhost local]# ll test03total 0drwxr-xr-x. 2 user01 user01 6 Nov 2515:37 dir1drwxr-xr-x. 2 user02 user02 6 Nov 2515:37 dir2# 切换到普通⽤户:user01[root@localhost local]# su - user01# !测试(普通⽤户)切换到test03⽬录[user01@localhost ~]$ cd /usr/local/test03# !测试(普通⽤户)查看当前⽬录下的信息[user01@localhost test03]$ lltotal 0drwxr-xr-x. 2 user01 user01 6 Nov 2515:37 dir1drwxr-xr-x. 2 user02 user02 6 Nov 2515:37 dir2# !测试(普通⽤户)⽤户user01将dir1重命名为dir11[user01@localhost test03]$ mv dir1 dir11# !测试(普通⽤户)⽤户user01将dir2重命名为dir22[user01@localhost test03]$ mv dir2 dir22mv: cannot move ‘dir2’ to ‘dir22’: Operation not permitted# !测试(普通⽤户)⽤户user01在dir11⽬录中创建⽂件:1.txt[user01@localhost test03]$ touch dir11/1.txt# !测试(普通⽤户)⽤户user01在dir2⽬录中创建⽂件:2.txt[user01@localhost test03]$ touch dir2/2.txttouch: cannot touch ‘dir2/2.txt’: Permission denied5.注意点SBIT ⽬前只对⽬录有效,⽤来阻⽌⾮⽂件的所有者删除⽂件:⽐较常见的例⼦就是/tmp⽬录权限信息中最后⼀位t表⽰该⽬录被设置了 SBIT 权限SBIT 对⽬录的作⽤是:当⽤户在该⽬录下创建新⽂件或⽬录时,仅有⾃⼰和 root 才有权⼒删除,主要作⽤于⼀个共享的⽂件夹(⽬录)三:chattr引⾔你是否遇到过⽂件或⽬录具有可读写权限,但是使⽤root⽤户删除、修改时提⽰"Operation not permitted"的情况?可能是由chattr设置了⽂件的隐藏保护权限导致通过chattr命令修改⽂件或⽬录属性能够提⾼系统的安全性与chmod命令相⽐,chmod只是改变⽂件的读写、执⾏权限,更底层的属性控制是由chattr命令改变的。

linux4位权限分别代表意思

linux4位权限分别代表意思

linux4位权限分别代表意思接触linux⼀段时间了,有个权限问题让我⼀直郁闷。

⽹上也没找到(估计是关键字不对),就是这个0777,最前⾯的0是什么意思。

最近看到⼀本书(Linux与unix shell编程指南),终于找到答案了。

先说⼀下777什么意思吧,linux下⽂件权限分为所属⽤户权限、所属组权限和其他权限。

每⼀个⼜分为r(读)w(写)x(可执⾏)。

如果你在linux中运⾏ ls -l就会显⽰权限如:Java代码-rwxr-xr-x 1 root root 12 09-02 15:21 my_test.sh“-”表⽰⽂件类型不⽤管。

第⼀个rwx是所属⽤户的权限,表⽰所属⽤户(root)对本⽂件可读(r)可写(w)可执⾏(x)。

第⼆个”-rx“表⽰属于同⼀组的⽤户的权限可读(r)不可写(-)可执⾏(x)。

第三个表⽰其他⽤户的权限可读不可写可执⾏。

这些数字就分别对应针对不⽤⽤户的权限。

第⼀个7表⽰第⼀个rwx,当然第⼆个就表⽰第⼆个,第三个就表⽰第三个。

下⾯就说说7表⽰什么权限7换成2进制就是 111,这样就对了,正好对应rwx。

当然都知道1表⽰true,所以,7的权限就是rwx了,如果上⾯的my_test.sh改成777的话,ls -l 那就显⽰:-rwxrwxrwx 1 root root 12 09-02 15:21 my_test.sh反过来,你知道上⾯的my_test.sh 的权限⽤数字应该是什么呢,应该是 111101101 = 755下⾯说⼀下最前⾯的那个0是什么意思:0777前⾯的0原来是叫个suid和guid的东西。

suid意味着如果某个⽤户对属于⾃⼰的shell脚本设置了这种权限,那么其他⽤户在执⾏这⼀脚本时也会具有其属主的相应权限。

guid则表⽰执⾏相应脚本的⽤户将具有该⽂件所属⽤户组中⽤户的权限。

是不是不⼤明⽩呀,下⾯举个例⼦:-rwxr-xr-x 1 root root 12 09-02 15:21 my_test.sh上⾯的mysql_test.sh⽂件权限是所属⽤户(root)是7,如果设置了suid,那么其他任何⽤户的权限都是7,如果设置了guid,那么任何⽤户的权限都是5。

简述文件与文件夹的有效权限

简述文件与文件夹的有效权限

简述文件与文件夹的有效权限文件和文件夹的有效权限是指在操作系统中针对特定文件或文件夹所设定的权限控制,用于规定用户或用户组对文件或文件夹进行读取、写入和执行等操作的权限。

在Linux系统中,文件和文件夹的有效权限由三部分构成,分别是文件或文件夹的所有者权限、所属的组权限和其他用户权限。

这三部分权限分别用三个字符表示,包括r(读取权限)、w(写入权限)和x(执行权限)。

以下是对这三个权限的详细描述:1. 读取权限(r):读取权限允许用户查看文件或文件夹中的内容。

对于文件来说,读取权限表示用户可以打开并阅读文件的内容;对于文件夹来说,读取权限表示用户可以浏览文件夹中的文件列表。

2. 写入权限(w):写入权限允许用户修改文件或文件夹中的内容。

对于文件来说,写入权限表示用户可以修改文件的内容,包括新增、删除和编辑等操作;对于文件夹来说,写入权限表示用户可以在文件夹中创建、删除、重命名和移动文件。

3. 执行权限(x):执行权限允许用户执行文件或访问文件夹中的内容。

对于文件来说,执行权限表示用户可以运行该文件,例如执行可执行文件或脚本;对于文件夹来说,执行权限表示用户可以进入该文件夹并访问其中的文件。

另外,用户还可以设置特殊权限,用于增加一些特殊的功能或约束,如设置SUID权限,使得用户以文件所有者的身份执行文件。

特殊权限包括s、S、t和T等。

文件和文件夹的有效权限可以通过命令行工具chmod来修改。

chmod命令使用数字或符号的方式表示权限,其中使用数字方式表示的权限范围是0-7,分别代表了r、w、x权限的组合。

例如,权限为rwxr-xr--可以用数字方式表示为754。

文件和文件夹的有效权限设置需要对文件或文件夹进行分析,考虑到文件或文件夹的重要性、访问要求和安全性等因素。

在Linux系统中,权限设置主要遵循“最小权限原则”,即尽量给予最小权限以确保系统及文件的安全性。

常见的权限设置包括以下几种:1. 755(rwxr-xr-x):适用于可执行文件或脚本,权限允许文件所有者拥有读写执行权限,组用户和其他用户有读和执行权限。

Linux文件权限rwx简单了解

Linux文件权限rwx简单了解

Linux⽂件权限rwx简单了解Ⅰ了解Linux下的⽂件权限 如上图所⽰,ll命令详细展⽰当前⽬录下的⽂件或者⼦⽬录信息 红框标注的即为此⽂件或者⽬录的权限 【第⼀⾏⽂件10.c的权限以-开头,⽤来说明这是⼀个⽂件;第四⾏code⽬录的权限以字母d开头,⽤来标注code是⽬录】 关于⽂件权限,我们要先了解有那些⽤户可以操作⽂件。

可以操作⽂件或⽬录的,可以理解为3类:⽂件或⽬录的所属者、所属组、以及不同于前两者的其他⽤户 根据上述,⽂件或⽬录的权限也相应的分为3部分 如上图标注中的第⼀⾏:-rw-r--r-- ⾸先来解释rwx3个字母所代表的意义:r 代表可读、可访问;w 代表可写、可修改;x 代表可执⾏ ①第⼀部分rw-属于⽂件的所属者,代表所属者可以访问并修改,但不能执⾏ ②第⼆部分r--属于⽂件的所属组,代表这个⽤户组可以访问,但不能修改和执⾏ ③第三部分r--属于其他⽤户,代表其他⽤户仅可以访问此⽂件或⽬录,但不能进⾏修改和执⾏操作 ④没有权限的⽤-来表⽰Ⅱ修改⽂件或⽬录的权限 经过以上描述,应该对Linux的⽂件权限有个基本的认识或了解。

接下来就来了解根据不同场景需求来更改⽂件或⽬录的权限 ⼀个⽂件的权限可以⽤-rw-r--r--来表⽰,也可以⽤数字644来表⽰。

它们之间的转化可以这么表⽰:r⽤数字4表⽰,w⽤2表⽰,x⽤1表⽰ 那么-rw-r--r--的rw-就可以表⽰为6,r--就是4,连起来就是644 修改⽂件的权限我们可以使⽤命令chmod,如我们想让⽂件的所有者对⽂件有执⾏权限,可以⽤两种⽅式来实现 ①chmod u+x 10.c 执⾏命令之后得到的权限为rwxr--r-- 此时,10.c的所有者已经有了执⾏权限 ②chmod 744 10.c ⽤数字的⽅式来表⽰ 上述两种⽅式都达到了同样的效果。

同理:chmod u-x 10.c 表⽰去除⽂件所有者的执⾏权限 chmod g+x 10.c 赋予⽂件所属组的执⾏权限 chmod o+x 10.c 赋予其他⽤户对⽂件的执⾏权限 当然,上述需求也都可以⽤ chmod [数字] [⽂件名]的⽅式来实现 。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

当我们在目录中使用ll 或ls -l 指令时第一列会显示出目录下文件的权限权限的格式是这个样子的-rwxrwxrwx
我们分开来解释:
第一个- 表示文件的类型:-普通文件d目录文件l符号链接文件(软连接文件)c符设备文件b块设备文件p管道文件s socket文件
rwx代表的意思分别是:read可读write可写executive可执行;把rwx用二进制来表示,有权限就用1表示,没权限用0表示例如rw- =110 r--=100 r-w =101 依次类推,之后再转化为十进制:rw-=110=4+2+0=6 r-x=101=4+0+1=5 所以我们可以直接理解为r=4,w=2,x=1,用十进制便是文件权限:rwx=4+2+1=7 , r-x=4+1=5 举些例子:
644 = rw-r--r-- 755=rwx-r-xr-x 631=rw--wx--x
从前往后三组rwx代表的意思:user属主group属组other其它设置权限的方法:以文件file 原权限为644(rw-r--r--)为例chmod +x file 默认为添加属主的执行权限
chmod 755 file rwxr-xr-x
chmod u+x file rwxr--r-- 数组添加执行权限
chmod g=rwx file chmod g=674 file rw-rwxr-- 属组改为rwx权限chmod o-r file rw-r----- 减去其它用户的可读权限
这样子大家就明白了吧
我们创建的新文件权限为644 新目录权限为755 这是为什么呢?
大家看一下各权限可做的事情就明白了:
files directory
r: cat,more,less ls
w: vim creat files
x:script cd
那我们又是怎么限定创建文件的权限的呢?
linux里面,用一种umask的掩码似的东西限定新创建文件的权限,默认umask为0022(普通用户的umask通常为0002)
例子:我们创建一个文件:它的权限就是666-022=644
我们创建一个目录:它的权限就是777-022=755
暂时性更改umask:例子:umask=027
umask文件保存与/etc/bashrc中想要永久生效可以更改/etc/bashrc/umask文件
想要只对自己生效可以更改家目录下的.bash文件添加一行umask=nnn即可
下面我们重点介绍的是文件的特殊属性:
安全上下文:任何时刻用户靠进程操作计算机,进程能否访问一个文件取决于发起这个进程的用户对该文件所拥有的权限:若发起进程的用户与文件属主匹配,以该用户权限访问;否则,若发起进程的组与该文件数组匹配,以该组的权限进行访问;否则以
发起者权限访问。

这就叫做安全上下文
开始介绍3个特殊权限:suid sgid sticky
suid:通常用于可执行文件任何用户操作此权限文件使用该文件属主权限
sgid:通常用于目录任何用户操作此权限文件夹使用该文件夹属组权限
sticky:通常用于公共类型的目录对于此权限目录,任何用户可在里面创建文件,但是只允许更改或删除属于自己的文件
举例说明下他们的作用
suid:/etc/passwd文件拥有suid权限。

普通用户更改密码时,要运行passwd文件,passwd对/etc/shadow(存放密码的文件)文件进行操作更改密码。

要知道普通用户对shadow文件没有任何权限,所以普通用户执行的passwd程序不能更改shadow。

这时候就用到了suid权限,这个权限使用户运行的passwd命令使用的是passwd文件属主root的权限,拥有root权限的passwd命令有权限更改/etc/shadow文件,于是普通用户可以成功更改自己密码。

sticky:/tmp /var/tmp 目录对于任何人有任何权限,因为它是存放临时文件的地方,这种公共目录下,一个用户文件有被其他用户随意破坏的危险,sticky权限正好避免了这一危险
更改特殊权限方法:
chmod u+s filename 属主添加suid权限
chmod g+s filename 属组添加sgid权限
chmod o+t filename 目录添加scitky权限
suid sgid sticky 同样可用4 2 1 表示
例:chmod 4644 filename 表示u+s
rwS 表示权限有r w s
rws 表示的权限为r w x s
t权限同理
下面大家可以自己动手演示一下,我们最好用复杂一点的方法实现,练习一下权限操作。

提示:
mkdir -pv /test/share -p提示创建信心-v递归创建
chmod o+rx /test
groupadd penguin 创建组penguin
chgrp penguin /test/share 更改/test/share属组为penguin chmod g=rwx /test/share
useradd -G penguin gentoo
useradd -G penguin ubuntu 创建用户并添加到组penguin chmod g+s /test/share
登陆两个用户分别在/test/share目录中创建几个文件看是否能给删除
chmod o+t /test/share
再登陆两个用户分别在/test/share目录中创建几个文件看是否能
给删除
(如果以上操作不成功可能是selinux的作用,我们可以在前面执行setenforce0命令暂时关闭selinux再执行以下操作)。

相关文档
最新文档