liunx文件权限

 

linux文件和目录的权限详解

一、文件和目录权限概述

1、linux文件或目录的权限是由9个权限为来控制的。

每三位为一组,它们分别是文件属主(Owner)的读、写、执行,用户组(Group)的读、写、执行以及(Other)其他用户的读、写、执行;

r (read) 可读权限,对应数字4

w (write) 可写权限,对应数字2

x (Execute) 可执行权限,对应数字1

没有权限 , 对应数字0

 

2、用户属主、用户组、其他用户。

文件属主/用户(Owenr/User):读read、写write、执行x

文件用户组(Group):读r、写w、执行x

其他用户(Other):读r、写w、执行x

如果权限位不可读、不可写、不可执行,则用 - 来表示

图解:

                           

 

 

3、小结:linux普通文件的读、写、执行权限说明:

1)可读r表示具有读取\阅读文件内容的权限,

2)可写w表示具有新增、修改文件内容的权限

3)如果没有r,那么vi会提示无法编辑(可强制编辑). echo可重定向或追加);

4)特别提示:删除文件(修改文件名等)的权限是受父目录的权限控制,和文件本身权限无关

5)可执行x:表示具有执行文件的权限

6)文件本身要能够执行    I

7)普通用户同时还需要具备r的权限才能。

8) root只要有x的权限就能执行。

    win32下可执行文件:*.exe,*.bat, *.com

    nux下可执行文件:*.sh  ,  *.py  ,*.perl等。

 

4、小结:linux目录的读、写执行权限说明:

1)可读r:表示具有浏览目录下面文件及子目录的权限,即 ls dir

如果没有x权限,不能进到目录里,即无法cd dir

如果没有x权限,ls 列表时可以看到所有文件名。但是会提示无权访问目录下文件

如果ls -l 列表,所有的属性会带有问号,也会提示无权访问目录下文件,但是可以查看到所有文件名

2)可写w:表示具有增加、删除或修改目录内文件名(一般指文件名)的权限(需要x权限配合)

3 ) 可执行x:表示具有进入目录的权限;例如: cd dir 

4 ) 但是没有r 无法列表文件及目录,没有w无法新建和删除

二、权限属性的修改

1、改变权限属性命令 chmod

chmod是用来改变文件或目录权限的命令,但只有文件的属主和超级用户root才有这种权限。通过chmod来改变文件或目录的权限有两种方法:

一种是通过权限字母和操作符表达式的方法来设置权限;

另一种是使用数字方法设置权限。

 

1 )chmod 数字权限方法(推荐)

使用数字权限设置权限的命令格式如下:

chmod [数字组合] 文件名 

例子:

[[email protected] oldboy]# ll /tmp/oldboy/test.txt

-rw-r-xr-x 1 root root 34 3月  17 07:18 /tmp/oldboy/test.txt

[[email protected] oldboy]# chmod 644 test.txt

[[email protected] oldboy]# ll /tmp/oldboy/test.txt

-rw-r--r-- 1 root root 34 3月  17 07:18 /tmp/oldboy/test.txt

 

每个三位数的权限代码(分别是属主、属组、其他用户)组合,有8种可能:

       八进制数字               权限

       0                        ---

       1                        --x

       2                        -w-

       3                        -wx

       4                        r--

       5                        r-x

       6                        rw-

       7                        rwx

 

2 )chomd 字符式权限表示法

使用权限字符设置权限的命令格式如下(图):

 chomd [用户类型] [+| - |=] [权限字符] 文件名,用表示如下:

 

2、用户定义字母:

   u代表属主用户Lowneriuser)

   g代表属组(group)

   o代表其它用户(other)

   a代表属主、属组和其它用户,也就是上面三个用户(或组)的所有(all);

3、权限定义字母:

   r代表读权限,用数字4表示;

   w代表写权限,用数字2表示;

   x代表执行权限,用数字1表示;

- 代表没有权限,用数字o表示

4、权限增减字符:

 +:添加某个权限

 -:取消某个权限

 =:取消其他所有权限赋予给定的权限

例子:

[[email protected] oldboy]# ll /tmp/oldboy/test.txt

