Linux权限详解

一、Linux文件属性结构格式(以root用户家目录为例)

[[email protected]
~]# ls -l       # 显示文件名与相关属性命令

total 120

drwxr-xr-x  2 root root 
4096 Dec 10 07:57 07:57:04

drwxr-xr-x  2 root root 
4096 Dec 10 07:57 10

drwxr-xr-x  2 root root 
4096 Dec 10 07:57 2015

-rw-------. 1 root
root  2454 Dec  6 22:43 anaconda-ks.cfg

drwxr-xr-x  2 root root 
4096 Dec 10 07:57 CST

drwxr-xr-x  2 root root 
4096 Dec 10 07:57 Dec

drwxr-xr-x  2 root root 
4096 Dec  6 22:50 Desktop

drwxr-xr-x  2 root root 
4096 Dec  6 22:50 Documents

drwxr-xr-x  2 root root 
4096 Dec  6 22:50 Downloads

-rw-r--r--. 1 root
root 45098 Dec  6 22:43 install.log

-rw-r--r--. 1 root
root  9963 Dec  6 22:39 install.log.syslog

drwxr-xr-x  2 root root 
4096 Dec  6 22:50 Music

drwxr-xr-x  2 root root 
4096 Dec  6 22:50 Pictures

drwxr-xr-x  2 root root 
4096 Dec  6 22:50 Public

drwxr-xr-x  2 root root 
4096 Dec  6 22:50 Templates

drwxr-xr-x  2 root root 
4096 Dec  6 22:50 Videos

【显示格式】:

总量:

类型和权限  连接数  所有者   用户组   文件大小  修改日期   文件名

1.total:所列出内容的磁盘占用空间总和值(kbytes为单位)

表示该目录的大小,不完全解释:该目录下所有文件及目录列表第五字段的和

注意:不一定等于相加,此数字为占用blocksize的整数倍,和占用block个数有关

2.类型和权限(permission):十位分四段表示

(1)文件类型:

-:常规文件;即f,file;

d:
directory,目录文件;

b: block
device,块设备文件,支持以“block”为单位进行随机访问,如硬盘、软盘...

c:character
device,字符设备文件,支持以“character”为单位进行线性访问

串行端口接收设备,一次性读取,如键盘、鼠标...,用主、次设备号表示

major number:主设备号,用于标识设备类型,进而确定要加载的驱动程序

minor number:次设备号,用于标识同一类型中的不同的设备;

l:symbolic
link,符号链接文件;类似于Windows下的快捷方式

p: pipe,命名管道;解决多个程序访问一个文件所造成的错误,FIFO(first-in-first-out)

s: socket,套接字文件;通常被用在网络上的数据连接,

(2)权限组合机制:(8bites 二进制)

第二道十个字符:每三个为一组,均为‘rwx‘三个参数组合

rwxrwxrwx每个位置固定不定,若无则为空,用‘-‘符号表示

r:readable, 读;w:writable, 写;x:excutable,执行

r=4    w-2   x=1 -=0

【文件目录所属】

文件拥有者:文件本身所归属用户

文件所属用户组:和文件拥有者通用户组

其他人:其他非本用户组的人员

3.连接数:硬连接数量,表示有多少个文件名连接到此节点(i-node)

(1)硬链接:通过不同的名称(路径)指向同一个inode的连接方式

inode号相同,大于一个

1) 仅能股对文件创建,不能对目录创建

2)所创建的硬链接,不能够跨文件系统,但时能够在不同的目录下

3)创建时增加文件被连接次数,即为此处ls -l 第二字段数字

4)cp会付支出新的inode和block,硬链接的inode不同,但时block相同

(2)软连接:类似Widows下快捷方式,存储为其他路径directory

1)大小为路径的字符个数

2)可用于目录,不会增加文件被连接次数

3)可以跨文件系统

4)所创建的软连接的权限为777,但时实际访问权限与被链接文件自身权限相关

4.所有者:该文件或者目录的所属的账号

5.所属组:该文件或者目录的所属的账号所在的基本组

6.容量大小:默认单位为B

常规类型文件大小:

