LInux ugo权限详解

Linux 中的用户和组是用来控制使用者或者进程可以或者不可以使用哪些资源和硬件,是Linux权限控制最基本的方式。

  用户和组可以看一下上一章的部分,先来看一下权限。

一、权限概览

  在Linux下,使用命令ls -l显示文件详细信息

[[email protected] syzhao]# ls -l
total 4848
-rwxrw-r-- 1 syzhao eng     194 Jun 15  2012 check_crc.v
-rw-rw-r-- 1 syzhao eng    3713 Jun 13  2012 cshrc.v
drwxr-xr-x 4 syzhao eng    4096 Sep 29  2013 dc_test_run
drwx------ 2 syzhao eng    4096 Jun  1  2012 Desktop
drwxr-xr-x 3 syzhao eng    4096 Jan  7  2013 fm_fw
drwxr-xr-x 4 syzhao eng    4096 Sep 29  2012 fpga
-rw-r--r-- 1 syzhao eng 4222885 Dec  1  2012 fpga_soc_top_ftc_sata.bit
-rw-r--r-- 1 syzhao eng  214513 Nov 15  2012 ftc_ddr_issue.fsdb
drwxr-xr-x 4 syzhao eng    4096 Jun  3  2013 ftc_pcs_fpga
drwxr-xr-x 3 syzhao eng    4096 May 27  2013 ftc_sata_fpga

  拿第一行来说,

-rwxrw-r--】代表文件类型和权限【1】表示i-node连接数 【syzhao】表示所有者 【eng】表示所属用户组 【194】表示大小【 Jun 15 2012】表示文件创建日期 【check_crc.v】表示文件名

  下面主要就【-rwxrw-r--】 来说一下,这里的-rwxrw-r--其实是分成四个部分的,第一个【-】是一部分代表文件类型,【-】代表是一般文件,【d】代表是目录,【l】代表链接文件。第二组【rwx】代表文件所有者权限,这三个这3个字母从左到右分别表示该身份对文件权限【r】代表是否可读【w】代表是否可写【x】代表是否可执行。出现rwx相应的字母就表示有相应的权限,出现【-】则表示该用户对该文件相应操作的权限。

  拿第三组和第四组来说,第三组是【rw-】表示该文件所属用户组eng的成员对该文件有【r】读取、【w】写的权限,没有【x】执行的权限。
  我们来看看eng组下面都有哪些人。

[[email protected]ost /etc]# cat group
eng:x:501:zhou,syzhao,sky,richard

  说明了zhou、syzhao、sky、richard这几个人对文件check_crc.v有读和写的权限,没有执行的权限。
  第四组代表Others对该文件的权限,权限根据字母可以看出,是可读不可写,不可执行,那么Others是哪些人呢?Others是除了root(root拥有最高权限)、文件所有者、文件所属用户组以外的所有用户。

  drwxr-xr-x 4 syzhao eng 4096 Sep 29 2013 dc_test_run
  拿第三行输出来说,代表syzhao对文件夹dc_test_run有读写执行的权限,eng组对文件夹有读取和执行的权限(题外话,如果对文件夹只有读取而没有执行的权限,那么也无法列出),除syzhao和eng组以外的组和用户也可以对文件夹进行访问。

二、修改权限

2.1 修改文件属性

  chown [-R] dir/file命令可以改变文件的所有者,加上-R则连递归目录下的所有文件和目录。

  

[[email protected] /]# ll |  grep saku
drwxr-xr-x.   2 root root  4096 Mar 30 12:46 saku
[[email protected] /]# chown hao /saku
[[email protected] /]# ll |  grep saku
drwxr-xr-x.   2 hao  root  4096 Mar 30 12:46 saku

  这样修改,只修改了saku文件夹的权限,里面并没有修改,里面文件的所属用户并没有改变,下面我们来修改所属组,这次我们修改文件的所属组,加上 [-R] 参数