-rw-r--r-- 1 root root 34 3月  17 07:18 /tmp/oldboy/test.txt

[[email protected] oldboy]# chmod u+x test.txt       

[[email protected] oldboy]# ll /tmp/oldboy/test.txt

-rwxr--r-- 1 root root 34 3月  17 07:18 /tmp/oldboy/test.txt

[[email protected] oldboy]# chmod g+w test.txt    

[[email protected] oldboy]# ll /tmp/oldboy/test.txt

-rwxrw-r-- 1 root root 34 3月  17 07:18 /tmp/oldboy/test.txt

[[email protected] oldboy]# chmod u-x,g+w,o-rwx test.txt

[[email protected] oldboy]# ll /tmp/oldboy/test.txt    

-rw-rw---- 1 root root 34 3月  17 07:18 /tmp/oldboy/test.txt

[[email protected] oldboy]# chmod ugo=rw test.txt      

[[email protected] oldboy]# ll /tmp/oldboy/test.txt

-rw-rw-rw- 1 root root 34 3月  17 07:18 /tmp/oldboy/test.txt

[[email protected] oldboy]# chmod a=rw test.txt   

[[email protected] oldboy]# ll /tmp/oldboy/test.txt

-rw-rw-rw- 1 root root 34 3月  17 07:18 /tmp/oldboy/test.txt

[[email protected] oldboy]# chmod 644 test.txt    

[[email protected] oldboy]# ll /tmp/oldboy/test.txt

-rw-r--r-- 1 root root 34 3月  17 07:18 /tmp/oldboy/test.txt

 

5、对于目录权限的设置,要用到-R参数;

和数字权限方法一样,如果我们为一个目录及其下的子目录和文件具有相同的属性,就可以用-R参数

例子:

[[email protected] oldboy]# chmod  R a+rwx ett diri

[[email protected] oldboy]# Is  lr ett  diri

总计4

 rwxrwxrwx l root root    O Oct 30 11:01 0ldbovtest. txt

drwxrwxrwx 2 root root 4096 0ct 30 11:01  etiantian

 

6、知识点:web apache nginx站点目录的文件和目录给什么权限:

默认权限是安全权限的临界点,工作中尽量给这个临界点,或者小于临界点,不要大于临界点权限。

 

三、特殊权限

1、特殊权限位基本说明:

linux系统基本权限位为9位权限,但还有额外3位权限位,共12位权限

suid  s(有x)S 4用户对应的权限位(用户对应的3位上)

sgid  s(有x)S 2用户组对应的权限位用户组对应的3位上)

sticky  t(有x)T 1其他用户对应的权限位

 

2、suid知识小结:是针对命令和二进制程序的

1)用户或属主对应的前三位权限的x位上如果有s就表示suid权限。当x位上没有小写x执行权限的时候,suid的权限显示的就是大S。

2) suid作用是让普通用户可以以root(或其他)的用户角色运行只有root(或其他)帐号才能运行的程序或命令,或程序命令对应本来没有权限操作的文件等。

(注意和su及sudo的区别),suid为某一个命令设置特殊权限(使用者为所有人)。

通过给rm命令设置suid加深学生对suid的理解。

3)问题:希望oldboy用户能够删除本来无权删除的文件。

a.  sudo给oldboy授权rm,b. 给rm命令设置suid,c. 设置上级目录w权限。

4)suid修改的是执行的命令passwd,而不是处理的目标文件/etc/shadow。

5)仅对二进制命令程序有效,不能用在shell等类似脚本文件上(因为shell脚本仅仅是调用二进制命令程序而已,因此,具体权限还需要看二进制命令本身)

6)二进制命令程序需要有可执行权限x配合。

7)suid权限仅在程序命令执行过程中有效。

8)执行suid命令的任意系统用户都可以获得该命令程序在执行期间对应的拥有者的所有权限

9)suid双刃剑,是一个比较危险的功能,对系统安全有一定的威胁。

系统suid的无用的功能取消suid权利(安全优化)。

 

3、对于目录:sgid的功能:

1)linux里默认情况所有用户创建文件,默认用户和组都是自身。

2)sgid可以让用户再次目录下创建的文件和目录,具有和此目录相同的用户组设置。