目录类型文件大小:目录自身的大小,为占用几个block的大小

连接类型文件大小:连接文件名称字符个数所占大小

7.修改日期:该文件的创建日期或者最近的更改日期

显示完整的时间格式:ls -l  --full-time

Linux上的三种时间戳:

access time:访问时间,查看该文件后所记录下来的时间

modify time:内容数据时间,文件内容数据发生改变,一些log文件增加

change time:状态时间,如权限数显更改发生改变,status time

8.文件名:文件名称

如果文件名之前多了一个".",则表示隐藏文件

二、文件目录权限访问控制

1.Linux进程对文件访问权限应用模型

进程安全上下文:

进程的属主与文件的属主是否相同;如果相同,则应用属主权限;

否则,则检查进程的属主是否属于文件的属组;如果是,则应用属组权限;

否则,就只能应用other的权限;

2.权限对文件和目录不同的含义

(1)对于文件的含义

r:可获取文件的数据;可以使用类似于cat命令查看文件内容

w: 可修改文件的数据;可以编或者删除此文件

x:可将此文件运行为进程;可以在命令提示符下当做命令提交给内核运行

(2)对于目录的含义

r:可使用ls命令获取其下的所有文件列表;

w:
可修改此目录下的文件列表;即创建或删除文件;

x:
可cd至此目录中,且可使用ls -l来获取所有文件的详细属性信息;

三、权限管理命令

1.chmod:更改文件目录权限

用户类型:u:属主   g:属组   o:其它    a: 所有

(1)chmod [OPTION]...  MODE[,MODE]... FILE…

1)赋权表示法:直接操作一类用户的所有权限位rwx.

用等号表示:[u|g|o|a]=rwx中的一位或者多位

2)授权表示法:直接操作一类用户的一个权限位r,w,x

用加减号表示:[u|g|o|a][+|-]rwx

(2)chmod [OPTION]...  OCTAL-MODE FILE…

直接使用三位数字的方式给文件目录增加权限,分别表示所有者、所属组、其他人的权限

数字的表示方法同上:8bites 二进制表示权限的组合机制

r=4   
w-2   x=1  -=0三位相加

(3)chmod
[OPTION]...  --reference=RFILE FILE…   参照某个文件的权限来进行授权操作

-R,
--recursive:递归修改

注意:普通用户仅能修改属主为自己的那些文件的权限;root可以更改所有用户

2.chown:更改文件目录的所有者,也可以更改所属组

(1)chown [OPTION]...
[OWNER][:[GROUP]] FILE…

1)仅更改用户的所有者

2)所有者:所属组,可以同时更改

所有者.所属组,也可以上述操作,但小心文件名中有.系统识别错误

(2)chown
[OPTION]... --reference=RFILE FILE… 参照某个文件的权限来进行授权操作

-R:递归修改

3.chgrp:更改文件目录的所属组

(1)chgrp [OPTION]... GROUP
FILE… 更改所属组

(2)chgrp [OPTION]... --reference=RFILE FILE…

参照某个文件的权限来进行授权操作

4.install:复制和设置属性权限 copy files and set attributes

(1)单源复制:

install
[OPTION]... [-T] SOURCE DEST

(2)多源复制:

install [OPTION]... SOURCE... DIRECTORY

install
[OPTION]... -t DIRECTORY SOURCE…

(3)创建目录:

install [OPTION]... -d DIRECTORY...

(4)OPTIONS:

-m,
--mode=MODE:设定目标文件权限,默认为755;

-o, --owner=OWNER:设定目标文件属主;

-g,
--group=GROUP:设定目标文件属组;

5.umask:文件的权限反向掩码,遮罩码

(1)umask:查看当前umask

系统默认为:0022表示特殊权限、所有者权限、所有组权限、其他人权限

更改默认设置位置:/etc/login.defs

(2)对文件目录的umask操作

1) 文件:666-umask ,文件默认不能拥有执行权限

如果减得的结果中有执行权限,则需要将其加1

2) 目录:777-umask

四、特殊权限

1.SUID:运行某程序时,相应进程的属主是程序文件本身的属主

chmod  u+s  FILE  增加SUID权限