[[email protected] /]# ll /saku/ total 4
-rw-r--r--. 1 root hao    0 Mar 30 12:55 01.txt #可以看出来,文件夹saku内的文件和目录并没有改变所属用户,依然是root。-rw-r--r--. 1 root hao    0 Mar 30 12:55 02.vim
drwxr-xr-x. 2 root hao 4096 Mar 30 12:55 soci
[[email protected] /]# chgrp -R sw_eng /saku/  #修改saku及该目录内所有文件和目录的所属用户组为sw_eng
[[email protected] /]# ll /saku/
total 4
-rw-r--r--. 1 root sw_eng    0 Mar 30 12:55 01.txt #此时,可以看到,saku目录内的文件因为上一条命令没有加递归的参数 -R,所以所属用户并没有改变,-rw-r--r--. 1 root sw_eng    0 Mar 30 12:55 02.vim #但是所属组因为加了参数的原因,目录内的所有文件和目录的所属组已经改变。drwxr-xr-x. 2 root sw_eng 4096 Mar 30 12:55 soci
[[email protected] /]# ll | grep saku
drwxr-xr-x.   3 hao  sw_eng  4096 Mar 30 12:55 saku

2.2 修改文件权限

  rwx每种权限都会有个数字,4代表r,2代表w,1代表x。每种身份(owner,group,others)的权限的数字表示是他拥有的权限所对应的数字的和。如上述代码所示:所有者root对于02.vim的权限为:r+w,可读写,转化为数字为:4 + 2= 6 (因为所有者是root,而root本身不受权限限制,其实root对该文的的权限为可读写可执行)按此方法算,文件02.vim的权限如下

Owner rw 6  
Group r 4 
Others r 4
  这样的话,我们就可以用一个三位数来表示一个文件的权限啦!例如,01.txt文件的权限是644!这样我们就可以方便的利用数字来设置一个文件的权限了。

-rwxr-----. 1 hao sw_eng 445 Feb 13 16:02 di.zip

 

  这个di.zip的文件代表数字也显而易见:740。了解了这些,我们就可以修改权限了。针对di.zip文件而言,sw部门的工程师需要去修改其中的内容,其他工程师需要读取该文件的内容,需要给sw组的人开通w权限,给Others组开通读取权限,也就是将其的权限从-rwxr-----修改为-rwxrw-r--,根据数字的规则,新的权限数字码为:764,通过命令chomd [-R]  xxx dir/file 来修改权限,这里的chmod是change mode的缩写,用来修改文件\目录的权限。

[[email protected] hao]# ll | grep di
-rwxr-----.  1 hao  sw_eng   445 Feb 13 16:02 di.zip
[[email protected] hao]# chmod 764 di.zip
[[email protected] hao]# ll | grep di
-rwxrw-r--.  1 hao  sw_eng   445 Feb 13 16:02 di.zip

  

数字权限虽然简洁,但是却不直观。Linux给我们提供了另外一种直观的符号类型权限设置方法!

由前面介绍你可以知道,文件有owner(也就是user),group,others三种身份,我们分别用 u,g,o来分别代表着三种身份,用a同时代表三种身份,用r,w,x代表三种权限,用+,-,=三种符号分别代表添加,去除以及设置某种或某些权限的动作。那么我们就可以用这几种字符组合来灵活直观的设置文件权限啦!

chmod u
g
o
a
+(添加)
-(去除)
=(设置)
r
w
x
dir/file

还是拿di.zip文件来说,项目完成了,已经不需要软件开发工程师协助和Others部门协助测试了,为了数据安全的版本一致,要收回di.zip文件的所有权限。我们用设置(对应上表的第三行)操作来进行权限的管理。

[[email protected] hao]# chmod u=r,g=---,o= di.zip  #此处---与 设为空效果一样,都是取消所有权限。
[[email protected] hao]# ll | grep di
-r--------.  1 hao  sw_eng   445 Feb 13 16:02 di.zip

  现在项目又有所新变化,要将文件权限还原,我们操作一下添加去除命令。

[[email protected] hao]# chmod u+wx,g+rw,o+r di.zip  #这里的u+wx为给u(用户)加上wx权限,给g(所属组)加上rw的权限。
[[email protected] hao]# ll | grep di
-rwxrw-r--.  1 hao  sw_eng   445 Feb 13 16:02 di.zip

  又要改回去了。

[[email protected] hao]# chmod u=r,g-rw,o=--- di.zip
[[email protected] hao]# ll | grep di
-r--------.  1 hao  sw_eng   445 Feb 13 16:02 di.zip

  权限的主要修改方法,就到这里就完成了,我本事是青睐数字的方式,大家可以选择喜爱的方法进行权限的管理,哪一种都可以,只要不要搞混了。

  需要注意的地方:1.对于文件来说,读取的优先级比较高,如果用户对文件的权限是-wx,那么你觉得他能写入东西去这个文件吗?