setgid位主要用在目录中,当为某个目录设置了setgid位以后,在该目录中新创建的文件具有该目录的所属组权限,而不是创建该文件的用户的默认所有者。这样,使得在多个用户之间共享一个目录中的文件变得简单。提示:用八进制数2000表示setgid权限位。

 

4、sgid知识总结介绍:

   特别说明:

1)与suid不同的是,suid既可以针对文件也可以针对目录设置!

2)sgid是针对用户组权限位的。

   对于文件来说,suid的功能如下:

   (1) sgid仅对二进制命令程序有效。

   (2)二进制命令或程序需要有可执行权限x。

   (3)执行命令的任意用户可以获得该命令程序执行期间所属组的权限。

 

5、特殊权限对应的数字小结:

suid 4000权限字符s(S),用户位上的x位上设置。

授权方法chmod 4755 /bin/rm或chmod u+s test

 sgid 2000权限字符s(S),用户组位的x位上设置。

授权方法chmod 2755 0ldboy.txt或chmod g+s test

牯滞位1000权限字符t(TJ,其他用户位的x位上设置。

授权方法chmod 1777/tmp或chomd o+t/tmp

如果对应位有x则,字符权限表现为小写,台则表现为大写。

tmp经典的粘滞位曰录案例,特点,谁都有写权限,因此安全成问题。常常是木马第一手跳板地点。

 

四、文件及目录的归属关系

 

1、文件或目录的归属关系主要定义文件或目录归属哪个用户所有及归于哪个用户组所有。

[[email protected] oldboy]# Is  -ld catchfish. txt

 -rw-r-r- 1  root  root 0 Oct  30  15: 05 catchfish. txt

 上面的例子表示,catchfish.txt这个文件,其属主是root,归属的组是root用户组,而root用户所拥

有的权限是rw-,root用户组拥有的权限是r一。

 有时我们可能不理解,为什么Linux要设置文件的属主、属组,为什么还要为属主、属组和其它用户

都要设置权限呢??我们在以前的文档说过,Linux是多用户的操作系统,文件的安全性对Linux是极为重

要的,Linux的安全性主要表现在在用户管理和权限(用户的权限及文件的权限)管理上。

 

2、chown(change owner) 更改及设置文件对应的用户和组。

当我们要改变一个文件的属主,我们所使用的用户必须是该文件的属主而同时是目标属组成员,或超级用户。只有超级用户的才能改变文件的属主。

     chown 语法:

     chown [选项]… [所有者][:组] 文件…

 例子:

chown  用户  文件或目录      #<==仅仅授权用户。

chown  :组  文件或目录      #<==仅仅授权组。 等同于“chgrp组 文件或目录”

chown  用户:组  文件或目录  #<==表示授权用户和组。

强调:

1)其中冒号“:“可以用点号 ”.“ 替代。

2)要授权的用户和组名,必须是linux系统里实际存在的。

 

3、chgrp (changegroup) 改变文件的属组命令。

语法:chgrp oldboy ffff==  chown  .oldboy ffff

chgrp[参数选项]...  组文件...

它的用户和chown类似,只不过它仅是用来改变文件或目录的属组的;-R参数用于目录及目录下所有文件改变属组的。这和chown也是一样的,可以把chgrp看作是chown的子集。一般会用chown即可。

 

时间: 2024-10-15 20:54:19

liunx文件权限的相关文章

liunx 文件权限注意

在liunx上读取文件时总是出问题. 比如做ios推送的时候,总是读取不到pem文件,但是程序通过file_exists判断了文件是否存在,但是还总是出错,大神检查下原来是权限的问题, 所以试着用fopen来测试下,结果发现可以判断到,所以以后需要注意了.如果有文件相关的东西,应该先判断下是否存在,在判断下是否是权限的问题.

Liunx文件权限与目录配置

chown:改变文件所有者 chgrp:改变文件所属用户组 chmod:改变文件的权限 /(root,根目录):与开机系统有关   其下有:/etc:配置文件  :/bin:重要执行文件  :/lib:执行文件所需的函数库与内核所需模块  :/dev:所需设备文件  : /sbin:重要系统文件   以上五个目录不可与根目录分开放在不同的分区. /usr:与软件安装/执行有关 /var:与系统运作过程有关