chmod  u+s  FILE  删除SUID权限

如果FILE本身就有可执行权限,则SUID显示为a,否则为S

2.SGID:运行程序时,相应进程的属组是程序文件自身的属组,而不是启动者所属属组

chmod  g+s  FILE

chmod  g-s  FILE

3.sticky:在一个公共目录,每个用户都可以创建文件,删除文件,但不能删除别人的

注意:该权限仅能针对目录Directory

chmod  o+t DIR

chmod  o-t   DIR

4.SUID、SGID仅能对文件操作,sticky仅能对目录操作

SUID=w  SGID=2  sticky=1

五、关于权限问题的一些问题思考与验证

思考:用户对目录有写权限,但对目录下的文件没有写权限时,能否修改此文件内容?  能否删除此文件?能否用vim修改

1.当属主和属组相同时:都是gentoo,用gento操作

1)切换到普通用户gentoo,在/tmp下建立测试目录test和测试文件test.txt

[[email protected] ~]# su - gentoo

[[email protected] ~]$ cd /tmp

[[email protected] tmp]$ mkdir test

[[email protected] tmp]$ touch test/test.txt

2)更改权限,确保前提目录test有写权限,文件test.txt没有写权限

[[email protected] tmp]$ ll | grep test

drwxrwxr-x  2 gentoo gentoo 4096 Dec 12 10:19 test

[[email protected] tmp]$ cd test

[[email protected] test]$ chmod 500 test.txt

[[email protected] test]$ ll

total
0

-r-x------
1 gentoo gentoo 0 Dec 12 10:19 test.txt

3)用echo写入命令写入

[[email protected] test]$ echo ‘hello‘ > test.txt

-bash: test.txt: Permission denied

4)尝试用vim写入操作

[[email protected] test]$ vim test.txt

--
INSERT -- W10: Warning: Changing a readonly file

退出强制保存

E45: ‘readonly‘ option is set (add ! to override)

结果可以写入,文件属主、属组、权限都没改变

2.当属主和属组不同时:文件属主是gentoo,属组是slckware,用gentoo用户操作

1)同上操作在/tmp/test下建立测试文件test1,更改权限和属组为slackware

2) 用echo写入命令写入

[[email protected] test]$ echo ‘hello‘ >  test1

-bash:
test1: Permission denied

3)尝试用vim写入操作

[[email protected] test]$ vim test.txt

-- INSERT -- W10: Warning: Changing a readonly file 4

强制退出并保存

E45: ‘readonly‘ option is set (add ! to override)

结果可以写入,文件属主、属组、权限都没改变

3.当属主和属组不同时:文件属主是gentoo,属组是slckware,用slckware用户操作

[[email protected] test]# chmod g+r test1

[[email protected]lhost test]# su - slackware

[[email protected] ~]$ cd /tmp/test

[[email protected] test]$ ll

total
4

-r-xr-----
1 gentoo slackware 7 Dec 12 11:11 test1

[[email protected] test]$ vim test1

[[email protected] test]$ ll

total
4

-r-xr-----
1 slackware slackware 21 Dec 12 11:17 test1

结论:

1.情况一和情况二所得结论相同:都不能echo写入修改文件内容,但是结果可以写入,而文件属主、属组、权限均未发生改变

2.情况三,不同的用户在没有写权限的情况下对其组内的其他用户文件进行操作,echo不能写入

但时vim可以强制写入,但此时文件已经不是原来文件,覆盖写入,属主发生变化。

slackware作为普通用户,没有chown权限,可能为vim的内存空间重新写入覆盖文件

此时,文件权限没变,属主发生变化

时间: 2024-10-24 12:05:01

Linux权限详解的相关文章

Linux权限详解,多用户多组各种权限配置原理

网上有太多关于Linux权限详解,这里不啰嗦那些.主要解释下这些权限是杂用的,否则知道了什么用户.组之类的权限也配不好. 一.权限分类 r:读取权限,数字代号为"4". w:写入权限,数字代号为"2". x:执行或切换权限,数字代号为"1". -:不具任何权限,数字代号为"0". linux内每一段为r+w+x的值,最大777,见下图 二.权限在何时使用 目录写权限:可以增删目录内所有内容,改文件和目录名. 目录读权限:可以l