[[email protected] ~]$ ll |grep now.txt #注意这里的用户,我已经切换至hao了,从文件信息中可以看到,hao用户对文件有写入和执行的权限。--wx-w-r--.  1 hao  sw_eng  1447 Mar 30 14:40 now.txt
[[email protected] ~]$ cat  now.txt
cat: now.txt: Permission denied

  看见了吧,没有权限,所以在权限设置的时候尽量不要出现什么731、u=x,g=wx,o=wrx 这些很奇葩的权限。

  2.对于文件的rwx比较好理解,对于目录来说具有r权限的身份可以利用ls查看该目录下的文件名列表,不能查看文件的详细信息,具有x权限的身份可以利用cd进入该目录作为自己的工作目录,在这个目录中,你可以访问、修改你有权限的文件。所以对于目录来说,有r权限没有x权限是无法进入目录的,只有r权限,不开放x权限基本没有什么意义,所以需要读取文件夹时最好将x权限也加上。

2.3默认权限的修改

  在Linux中,新建一个文件,权限往往就固定,如何修改这个默认的权限呢,需要用到权限的掩码,umask掩码由于不太常用,本教程暂略过,有时间会将该坑填上。

图片信息,图片来自苏勇课堂

时间: 2024-09-29 17:04:53

LInux ugo权限详解的相关文章

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文件权限详解 文件和目录权限概述

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

Linux文件权限详解

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

linux 文本权限详解

文本权限 分为四段:如图 -/d 表示一段 rwx 表示一段共三段分为所属者,所属组 ,其他人当执行ls -l 或 ls -al 命令后显示的结果中,最前面的第2-10个字符是用来表示权限.第一个字符一般用来区分文件和目录: 第一段 d:表示是一个目录,事实上在ext2fs中,目录是一个特殊的文件.-:表示这是一个普通的文件.l: 表示这是一个符号链接文件,实际上它指向另一个文件.b.c:分别表示区块设备和其他的外围设备,是特殊类型的文件.s.p:这些文件关系到系统的数据结构和管道,通常很少见到

LINUX 文件权限详解

ls -l // 查看文件的权限 等价于 ll 文件的权限信息查看 -rw-rw-r-- 1 ceshi ceshi 891 Aug 8 17:28 server drwxrwxr-x 10 ceshi ceshi 4096 Aug 12 17:51 www.aa.com 开始 10个字符确定不同用户对文件的操作权限 第一个字符代表文件(-).目录(d).连接(l) 其余的字符每三个一组(rwx),读(r).写(w).执行(x) 第一组rwx:文件所有者的权限是读.写和执行 第二组rw-:与文件

CentOS \Linux文件权限详解

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

05.Linux文件权限详解

查看权限: ls -l, ll 查看工作组: 文件创建:touch filename 目录创建:mkdir dirname 修改权限: 切换用户:su root

十一、linux文件系统权限详解

对于文件系统权限,我们前面已经讲解了一部分,这里就不在重复了. 1.修改文件权限有两种,一种是数字.一种是字母 (chmod 的修改只能是属主或者root) 数字: 修改目录权限和目录内所有文件的权限 字母: 2.修改文件属性的关系(其中修改组chgrp=chown  .组) 这里有两点要注意: 1)如果一个文件是可执行文件,并且属主或者root对于这个文件只有可执行权限,那么可以通过sh命令进行执行 2)  对于往文件里面写内容,root和属主都可以在没有可写权限的情况下写入的,只要强制保存就

Linux学习之ACL权限详解(十)

Linux系统ACL权限详解 目录 ACL权限简介与开启 查看与设定ACL权限 最大有效权限与删除ACL权限 默认ACL权限和递归ACL权限 ACL权限简介与开启权限 ACL权限简介 用户权限管理始终是Linux系统管理中最重要的环节.大家对Linux/Unix的UGO权限管理方式一定不陌生,还有最常用的chmod命令. 为了实现一些比较复杂的权限管理,往往不得不创建很多的组,并加以详细的记录和区分. 有一种方法可以实现灵活的权限管理(文件的额外赋权机制)除了文件的所有者,所属组和其他人,可以对