Linux常用命令——基本权限管理

文章目录

  • 基本权限管理
    • 1、权限介绍
    • 2、权限修改
    • 3、基本权限的作用
    • 4、默认权限

基本权限管理

Linux常用命令——基本权限管理_第1张图片

1、权限介绍

在前面的Blog中说到过ls命令,通过-l的选项长列表显示出文件的内容,如下所示

[root@localhost ~]# ls -l anaconda-ks.cfg 
-rw-------. 1 root root 1742 Sep  5 19:36 anaconda-ks.cfg

在这里插入图片描述

下面就对上图这几个框做详细的说明

Linux常用命令——基本权限管理_第2张图片

以下说明从左至右

第1位:文件类型

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

第2-4位:所有者(所属主)权限

r	read 读
w	write 写
x	execute 执行

第5-7位:所属组权限 内容同上

第8-10位:其他人权限,即不属于本文件的所属者,也不属于所属组 内容同上

2、权限修改

对于权限的修改有chmod、chown、chgrp;下面就对其进行详细的解释

  • 命令名称:chmod
  • 英文原意: change file mode bits
  • 所在路径:/bin/chmod
  • 执行权限:所有用户
  • 功能描述:修改文件的权限模式

命令格式

chmod [选项] 权限模式 文件名称
选项:	
	-R	递归设置权限,即给目录其下的子文件与子目录都设置权限
	
权限模式:
	u/g/o/a +/- rwx/0-7
	用户身份。
		u	代表所有者(user)
		g	代表所属组(group)
		o	代表其他人(other)
		a	代表全部身份(all)
	赋予方式
		+	加入权限
		-	减去权限
		=	设置权限
	权限(数字权限)
		r	读取权限(read)		4
		w	写权限(write)		 2
		x	执行权限(execute)	1

案例演示

[root@localhost yichen]# ll
total 0
drwxr-xr-x. 2 root root 18 Sep  8 06:36 eichi
#对所属组增加写权限
[root@localhost yichen]# chmod g+w eichi/
[root@localhost yichen]# ll
total 0
drwxrwxr-x. 2 root root 18 Sep  8 06:36 eichi
#将所有权限改为满权限(777)
[root@localhost yichen]# chmod 777 eichi/
[root@localhost yichen]# ll
total 0
drwxrwxrwx. 2 root root 18 Sep  8 06:36 eichi
#删除所属组的写权限
[root@localhost yichen]# chmod g-w eichi/
[root@localhost yichen]# ll
total 0
drwxr-xrwx. 2 root root 18 Sep  8 06:36 eichi

常用权限

  • 644 这是文件的基本权限,代表所有者拥有读、写权限,而所属组和其他人拥有只读权限
  • 755 这是文件的执行权限和目录的基本权限,代表所有者拥有读、写、执行权限,而所属组和其他人拥有读、执行权限
  • 777 这是最大的权限,在真实的生产服务器上,不建议使用满权限,因为会造成安全隐患
[root@localhost yichen]# touch a
[root@localhost yichen]# mkdir eichi
[root@localhost yichen]# ll
total 0
-rw-r--r--. 1 root root 0 Sep  9 06:22 a     #644
drwxr-xr-x. 2 root root 6 Sep  9 06:22 eichi #755

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

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

命令格式

chown [选项] 所有者:所属组 文件或目录
选项:
	-R	递归设置权限 即对目录与其下的子文件都修改权限

案例演示

#创建文件
[root@localhost yichen]# touch eichi/{a..d}
[root@localhost yichen]# ll
total 0
-rw-r--r--. 1 root root  0 Sep  9 06:22 a
drwxr-xr-x. 2 root root 42 Sep  9 13:20 eichi

#修改eichi以及其下的文件的所属者与所属组 使用—r选项
[root@localhost yichen]# chown -R u1:u2 eichi
[root@localhost yichen]# ll
total 0
-rw-r--r--. 1 root root  0 Sep  9 06:22 a
drwxr-xr-x. 2 u1   u2   42 Sep  9 13:20 eichi
[root@localhost yichen]# ll /eichi
ls: cannot access /eichi: No such file or directory
[root@localhost yichen]# ll eichi
total 0
-rw-r--r--. 1 u1 u2 0 Sep  9 13:20 a
-rw-r--r--. 1 u1 u2 0 Sep  9 13:20 b
-rw-r--r--. 1 u1 u2 0 Sep  9 13:20 c
-rw-r--r--. 1 u1 u2 0 Sep  9 13:20 d