linux用户(组)及文件权限说明

写在前面: 在liunx系统中一切都是文件(文件夹和外设是特殊的文件),如果有可能尽量使用文本文件,文本文件是人.机都能够理解的文件.linux的用户(组)和权限完美的解决了linux系统的安全问题.由于一切都是文件,linux引入了两个文件来管理用户(组):/etc/passwd 存放用户:/etc/group 存放组:然后在文件系统中每个文件头里添加了用户和文件之间的关系信息. 1.用户和文件只有两种关系:拥有和不拥有 2.用户组和文件也只有两种关系:拥有和不拥有 3.用户和用户组的关系也只

linux 用户及文件权限管理

Linux 是一个可以实现多用户登陆的操作系统,比如"李雷"和"韩梅梅"都可以同时登陆同一台主机,他们共享一些主机的资源,但他们也分别有自己的用户空间,用于存放各自的文件.但实际上他们的文件都是放在同一个物理磁盘上的甚至同一个逻辑分区或者目录里,但是由于 Linux 的 用户管理 和 权限机制,不同用户不可以轻易地查看.修改彼此的文件. 下面我们就来学习一下 Linux 下的账户管理的基础知识. 1.首先查看用户的指令: who am i/whoami 输出的第一列

linux文件权限管理与ACL访问控制列表

一.文件属性 1.文件属性: 文件属性操作 chown : change owner  ,设置文件所有者 chgrp : change group  ,设置文件的属组 文件属主修改: chown 格式:chown [OPTION]- [OWNER][:[GROUP]] FILE- 用法: OWNER OWNER:GROUPNAME    (同时修改属主.属组) :GROUPNAME                (默认属主,修改属组) ( 命令中的冒号可用.替换:) chown  –refere

Linux 文件权限总结

在 Linux 中最基本的任务之一就是设置文件权限.理解它们是如何实现的是你进入 Linux 世界的第一步.如您所料,这一基本操作在类 UNIX 操作系统中大同小异.实际上,Linux 文件权限系统就直接取自于 UNIX 文件权限(www.lampbrother.net). 但不要以为理解文件权限需要长时间的学习.事实上会很简单,让我们一起来看看你需要了解哪些内容以及如何使用它们. 基础概念 你要明白的第一件事是文件权限可以用来干什么.当你设置一个分组的权限时发生了什么?让我们将其展开来说,这个

Linux的文件权限与目录配置

Linux最优秀的地方之一,在于它的多用户.多任务环境.正因如此(为了让各用户具有较保密的文件数据),文件的权限管理就格外重要了. Linux一般将文件可存取访问的身份分为3个类别,分别是owner.group.others,且3种身份各有read.write.execute等权限. 一.用户与用户组 由于Linux是个多用户.多任务的系统,因此可能常常会有多人同时使用这台主机进行工作,所以保护每个人的隐私就极为重要了. 1. 文件所有者 将该文件设置成只有文件所有者才能查看与修改这个文件的内容

Linux文件权限

A B    C        D           E                 F-rw-r--r--. 1 xiaol_1 gp_1 0 10月 6 13:10 test.txtA 文件权限,-文件,d文件夹,l连接B 如果是1表示这是一个文件,如果是非1表示这是个文件夹,数字为文件夹内文件数如果是1表示这是一个文件,如果是非1表示这是个文件夹,数字为文件夹内文件数C 文件创建者D 文件所在组E 创建时间F 文件名称 A  B     C     D-   rw-  rw-   r

Linux 基础学习文件权限(三)

用户和用户组 用户:UID /etc/passwd 组成 (用户名)account:passwd(x占位符不显示):UID:GID:GECOS(可选用户注释信息):HOMEDIR(家目录):SHELL(默认shell) 用户组:GID /etc/group 组成 组名:密码占位符:GID:额外组 影子口令 /etc/shadow 用户密码 使用md5加密 组成 account(登陆名):passwd(加密的密码$1$sort$md5 加密方式,其他,MD5密钥)(!号和*代表锁定不可登陆):密码