Linux下的文件、目录权限

对于Linux的初学者来说,熟悉了Windows下的文件类型,接触到Linux的下的文件类型是有所区别的。如Windows的:



而Linux下:


你会发现Linux下前面的几列不同如drwxr-xr-x. 2 root root,这又代表的什么?下面我们来说说Linux的文件权限......

一 、文件的属性

1. 文件的权限:
文件的权限主要针对三类对象进行定义:

owner: 属主, u
group: 属组, g
other: 其他, o

每个文件针对每类访问者都定义了三种权限:

r: Readable 读权限
w: Writable 写权限
x: eXcutable 执行权限

文件:(例:-rw-r--r--. 1 root root 21 May 30 13:43 test.txt)

r: 可使用文件查看类工具获取其内容
w: 可修改其内容
x: 可以把此文件提请内核启动为一个进程

目录:(例:drwxr-xr-x. 2 root root 6 May 27 21:12 Music)

r: 可以使用ls查看此目录中文件列表
w: 可在此目录中创建文件,也可删除此目录中的文件
x: 可以使用ls -l查看此目录中文件列表,可以cd进入此

为什么Linux上要设置这么多的属性呢?其实,最大的用途是在『数据安全性』上面的。

1.系统保护的功能:

-r--------. 1 root root 2211 May 29 12:44 /etc/shadow```
像/etc/shadow 这一个账号管理的文件,由于该文件记录了你系统中所有账号的数据。你不希望所有普通用户都能访问它,否则就存在安全隐患。因此像这类很重要的配置文件通常只有root (管理员)才能读写或者是执行。
2.组成员数据共享的功能:
例如你有一个组,你希望你的每个组成员都有访问这个组下的文件,而其他人不可访问,你则可以设置组的权限。
3.未将权限设定的危害:
假如你的目录权限没有设定好的话,可能造成其他人随意访问,修改配置权限,像一些重要的的文件,本来只有管理员,组内成员可修改,没设定好造成其他人可执行管理员的权限,会造成数据的流失,系统得不到安全的保障。

## 二 、文件属性的设定与权限操作
1.设置文件的所有者:chown
chown [OPTION]... [OWNER][:[GROUP]] FILE...
[root@centos7 ~]# chown [-R] 账号名称:组名 文件或目录
>[root@centos7 ~]#ls -l test.txt
-rwxrwxr-x. 1 root root 21 May 30 13:43 test.txt
[root@centos7 ~]#useradd xiao
[root@centos7 ~]#chown xiao test.txt 
[root@centos7 ~]#ls -l test.txt
-rwxrwxr-x. 1 xiao root 21 May 30 13:43 test.txt

PS.改文件的所有者只能在root下有效,在普通用户下改所有者无效,改所属组有条件性(如wang用户在xiao组中可以修改为wang为所属组,不在这个组中修改不了)。
>[root@centos7 ~]#useradd wang
[root@centos7 ~]#id xiao
uid=2009(xiao) gid=2014(xiao) groups=2014(xiao),
[root@centos7 ~]#su - xiao
[xiao@centos7 ~]$touch b
[xiao@centos7 ~]$ll
-rw-rw-r--. 1 xiao xiao 0 May 30 15:51 b
[xiao@centos7 ~]$chown wang b
chown: changing ownership of ‘b’: Operation not permitted
[xiao@centos7 ~]$chown :wang b
chown: changing group of ‘b’: Operation not permitted
[xiao@centos7 ~]$exit
[root@centos7 ~]#usermod -G  xiao wang 
[root@centos7 ~]#id xiao
uid=2009(xiao) gid=2014(xiao) groups=2014(xiao),2010(wang)
[root@centos7 ~]#su - xiao
[xiao@centos7 ~]$chown :wang b
[xiao@centos7 ~]$ll
-rw-rw-r--. 1 xiao wang 0 May 30 15:51 b
[xiao@centos7 ~]$exit


-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都变更
 >[root@centos7 ~]#chown -R xiao:xiao /etc
[root@centos7 ~]#ll /etc
total 1396
drwxr-xr-x.  3 xiao xiao    101 May 30 15:33 abrt
-rw-r--r--.  1 xiao xiao     16 May 30 15:33 adjtime
-rw-r--r--.  1 xiao xiao   1518 May 30 15:33 aliases
-rw-r--r--.  1 xiao xiao  12288 May 30 15:33 aliases.db
drwxr-xr-x.  2 xiao xiao     51 May 30 15:33 alsa
drwxr-xr-x.  2 xiao xiao   4096 May 30 15:33 alternatives
-rw-------.  1 xiao xiao    541 May 30 15:33 anacrontab
PS.用递归变更目录下的文件需注意,特别是在root模式下,会把重要的配置文件所有者所属组改变。

2.设置文件的属组信息:chgrp
>chgrp [OPTION]... GROUP FILE...
[root@centos7 app]#touch c
[root@centos7 app]#chgrp wang c
[root@centos7 app]#ll
-rw-r--r--.   1 root wang    0 May 30 16:07 c

3.修改文件权限:chmod
通常修改文件权限为**模式法与数字法**。
**模式法:**
chmod [OPTION]... MODE[,MODE]... FILE...
修改一类用户的所有权限:
u= g= o= ug= a= 
>[root@centos7 app]#ls -l cc
-rw-r--r--. 1 root root 0 May 30 17:37 cc
[root@centos7 app]#chmod u=rwx,g=rx,o=rx cc
[root@centos7 app]#ls -l cc
-rwxr-xr-x. 1 root root 0 May 30 17:37 cc
[root@centos7 app]#chmod ug=rx cc
[root@centos7 app]#ls -l cc
-r-xr-xr-x. 1 root root 0 May 30 17:37 cc
[root@centos7 app]#chmod a=rwx cc
[root@centos7 app]#ls -l cc
-rwxrwxrwx. 1 root root 0 May 30 17:37 cc

修改一类用户某位或某些位权限
u+ u-g+ g-o+ o-a+ a-+ -
>[root@centos7 app]#chmod a-w cc
[root@centos7 app]#ls -l cc
-r-xr-xr-x. 1 root root 0 May 30 17:37 cc
[root@centos7 app]#chmod u+w cc
[root@centos7 app]#ls -l cc
-rwxr-xr-x. 1 root root 0 May 30 17:37 cc
[root@centos7 app]#chmod g+w,o-x cc
[root@centos7 app]#ls -l cc
-rwxrwxr--. 1 root root 0 May 30 17:37 cc
[root@centos7 app]#

**数字法:**

![](http://upload-images.jianshu.io/upload_images/6137254-83a9f5a529887d11.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
>八进制数
--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7
例如:640: rw-r----- 、755: rwxr-xr-x
[root@centos7 app]#chmod 755 cc
[root@centos7 app]#ls -l cc
-rwxr-xr-x. 1 root root 0 May 30 17:37 cc

在某些情况下修改文件权限需注意:
例:
>在普通用户下:
1.[xiao@centos7 ~]$touch a.txt
[xiao@centos7 ~]$nano a.txt
[xiao@centos7 ~]$ls -l a.txt 
-rw-rw-r--. 1 xiao xiao 12 May 30 17:59 a.txt
[xiao@centos7 ~]$chmod u=,g=rw,o=rx a.txt 
[xiao@centos7 ~]$cat a.txt
cat: a.txt: Permission denied
[xiao@centos7 ~]$chmod u=rwx a.txt 
[xiao@centos7 ~]$cat a.txt 
hello linux
[xiao@centos7 ~]$rm a.txt 
对普通用户来说,把自己权限设为u=0,所有者没有任何权限,访问不了文件,但所有者有资格改所有者权限,亦可删除。
2.[root@centos7 ~]#groupadd g1
[root@centos7 ~]#useradd -g g1 xiaohong
[root@centos7 ~]#useradd -g g1 xiaoming
[root@centos7 ~]#useradd xiaodong
[root@centos7 ~]#touch ab.txt
[root@centos7 app]#cat>>ab.txt
hello linux
[root@centos7 app]#chown xiaoming:g1 ab.txt
[root@centos7 app]#chmod u=,g=r,o=rw ab.txt
[root@centos7 app]#su xiaoming
[xiaoming@centos7 app]$ cat ab.txt
cat: ab.txt: Permission denied
[xiaoming@centos7 app]$ exit
[root@centos7 app]#su xiaohong
[xiaohong@centos7 app]$ cat ab.txt
hello linux
[xiaohong@centos7 app]$ cat >>ab.txt
bash: ab.txt: Permission denied
[xiaohong@centos7 app]$ exit
[root@centos7 app]#su xiaodong
[xiaodong@centos7 app]$ cat ab.txt
hello linux
[xiaodong@centos7 app]$ cat >>ab.txt
abc
[xiaodong@centos7 app]$ cat ab.txt
hello linuxabc
用户访问一个文件,他的权限,执行过程为:先判断这个文件是否为所有者,如果是则匹配权限,后面则省略权限匹配,及使在别的组你对这个文件有更大的权限,如果不是所有者,判断是否为所属组,再然后是其他人。
匹配顺序为所有者--所属组---其他人,不是用户权限的累加。
3.
[root@centos7 app]#cp /usr/bin/cat /app
[root@centos7 app]#chmod a= /app/cat
[root@centos7 app]#/app/cat ab.txt
-bash: /app/cat: Permission denied
[root@centos7 app]#chmod g=x /app/cat
[root@centos7 app]#/app/cat ab.txt
hello linuxabc
对root用户来说rw权限不受影响,x权限受限制,如果u,g,o,只要一项有x权限,则root有x权限。
4.
chown [OPTION]... --reference=aFILE bFILE...
 b文件参考a文件的权限来设。
[root@centos7 app]#ll
-r-xr-xr-x. 1 xiaoming g1      20 May 30 20:30 ab.txt
----------. 1 root     root    26 May 30 20:47 ac.txt
[root@centos7 app]#chmod --reference ab.txt ac.txt
[root@centos7 app]#ll
-r-xr-xr-x. 1 xiaoming g1      20 May 30 20:30 ab.txt
-r-xr-xr-x. 1 root     root    26 May 30 20:47 ac.txt

##三.目录的权限
目录的权限一般为```drwxr-xr-x. 2 root root    6 May 27 21:12 Videos```
但不排除特殊情况;例只有r或w或x权限时:
>[root@centos7 app]#mkdir test1
[root@centos7 app]#cd /app/test1
[root@centos7 test1]#touch a 
[root@centos7 test1]#touch b
[root@centos7 app]#cp -rp /app/test1/ /app/test2
[root@centos7 app]#cp -rp /app/test1/ /app/test32
[root@centos7 app]#tree
├── test1
│   ├── a
│   └── b
├── test2
│   ├── a
│   └── b
├── test32
│   ├── a
│   └── b
[root@centos7 app]#chmod u=x,g=,o= test1
[root@centos7 app]#chmod u=w,g=,o= test2
[root@centos7 app]#chmod u=r,g=,o= test32
[root@centos7 app]#chown xiaoming: test1
[root@centos7 app]#chown xiaoming: test2
[root@centos7 app]#chown xiaoming: test32
[root@centos7 app]#su xiaoming
[xiaoming@centos7 app]$ ls /app/test32
ls: cannot access /app/test32/a: Permission denied
ls: cannot access /app/test32/b: Permission denied
a  b
[xiaoming@centos7 app]$ cd /app/test32
bash: cd: /app/test32: Permission denied
[xiaoming@centos7 app]$ rm -rf /app/test32
rm: cannot remove ‘/app/test32/a’: Permission denied
rm: cannot remove ‘/app/test32/b’: Permission denied
[xiaoming@centos7 app]$ cd test1
[xiaoming@centos7 test1]$ ls
ls: cannot open directory .: Permission denied
[xiaoming@centos7 test1]$ cat a
只有读:只能查看目录文件列表,不能访问文件,也不能cd目录(查看,删除)
只有执行:可以cd,不能ls,可以访问目录中的文件。执行是基础权限
写权取:配合x权限才生效
[root@centos7 test1]#mkdir a
[root@centos7 test1]#mkdir b
[root@centos7 test1]#touch c
[root@centos7 test1]#chmod u=rw,g=rw,o=r a
[root@centos7 test1]#chmod u=rw,g=rw,o=r b
[root@centos7 test1]#chmod u=rw,g=rw,o=r c
[root@centos7 app]#ll /app/test1
-rw-rw-r--. 1 root root 0 May 30 21:26 a
-rw-rw-r--.. 1 root root 0 May 30 21:26 b
-rw-rw-r--. 1 root root 0 May 30 21:43 c
[root@centos7 app]#chmod -R  a=rwX test1
[root@centos7 app]#ll /app/test1
-rwxrwxr-x. 1 root root 0 May 30 21:26 a
-rwxrwxr-x. 1 root root 0 May 30 21:26 b
-rw-rw-r--. 1 root root 0 May 30 21:43 c
[root@centos7 test1]#chmod u=rw,g=rw,o=rx c
[root@centos7 test1]#cd ..
[root@centos7 app]#chmod -R  a=rwX test1
[root@centos7 app]#cd /app/test1
[root@centos7 test1]#ll
-rwxrwxrwx. 1 root root 0 May 30 21:26 a
-rwxrwxrwx. 1 root root 0 May 30 21:26 b
-rwxrwxrwx. 1 root root 0 May 30 21:43 c
X的作用(x权限特殊形式)
针对目录增加x权限
对文件
1 无执行的文件,不会增加x权限
2 任意三种人有执行权限,也会增加x权限
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,126评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,254评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,445评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,185评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,178评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,970评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,276评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,927评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,400评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,883评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,997评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,646评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,213评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,204评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,423评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,423评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,722评论 2 345

推荐阅读更多精彩内容