linux文件系统的权限王国(一)

合集下载

linux文件访问权限(像rw-r--rw-是什么意思)

linux文件访问权限(像rw-r--rw-是什么意思)

linux⽂件访问权限(像rw-r--rw-是什么意思)Linux的⽂件访问权限分为读、写、执⾏三种
r:可读(4)
w:可写(2)对⽬录来说则可新建⽂件
x:可执⾏(1)对⽬录来说则可进⼊该⽬录
可⽤ ls -l 查看⽂件
像上图的-rw-r--rw- 其中的第⼀个字符表⽰的是⽂件类型(- 表⽰普通⽂件,d 表⽰⽬录⽂件,c : 为字符串设备,若路由器等设备b : 块设备,硬盘、光驱等)后⾯的九个字符就是表⽰的⽂件权限了,每三个字符为⼀组
第⼀组(rw-):表⽰⽂件所有者的权限,上图中的⽂件的所有者为root⽤户,具备可读可写
第⼆组(r--):⽂件所属组的权限,上图中的⽂件所属组也为root组,具备可读
第三组(rw-):其他⼈的权限(跟本⽂件⽆关的⼈),具备可读可写
其实root⽤户可操作所有⽤户的⽂件
像这⾥的图中的两个root,第⼀个表⽰⽂件所有者,第⼆个则是⽂件所属组。

IT讲武堂–Linux文件系统权限探讨

IT讲武堂–Linux文件系统权限探讨

访问控制列表(ACL)
• 为多用户或者组的文件和目录赋予访问权限rwx
• • • • • • mount -o acl /directory getfacl file |directory setfacl -m u:gandolf:rwx file|directory setfacl -m g:nazgul:rw file| directory setfacl -m d:u:frodo:re directory setfacl -x u:samwise file |directory
权限的优先顺序
• 如果UID匹配,就应用用户(user)权限 • 否则,如果GID匹配,就应用组群(group)权限 • 如果都不匹配,就应用其它(other)权限
权限类型
• 在显示权限时,使用了四种符号: • r:读取文件或者列举目录内容的权限
• w:写入文件或者在目录中创建、删除文件的权限
• x:执行程序或者转入目录、列举目录中的长内容列表的权限 • -:无权限(在r、w或x的位置上)
理解用户授权
• 授权用户zhangsan和lisi对/backup目录具有读写权限,是linux中最基本的 用户与权限管理,一般的做法是:把zhangsan和lisi用户加入到一个用户组 中,然后改变/backup目录的所属组为此用户组,再将所属组权限设置为 rw即可。 # groupadd admgroup # 添加用户组admgroup # gpasswd -a zhangsan admgroup # 将用户zhangsan加入用户组admgroup # gpasswd -a lisi admgroup # 将用户lisi加入用户组admgroup # grep admgroup /etc/group # 查看admgroup用户组的信息 admgroup:x:502:zhangsan,lisi # chgrp admgroup /backup # 改变/backup目录的所属组为admgroup # chmod g+w /backup # 给所属组添加w可写权限 # ls -ld /backup # 查看/backup目录详细信息 drwxrwxr-x 2 root admgroup 4096 May 20 08:19 /backup

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命令改变的。

