Linux中权限的基本概念
-
Linux中有两种用户:超级用户(root),普通用户。
-
超级用户:只有一个超级用户,不受任何权限约束,可以在Linux下做任何事情。
-
普通用户:可以有许多个普通用户,在Linux下做符合权限的事。
-
超级用户命令行提示符"#“,普通用户命令行提示符”$"。
-
su
[用户名]:用来切换用户身份。su //以原有用户享有root的权限,需要root的密码 su - //直接以root的身份登录,需要root的密码 su linux_user //root登录其他身份不需要密码,其他用户登录需要linux_user的密码
-
-
访问文件时用户有三种身份
- 拥有者:(u)属于你的文件,刚建立文件的时候你就是拥有者。
- 所属组:(g)拥有者或给单独你的特别的权限。
- 其他:(o)其他用户。
- 基本权限:
- 读® :对文件而言,具有读取文件内容的权限;对目录而言,具有浏览该目录的权限。
- 写(w):对文件而言,具有修改文件内容的权限;对目录而言具有删除,移动目录内文件的权限。
- 执行(x):对文件而言,具有文件执行的权限;对目录而言,具有进入目录的权限。
- 文件类型
- d:文件夹
- -:普通文件
- l:软链接(类似快捷方式)
- b:块设备文件(键盘,光驱等)
- p:管道文件
- c:字符设备文件(例如屏幕等串口设备)
- s:套接口文件
-
文件权限值的表示方法
字符表示法
Linux表示 说明 Linux表示 说明 r– 只读 -w- 仅可写 –x 仅可执行 re- 可读可写 -wx 可写和可执行 r-x 可读可执行 rwx 可读可写可执行 — 无任何权限 8进制数值表示法
权限(读写执行) 八进制 二进制 r 4 100 w 2 010 x 1 001 rw 6 110 rx 5 101 wx 3 011 rwx 7 111 — 0 000 -
文件访问权限的相关设置方法
-
chmod
[参数] 权限 文件名:设置文件的访问权限-
-R:递归修改权限
-
+:向权限增加权限代号所表示的权限。
-
-:向权限增加权限代号所表示的权限。
-
=:向权限赋予权限代号所表示的权限。
-
用户符号:u(拥有者),g(所属组),o(其他),a(全部)。
-
chmod u+w test.txt chmod u+rwx test.txt chmod u=r-w test.txt chmod 777 test.txt
-
-
chown
[参数] 用户名 文件名:修改文件的拥有者-
chown user1 test.txt chown -R user1 dir
-
-
chgrp
[参数] 用户名组 文件名:修改文件的所属组-
chgrp user1 test.txt chown -R user1 dir
-
-
umask
:查看或修改文件掩码。文件夹默认权限=0666,目录默认掩码权限=0777。创建出来的文件权限是mask实际收到umask的影响,最终默认文件权限是:mask&~umask。-
umask //查看umask的值 umask 002 //设置umask的值
-
-
目录的权限
-
Linux目录权限的问题
- 如果用户具有目录的写权限,那么用户就可以删除目录文件中的目录文件,不管这个用户是否具有这个文件的写权限,这样并不好。假如你在这个目录下创建了一个目录,Linux中其他共享这个目录的用户就可以随便删掉这个目录了,因此Linux有了粘滞位。
-
粘滞位
- 当目录被设置为“粘滞位”(
chmod +t
文件名),则该目录下的文件只能由超级管理员删除,该目录所有者文件删除,该文件的所有者删除。
- 当目录被设置为“粘滞位”(
关于权限的总结
- 目录的可执行权限是表示你可否在目录下执行指令。
- 如果你没有x权限,则无法进入目录执行任何命令,甚至无法
cd
进入目录,即使目录任然有r权限和w权限。 - 如果目录具有x权限,但是没有r权限,则用户可以执行命令,可以
cd
进入目录里。但是由于没有目录的读权限所以在目录下,即使执行ls命令,但仍然没有权限读出目录下的文档。