注意:

普通用户可以修改所有者是自己的文件的权限;不能修改文件的所有者(哪怕文件是属于这个普通用户的),只有超级用户才能修改所有者

chgrp是修改文件和目录的所属组的命令,且只能修改文件或目录的所属组;chown也可以修改组,记一个即可

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

命令格式

chown [选项] 所属组 文件或目录
选项:
	-R	递归设置权限 即对目录与其下的子文件都修改权限

案例演示

#修改a文件的所属组
[root@localhost yichen]# chgrp u1 a
[root@localhost yichen]# ll
total 0
-rw-r--r--. 1 root u1 0 Sep  9 06:22 a

#修改haha目录及其下的文件的所属组
[root@localhost yichen]# mkdir haha
[root@localhost yichen]# touch haha/{1..3}
[root@localhost yichen]# ll
total 0
-rw-r--r--. 1 root u1    0 Sep  9 06:22 a
drwxr-xr-x. 2 root root 33 Sep  9 13:33 haha
[root@localhost yichen]# chgrp -R u1 haha
[root@localhost yichen]# ll haha
total 0
-rw-r--r--. 1 root u1 0 Sep  9 13:33 1
-rw-r--r--. 1 root u1 0 Sep  9 13:33 2
-rw-r--r--. 1 root u1 0 Sep  9 13:33 3
[root@localhost yichen]# ll
total 0
-rw-r--r--. 1 root u1  0 Sep  9 06:22 a
drwxr-xr-x. 2 root u1 33 Sep  9 13:33 haha

3、基本权限的作用

权限对文件的作用

  • r(读):对文件有读(r)权限,代表可以读取文件中的数据

    文件有r,即可以对文件执行cat、more、less、head、tail等文件查看命令
    
  • w(写):对文件有写(w)权限,代表可以修改文件中的数据

    文件有w,就可以对文件执行vim、echo等修改文件数据的命令
    

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

    因为文件的文件名是存储在上级目录的block中的,如下图(截选自硬链接的详解)

Linux常用命令——基本权限管理_第3张图片

  • x(执行):对文件有执行(x)权限,代表文件拥有了执行权限,可以运行

    Linux中,文件存在x,这个文件就是执行文件了;正确执行的要素
    	1、需要执行(X)权限
    	2、文件中的代码是正确的语言代码
    对文件来说,执行(X)权限是最高权限。
    

权限对目录的作用

  • 读( r ):对目录有读(r)权限,代表可以查看目录下的内容,也就是可以查看目录下有哪些子文件和子目录。

    目录拥有了r,就可以在目录下执行ls命令,查看目录下的内容
    
  • 写(w):对目录有写(r)权限,代表可以修改目录下的数据,也就是可以在目录中新建、删除、复制、剪切子文件或子目录

    目录拥有了写w,可以在目录下执行touch、rm、cp、mv命令对目录来说,写权限是最高权限
    
  • 执行(X):目录是不能运行的,那么对目录拥有执行(x)权限,代表可以进入目录

    目录拥有了执行x,就可以对目录执行cd命令,进入目录
    

其实目录的可用权限就三个

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

解释:

要想查看目录的内容,必须要有r,单纯有r也不行,因为要进入目录必须要有x;所以最基础的查看与进入就是r_x权限,即5权限,如果还想要修改目录的内容,就增加w权限即可,即写权限

4、默认权限

说明:

  • 对于普通文件来说,最大权限位666,不允许默认有执行权限,执行权限对文件来说是高危权限
  • 对于目录来说,最大权限是777,执行仅仅代表可以进入目录,没有什么危险

默认权限为umask:022 使用的二进制的逻辑与和逻辑非联合运算得出

手工计算,用的是每个位的相减,而不是 数字的相减

举例:

普通文件
-rw- rw- rw-
---- -w- -w-
得出
-rw- r-- r--  即644

目录
drwx rwx rwx
d--- -w- -w-
得出
drwx r-x r-x  即755

案例演示

Linux常用命令——基本权限管理_第4张图片

普通用户的UID大于500;普通用户的umask是002,root用户的umask是022
临时修改umask  umask 033
永久修改vim /etc/profile 环境变量配置文件

你可能感兴趣的:(服务器运维—Linux,linux)