Linux权限详解(chmod、600、644、666、700、711、755、777、4。。。

Linux权限详解(chmod、600、644、666、700、711、755、777、4。。。

Linux权限详解(chmod、600、644、666、700、711、755、777、4。

权限简介Linux系统上对⽂件的权限有着严格的控制,⽤于如果相对某个⽂件执⾏某种操作,必须具有对应的权限⽅可执⾏成功。

Linux下⽂件的权限类型⼀般包括读,写,执⾏。

对应字母为 r、w、x。

Linux下权限的粒度有拥有者、群组、其它组三种。

每个⽂件都可以针对三个粒度,设置不同的rwx(读写执⾏)权限。

通常情况下,⼀个⽂件只能归属于⼀个⽤户和组,如果其它的⽤户想有这个⽂件的权限,则可以将该⽤户加⼊具备权限的群组,⼀个⽤户可以同时归属于多个组。

Linux上通常使⽤chmod命令对⽂件的权限进⾏设置和更改。

⼀、快速⼊门更改⽂件权限(chmod命令)⼀般使⽤格式chmod [可选项] <mode> <file...>参数说明:[可选项]-c, --changes like verbose but report only when a change is made (若该档案权限确实已经更改,才显⽰其更改动作)-f, --silent, --quiet suppress most error messages (若该档案权限⽆法被更改也不要显⽰错误讯息)-v, --verbose output a diagnostic for every file processed(显⽰权限变更的详细资料)--no-preserve-root do not treat '/' specially (the default)--preserve-root fail to operate recursively on '/'--reference=RFILE use RFILE's mode instead of MODE values-R, --recursive change files and directories recursively (以递归的⽅式对⽬前⽬录下的所有档案与⼦⽬录进⾏相同的权限变更)--help 显⽰此帮助信息--version 显⽰版本信息[mode]权限设定字串,详细格式如下:[ugoa...][[+-=][rwxX]...][,...],其中[ugoa...]u 表⽰该档案的拥有者,g 表⽰与该档案的拥有者属于同⼀个群体(group)者,o 表⽰其他以外的⼈,a 表⽰所有(包含上⾯三者)。

【Linux】Linux文件权限问题,chmod修改文件权限不被允许

【Linux】Linux文件权限问题,chmod修改文件权限不被允许

【Linux】Linux⽂件权限问题,chmod修改⽂件权限不被允许Linux⽂件权限问题,chmod修改⽂件权限不被允许
问题:更改""的操作,不被允许。

原因:chattr⽂件被chattr命令设置过权限,可以防⽌关键⽂件被修改
chattr 改变⼀个Linux⽂件系统上的⽂件属性。

a:让⽂件或⽬录仅供附加⽤途。

b:不更新⽂件或⽬录的最后存取时间。

c:将⽂件或⽬录压缩后存放。

d:将⽂件或⽬录排除在倾倒操作之外。

i:不得任意更动⽂件或⽬录。

s:保密性删除⽂件或⽬录。

S:即时更新⽂件或⽬录。

u:预防意外删除。

查看当前⽬标⽂件权限
lsattr /etc/resolv.conf
为某⽂件增加不可修改权限
chattr +i /etc/resolv.conf
为某⽂件解除不可修改权限
chattr -i /etc/resolv.conf。

Linux文件权限

Linux文件权限

1.1.1Linux文件权限在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。

1.权限的表示方法使用ls -l或ll命令,可以列出文件和目录的详细信息,而文件的权限就包含在这些信息中。

使用以下命令查看当前工作目录中的文件:# ls -l执行完以上命令,将会显示如图3- 1所示的结果。

图3- 1 显示文件目录信息在上图中最左侧的一列显示文件属性。

文件属性共占用10个字符,由一个文件类型标识和3组权限属性组成,其构成如图3- 2所示。

文件拥有者对该文件拥有的权限与文件拥有者同组用户对文件拥有的权限其他用户对该文件拥有的权限图3- 2 Linux文件属性的构成文件权限是与用户账户和用户组紧密联系在一起的,在Linux系统中,可使用chmod命令来重新设置或修改文件或目录的权限,但只有文件或目录的拥有者或root用户才能有此更改权。

对于文件或目录,权限字符所代表的意义不同,解释如下:r(read):读取权限。

如果文件具有该权限,表示对应用户可读取文件的内容;如果目录具有该权限,表示对应用户可浏览目录。

w(write):写入权限。

如果文件具有该权限,表示对应用户可对文件进行新增、修改、删除内容操作;如果目录具有该权限,表示对应用户可删除、移动目录内的文件。

x(execute):执行权限。

如果文件具有该权限,表示对应用户可执行该文件(文件必须是可执行文件);如果目录具有该权限,表示对应用户可进入该目录。

-:若对应位置权限位为字符“-”,表示对应用户没有该位权限。

权限除了可用r、w、x来表示外,也可用一个3位的数字来表示,比如644,其百位上的数代表拥有者的权限,十位上的数代表拥有者所属的组中的用户的权限,个位上的数代表其他用户对该文件的权限。

这种采用数字来表示权限的方法,称为绝对权限表示法。

由于用户的权限是用rwx来表示的,没有的权限对应位置上用“-”表示,因此可用一个3位的二进制数来表示用户的权限,有权限的位置用1 表示,没有权限的位置用0表示,这样就会形成一个3位的二进制数编码,然后将该二进制数转换成对应的十进制数,这样就得到一个0~7的数,从而就可实现用十进制数来表示用户对文件的权限。

linux系统权限(基本权限)

linux系统权限(基本权限)

linux系统权限(基本权限)linux的系统权限:r-- 100 4-w- 010 2--x 001 1[root@localhost ~]# ll -d dirdrwxrwxrwx 2 root root 18 Nov 512:21dir[root@localhost ~]# ll -d dir/file-rw-r--r-- 1 root root 0 Nov 512:21dir/file1).权限描述/root/dir的权限是所属⽤户root读写执⾏,所属组root读执⾏,其他⽤户读执⾏/root/dir/file的权限是所属⽤户root读写,所属组root读,其他⽤户读2)判断使⽤者的所属chown [user].[group] [-R] filename[root@localhost ~]# chown oldboy dir/[root@localhost ~]# ll -d dir/drw-r----- 2 oldboy root 51 Nov 521:01dir/[root@localhost ~]# chown .dba dir/[root@localhost ~]# ll -d dir/drw-r----- 2 oldboy dba 51 Nov 521:01dir/[root@localhost ~]# chown root.root dir/[root@localhost ~]# ll -d dir/drw-r----- 2 root root 51 Nov 521:01dir/[root@localhost ~]# chown oldboy:dba dir/[root@localhost ~]# ll -d dir/drw-r----- 2 oldboy dba 51 Nov 521:01dir/3)修改权限第⼀种⽅式:chmod [ugoa] [+-=] [rwx] [-R] filename[root@localhost ~]# chmod777dir/[root@localhost ~]# ll -d dir/drwxrwxrwx 2 root root 18 Nov 512:21dir/[root@localhost ~]# chmod go-w dir/[root@localhost ~]# ll -d dir/drwxr-xr-x 2 root root 18 Nov 512:21dir/[root@localhost ~]# chmod g=rwx,o= dir/[root@localhost ~]# ll -d dir/drwxrwx--- 2 root root 18 Nov 512:21dir/[root@localhost ~]# chmod a=rwx dir/[root@localhost ~]# ll -d dir/drwxrwxrwx 2 root root 18 Nov 512:21dir/[root@localhost ~]# chmod -R 444dir/[root@localhost ~]# ll -d dir/ dir/filedr--r--r-- 2 root root 18 Nov 512:21dir/-r--r--r-- 1 root root 0 Nov 512:21dir/file[root@localhost ~]# chmod -R =wx dir/[root@localhost ~]# ll -d dir/d-wx--x--x 2 root root 18 Nov 512:21dir/[root@localhost ~]# ll -d dir/file--wx--x--x 1 root root 0 Nov 512:21dir/file第⼆种⽅式:chmod nnn filename第⼀个n:U第⼆个n:G第三个n:O所属⽤户rw,属组⽤户只读,其他⽤户⽆权限6 4 0[root@localhost ~]# ll -d dir/drw-r----- 2 root root 51 Nov 5 21:01 dir/常⽤⼏种组合默认⽬录:755默认⽂件:644⽬录:755 750 700⽂件:644 640 600linux系统基本权限autorunlinux系统特殊权限linux系统ACLlinux中的⽂件或⽬录和⽤户及⽤户组关联很⼤,linux这种每个⽂件或⽬录都有⼀组共9个基础权限位,每三个字符被分为⼀组,他们分别是属主权限位(占三个字符)、属组权限位(占三个字符)、其他⽤户权限位(占三个字符)。

鸟哥笔记-专题一:Linux文件的权限rwx、特殊权限sst、隐藏权限ia

鸟哥笔记-专题一:Linux文件的权限rwx、特殊权限sst、隐藏权限ia

鸟哥笔记-专题⼀:Linux⽂件的权限rwx、特殊权限sst、隐藏权限ia鸟哥笔记-专题⼀:Linux⽂件的权限rwx、特殊权限sst、隐藏权限ia==========================================================================================⽬录:==========================================================================================正⽂:⼀、Linux⽂件和⽬录的权限1、可读可⾏可执⾏(r,w,x),⽬录⽂件和链接(d,-,l)Linux⽂件权限的内容我们可以知道⼀个⽂件有若⼲个属性,包括读写执⾏(r, w,x)等基本权限,及是否为⽬录(d)与⽂件(-)或者是链接⽂件(l)等等的属性!形如:drwxrwxrwx 777r—权重4w—权重2x—权重17=4+2+1,即为有rwx权限。

2、要修改属性的⽅法(chmod,chown,chgrp)修改权限chmod 770 1.txtchmod u+w 1.txt修改拥有者、组chown lisi.myweb 1.txt只修改所属组可以⽤chgrp myweb 1.txt⼩结:chmod:改变⽂件的权限,SUID,SGID,SBIT等等的特性。

chown:改变⽂件拥有者。

chgrp:改变⽂件所属群组。

3、默认权限(umask)umask 就是指定 “⽬前使⽤者在创建⽂件或⽬录时候的权限默认值”,那么如何得知或设置 umask 呢?(1)得知默认权限umask的值:[root@study ~]# umask0022 # 与⼀般权限有关的是后⾯三个数字![root@study ~]# umask -Su=rwx,g=rx,o=rx如果以上⾯的例⼦来说明的话,因为 umask 为 022 ,所以 user 并没有被拿掉任何权限,不过 group 与 others 的权限被拿掉了 2 (也就是w 这个权限),那么当使⽤者:创建⽂件时:(-rw-rw-rw-) - (-----w--w-) ==> -rw-r--r--创建⽬录时:(drwxrwxrwx) - (d----w--w-) ==> drwxr-xr-xroot⽤户的umask默认值为022,普通⽤户的umask默认值为002。

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

作者:池建强
在这个系列中和⼤大家聊聊 Linux 的⽂文件、⽤用户、⽤用户组、⽂文件系统的权限等内容,其中很多细节也是我使⽤用了很⻓长时间 Linux 后才真正掌握,希望⼤大家不⽤用那么久。

为什么是 Linux ?我觉得写技术的东⻄西还是相对严谨⼀一些好,虽然Unix 、Linux 、OS X ⼀一脉相承,但在具体命令上还是会有些差异,这个系列⽂文章⾥里所有的命令和显⽰示结果都是在 Linux 上进⾏行的,⼤大家可以对照在 Mac 上试试,当然最后也会讲⼀一点 OS X 的内容,否则怎么叫 MacTalk 呢?
在开始讲 Linux ⺩王国的⾂臣民之前,先介绍⼀一下⺩王国中最⽜牛的主:root ,这货不翻译为「根」,也不叫「管理员」,⽽而是被尊称为超级Linux ⽂文件系统的权限⺩王国(⼀一)
⽤用户,是不是觉得⾼高端霸⽓气?超级⼆二字绝不是恭维之词,从 Linux ⺩王国诞⽣生之初,root 就存在了,他会⼀一直霸占着超级⽤用户的⾓角⾊色并世世代代存在下去,没有禅让,没有民选,没有换位,所有的⽤用户都⾃自他⽽而起。

如果你以为 root 会像上帝创造亚当和夏娃那样,让这⼆二位开开⼼心⼼心⽣生娃去了,那你就太Naive了。

Linux 系统中的所有⽤用户要么由root 创建,要么借⽤用 root 的权限创建,等级极为森严,总之没有 root 的允许,想搞出⼀一位新⽤用户绝⽆无可能。

看到这你们是不是都开始觉得计划⽣生育政策好啦?
root 不仅能够管理⽤用户,还能管理⽂文件系统、进程、设备、⺴⽹网络、通信、协议等等,总之他就像站在神⼭山上的神祗,俯视着芸芸众⽣生,看着数据信息在软件和硬件之间川流不息,时不时的做⼀一些计划性干预,如果有⼈人想超越系统的规则,他就能让你消失的像从来没有存在过。

所以那些成天叫嚣被蹂躏被代表的民众,看看 root,⼤大家⼼心理就会舒服⼀一些。

以 root 开篇,下⾯面我们聊聊 Linux 的⽂文件系统和索引节点。

Linux 的⽂文件系统本⾝身是⽐比较复杂的,仅 ext2、ext3 和 ext4 就得解释好⼏几天,本⽂文的重点不在于此,所以简单介绍⼀一下。

⽂文件系统主要是⽤用来保存⽂文件和相关结构的,让⽂文件存储更安全、更快、更容易检索、能⽀支持更⼤大的物理介质等等。

在 Linux 系统中,每个磁盘分区都可以看做⼀一个⽂文件系统,每个系统都有⾃自⼰己的⺫⽬目录结构,Linux 会把这些分区按照⼀一定的⽅方式组织成统⼀一的⺫⽬目录结构,⽅方便⽤用户访问。

但是每个分区上的⽂文件系统都是独⽴立的,可以采⽤用不容的⽂文件格式,就像⼀一国两制⼀一样,虽然统⼀一,但是⾃自治。

那么如何查看⽂文件系统的格式呢?可以使⽤用 df -T -h 命令,T 表⽰示打印⽂文件格式,h 表⽰示⽤用G 或 M 来显⽰示⽂文件⼤大⼩小,如下:
➜ /home/chjq >df -T -h
⽂文件系统类型容量已⽤用可⽤用已⽤用%% 挂载点
/dev/mapper/VolGroup-lv_root ext4 31G 3.1G 26G 11% /
tmpfs tmpfs 1011M 88K 1011M 1% /dev/shm
/dev/sda1 ext4 485M 29M 431M 7% /boot
我们可以看到⽂文件系统格式是 ext4,⺫⽬目前⾼高版本的 Linux 基本都开始采⽤用 ext4 ⽂文件格式了,具体来说就是 Linux kernel ⾃自 2.6.28 开始正式⽀支持新的⽂文件系统 ext4!(使⽤用 cat /etc/fstab 可以查看⽂文件系统的详细信息)。

有了⽂文件系统,如何管理⽂文件呢,这就引出了索引节点的概念,这货叫做 inode,每个⽂文件都有⼀一个 inode,就像我们每个⼈人都有⾝身份证号⼀一样,为什么要有⾝身份证号?说⽩白了就是为了管理咱们的。

但⾝身份证号对⼈人来说不是必须的,没⾝身份证⼀一样活,对吧,只要不那么彪悍别遇到城管。

但 inode 是每个⽂文件与⽣生俱来的,⼀一创建就有了,它记录了⽂文件的元信息,⽐比如⽂文件⼤大⼩小、创建者、时间戳、权限、连接数等内容。

所以在 Linux/Unix 中,⽂文件名称只是⽂文件的⼀一个属性,叫别名也好叫绰号也罢,仅为了⽅方便⽤用户记忆和使⽤用,但系统内部并不需要⽤用⽂文件名来定为⽂文件位置,这样处理最直观的好处就是,你可以对正在使⽤用的⽂文件改名,换⺫⽬目录,甚⾄至放到废纸篓,都不会影响当前⽂文件的使
⽤用,这在 Windows ⾥里是⽆无法想象的。

⽐比如你打开个 Word ⽂文件,然后对其进⾏行重命名操作,Windows会告诉你⻔门都没有,关闭⽂文件先!但在 Mac ⾥里就毫⽆无压⼒力,因为 Mac 的操作系统同样采⽤用了 inode 的设计。

总之,Linux/Unix的⽂文件系统可以⾮非常灵活的基于 inode 来管理⽂文件⺩王国⾥里的⾂臣民,如何查看 inode 或操作 inode 呢,且听下回分解!。

相关文档
最新文档