Linux(权限详解)

Linux权限是很重要的一个东西,大体上来看root用户拥有最高权限,可以无视任何权限.普通用户都只能访问自己的家目录,无法访问其它用户的家目录,更无法访问root目录 linux权限把用户分为三类,文件所有者,文件所有者同组成员,其他成员. linux权限又把权限分为三类,可读,可写,可执行. 总体上就成了 rwxrwxrwx这种格式,有时候还可以认为是三个二进制数字比如777,读4写2执行1 针对文件的三种权限的解释 r读取文件内容 w修改文件内容 x将文件当作命令来执行 针对目录的三种权限

Linux文件或目录权限详解

版权声明: ########################################################################### 本文的所有内容均来自作者刘春凯的学习总结,未经本人许可,禁止私自转发及使用. QQ:1151887353 E-mail:[email protected] [email protected] ########################################################################

Linux文件权限详解

在Linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录. 通过设定权限可以从以下三种访问方式限制访问权限:只允许用户自己访问:允许一个预先指定的用户组中的用户访问:允许系统中的任何用户访问.同时,用户能够控制一个给定的文件或目录的访问程度.一个文件活目录可能有读.写及执行权限.当创建一个文件时,系统会自动地赋予文件所有者读和写的权限,这样可以允许所有者能够显示文件内容和修改文件.文件所有者可以将这些权限改变为任何他想指定的权限.一个文件也许只有读权限

Linux 特殊权限详解

1.什么是特殊权限? 我们知道权限有r,w,x.其实除了这三个,还有特殊权限.比如: [[email protected] ~]# ls -l /usr/bin/passwd -rwsr-xr-x 1 root root 22960 Jul 17  2006 /usr/bin/passwd 可以发现权限位,有个s.特殊权限有如下3种: SUID SGID STICKY 2.关于suid 我们知道linux有一个进程安全模型的概念,比如Tom执行passwd来进行修改密码: 第一,注意到passw

[转]linux主机644、755、777权限详解

转自:http://my.oschina.net/qihh/blog/73135 从左至右,第一位数字代表文件所有者的权限,第二位数字代表同组用户的权限,第三位数字代表其他用户的权限. 从左至右,第一位数字代表文件所有者的权限,第二位数字代表同组用户的权限,第三位数字代表其他用户的权限. 而具体的权限是由数字来表示的,读取的权限等于4,用r表示:写入的权限等于2,用w表示:执行的权限等于1,用x表示: 通过4.2.1的组合,得到以下几种权限:0(没有权限):4(读取权限):5(4+1 | 读取+

(赵小明RHCE笔记)linux基础之四 权限详解

一.special permissions for executables1.special permissions for executables:  -suid:command run with permissions of the owner of the command,not executor of   the command  -sgid:command runs with group affiliation of the group of the commandeg:file:us

linux 之用户和组及权限详解

linux之用户和组及权限详解 权限有三种 r:可读,w:可写,x:可执行 针对文件: r:可读, 表示可使用cat等命令查看 w:可写,  表示可写或删除指定文件 x:可执行,表示在bash下可当作命令使用执行 针对目录: r:可读,可使用ls命令显示内部的所有文件 w:可写, 可以在此目录中创建文件或子目录 x:可执行,可使用cd命令切换此目录,也可使用ls -l查看内部文件 权限的表现形式: 0 000 ---:无权限 1 001 --x: 执行 2 010 -w-: 可写 3 011 -

【Linux学习】Linux下用户组、文件权限详解

原文地址:http://www.cnblogs.com/123-/p/4189072.html Linux下用户组.文件权限详解 用户组 在linux中的每个用户必须属于一个组,不能独立于组外.在linux中每个文件有所有者.所在组.其它组的概念 - 所有者 - 所在组 - 其它组 - 改变用户所在的组 所有者 一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者 用ls ‐ahl命令可以看到文件的所有者 也可以使用chown 用户名 文件名来修改文件的所有者 文件所在组 当某个用户创