linux权限管理

权限位的含义

前面讲解ls命令时,我们已经知道长格式显示的第一列就是文件的权限,例如:

 ls -l install.log
 -rw-r--r--. 1 root root 24772 1月 14 18:17 install.log 

第一列的权限位如果不计算最后的.(这个点的含义我们在后面解释),则共有10位,这10位权限位的含义如图

  • 第1位代表文件类型。Linux不像Windows使用扩展名表示文件类型,而是使用权限位的第1位表示文件类型。虽然Linux文件的种类不像Windows中那么多,但是分类也不少,详细情况可以使用“info ls”命令查看。常见的文件类型。

    • -:普通文件
    • b:块设备文件。这是一种特殊设备文件,存储设备都是这种文件,如分区文件/dev/sda1就是这种文件。
    • c:字符设备文件。这也是特殊设备文件,输入设备一般都是这种文件,如鼠标、键盘等。
    • d:目录文件。Linux中一切皆文件,所以目录也是文件的一种。
    • l:软链接文件。
    • p:管道符文件。这是一种非常少见的特殊设备文件。
    • s:套接字文件。这也是一种特殊设备文件,一些服务支持Socket访问,就会产生这样的文件。
  • 第2~4位代表文件所有者的权限。

    • r:代表read,是读取权限。
      • 文件:可以读取查看
      • 目录:ls可以查看目录内容
    • w:代表write,是写权限
      • 文件:可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件
      • 目录:可以创建、删除文件,可以重命名目录
    • x:代表execute,是执行权限。
      • 文件:可以被执行
      • 目录:可以进入该目录

    如果有字母,则代表拥有对应的权限;如果是-,则代表没有对应的权限。

  • 第5~7位代表文件所属组的权限,同样是rwx权限。

  • 第8~10位代表不与文件拥有者同组的其他用户的权限,同样是rwx权限。

基本权限的作用

首先,读、写、执行权限对文件和目录的作用是不同的。

权限对文件的作用

  • 读(r):对文件有读(r)权限,代表可以读取文件中的数据。如果把权限对应到命令上,那么一旦对文件有读(r)权限,就可以对文件执行cat、more、less、head、tail等文件查看命令。

  • 写(w):对文件有写(w)权限,代表可以修改文件中的数据。如果把权限对应到命令上,那么一旦对文件有写(w)权限,就可以对文件执行vim、echo等修改文件数据的命令。

    注意:对文件有写权限,是不能删除文件本身的,只能修改文件中的数据。如果要想删除文件,则需要对文件的上级目录拥有写权限。

  • 执行(x):对文件有执行(x)权限,代表文件拥有了执行权限,可以运行。在Linux中,只要文件有执行(x)权限,这个文件就是执行文件了。只是这个文件到底能不能正确执行,不仅需要执行(x)权限,还要看文件中的代码是不是正确的语言代码。对文件来说,执行(x)权限是最高权限。

权限对目录的作用

  • 读(r):对目录有读(r)权限,代表可以查看目录下的内容,也就是可以查看目录下有哪些子文件和子目录。如果把权限对应到命令上,那么一旦对目录拥有了读(r)权限,就可以在目录下执行ls命令,查看目录下的内容了。
  • 写(w):对目录有写(r)权限,代表可以修改目录下的数据,也就是可以在目录中新建、删除、复制、剪切子文件或子目录。如果把权限对应到命令上,那么一旦对目录拥有了写(w)权限,就可以在目录下执行touch、rm、cp、mv命令。对目录来说,写(w)权限是最高权限。
  • 执行(x):目录是不能运行的,那么对目录拥有执行(x)权限,代表可以进入目录。如果把权限对应到命令上,那么一旦对目录拥有了执行(x)权限,就可以对目录执行cd命令,进入目录

目录的可用权限其实只有以下几个

  • 0:任何权限都不赋予。
  • 5:基本的目录浏览和进入权限。
  • 7:完全权限。

修改权限-chmod

