linux的文件权限颇为复杂,简单地读下资料是很难弄明白的,非得实践多次才能完全整明白。以前我是对权限不太重视,不管在哪,都是一个root通行天下。现在有多人协作,以及安全性方面的考虑,需要适当地避免root而使用普通用户的角色。
文件权限是个系统工程,对于linux来说“一切皆文件”。,要梳理这方面的知识,也确实花了近两天的时间。整理和测试后,归纳如下:
ll 查看当前所有目录的权限
ll -d /home/test 查看对test目录的权限
drwxr-xr-x 4 root root 4096 May 31 09:52 test/
drwxr-xr-x 2 lemool lemool 4096 Sep 28 02:31 lemool/
drwxr-xr-x 2 root root 4096 Apr 6 13:27 mongodb/
-rw-r--r-- 1 root root 68 Aug 28 07:01 ser.txt
前十位表示文件或文件夹的权限,
第一个数字表示文件类型,2-4 属主, 5-7 属组,8-10 其他人
权限代号:
r:读取权限,数字代号为 “4”
w:写入权限,数字代号为 “2”
x:执行权限,数字代号为 “1”
-:不具备任何权限,数字代号为 “0”
权限操作:
chmod + - = 改变权限 u g o a
chmod [ u / g / o / a ] [ + / - / = ] [ r / w / x ] file
[ u / g / o / a ] 为权限范围,其中
u:User,即文件或目录的拥有者
g:Group,即文件或目录的所属群组
o:Other,除了文件或目录拥有者和所属群组外,其他用户都属于这个范围
a:All,即全部用户
+表示增加权限
-表示取消权限
=表示取消之前的权限,并给予唯一的权限
eg:
chmod u=rwx a.txt //对a.txt的属主增加所有权限
chmod u+w a.txt //对a.txt的属主增加写权限
chmod u=- a.txt //对a.txt的属主减去所有权限
chmod o+w /home/test //对目录test增加其他人的可写权限
chmod u+rw /code/readme.txt //给User用户增加了对”/code/readme.txt”文件 “w” 和 “x” 的权限
chown lem.lem test.txt //更改test.txt的属主和属组为lem
chmod +x 的意思就是给执行权限
chmod +x start.sh
# 也可以数字的形式来代表权限
# r-4 w-2 x-1 --0 几个数字相加得到权限,比如7就是所有权限
chmod o+w /home/test //增加其他人对test文件夹的权限,其他人就可以在此自由的操作了
chmod -R 774 /code/ //修改这个目录,以及子目录下文件的所有权限, -R表示递归
User : 7 = 111 表示具有 ” r , w , x” 权限
Group : 7 = 111 表示具有 ” r , w , x” 权限
Other : 4 = 100 表示只具有 ” r ” 权限,而没有 “w,x” 权限
总结下来看似简单,但要理解每个符号的意义却要花不少时间和心思。行动起来吧!