linux文件权限梳理 / 网络研习社#86

in hive-180932 •  11 months ago 

linux的文件权限颇为复杂,简单地读下资料是很难弄明白的,非得实践多次才能完全整明白。以前我是对权限不太重视,不管在哪,都是一个root通行天下。现在有多人协作,以及安全性方面的考虑,需要适当地避免root而使用普通用户的角色。

文件权限是个系统工程,对于linux来说“一切皆文件”。,要梳理这方面的知识,也确实花了近两天的时间。整理和测试后,归纳如下:

doc.png

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” 权限

总结下来看似简单,但要理解每个符号的意义却要花不少时间和心思。行动起来吧!

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!