通过chmod指令,可以修改文件或者目录的权限

格式:

chmod [用户身份  赋予方式  权限] 文件/目录
  • 用户身份
    • u:代表所有者(user)
    • g:代表所属组(group)
    • o:代表其他人(other)
    • a:代表全部身份(all)
  • 赋予方式
    • +:加入权限
    • -:减去权限
    • =:设置权限
  • 权限
    • r:读取权限(read)
    • w:写权限(write)
    • x:执行权限(execute)

修改权限有2种方式

通过+ - = 变更权限

chmod   u=rwx,g=rx,o=x   #给所有者rwx, 给所在组的用户 rx, 给其他人 x
chmod   o+w    #给其它用户增加w 的权限
chmod   a-x    #表示:给所有用户去掉 x权限

案例演示

# 1) 给abc文件 的所有者读写执行的权限,给所在组读执行权限,给其它组读执行权限。
chmod  u=rwx, g=rx ,o=rx   abc
# 2) 给abc文件的所有者除去执行的权限,增加组写的权限
chmod  u-x, g+w abc
# 3) 给abc文件的所有用户添加读的权限 
chmod  a+r  abc 

通过数字变更权限

数字权限的赋予方式是最简单的,但是不如之前的字母权限好记、直观。我们来看看这些数字权限的含义。

  • 4:代表“r”权限。
  • 2:代表“w”权限。
  • 1:代表“x”权限。

像rwx=4+2+1=7

常用权限数字权限的赋予方式更加简单,但是需要用户对这几个数字更加熟悉。其实常用权限也并不多,只有如下几个。

  • 644:这是文件的基本权限,代表所有者拥有读、写权限,而所属组和其他人拥有只读权限。
  • 755:这是文件的执行权限和目录的基本权限,代表所有者拥有读、写和执行权限,而所属组和其他人拥有读和执行权限。
  • 777:这是最大权限。在实际的生产服务器中,要尽力避免给文件或目录赋予这样的权限,这会造成一定的安全隐患。

chmod u=rwx,g=rx,o=x 文件/目录

相当于

chmod 751 文件/目录

案例演示

#将 /home/abc.txt 文件的权限修改成  rwxr-xr-x, 使用给数字的方式实现:

Chmod  u=rwx, g=rx, o=rx /home/abc.txt
Chmod 755 /home/abc.txt

修改所有者和所属组

chown

命令chown是修改文件和目录的所有者和所属组的命令

其基本信息如下

  • 命令名称:chown
  • 英文原意:change file owner and group。
  • 所在路径:/bin/chown。
  • 执行权限:所有用户。
  • 功能描述:修改文件和目录的所有者和所属组
 chown [选项] 所有者:所属组文件或目录选项
 	-R:递归设置权限,也就是给子目录中的所有文件设置权限
  • 普通用户不能修改文件的所有者,哪怕自己是这个文件的所有者也不行。
  • 普通用户可以修改所有者是自己的文件的权限。

案例演示:

#将 /home/abc.txt 文件的所有者修改成 tom
chown  tom  /home/abc.txt
#将 /home/kkk 目录下所有的文件和目录的所有者都修改成tom 
chown –R tom  /home/kkk
#将home下的所有文件和目录的所有者都改成 tom,将所在组改成police
chown –R  tom:police   /home/ 

chgrp

chgrp是修改文件和目录的所属组的命令

基本信息如下

  • 命令名称:chgrp
  • 英文原意:change group ownership
  • 所在路径:/bin/chgrp
  • 执行权限:所有用户
  • 功能描述:修改文件和目录的所属组。
chgrp newgroup file 

示例

#将 /home/abc.txt 文件的所在组修改成 shaolin (少林)
chgrp  shaolin  /home/abc.txt
#将 /home/kkk 目录下所有的文件和目录的所在组都修改成 shaolin(少林)
chgrp  -R  shaolin /home/kkk
posted @   至安  阅读(17)  评论(0)    收藏  举报
点击右上角即可分享
微信分享提示