【linux】循序渐进学运维-基础篇-文件权限管理

写在前面:
博主是一名投身教培事业的标准八零后,叛逆而且追求自由,昵称取自于苏轼的《水调歌头》中的“高处不胜寒”,时刻提醒自己要耐得住寂寞,受的了孤独,在技术的道路上,不畏艰难,勇往直前。
我已经将全部的linux运维体系整理到了gitee上,https://gitee.com/gaosh08/LinuxFamily
欢迎star,投稿,交流,后续还会有python系列和java系列。

权限的基础概念

本文我们来讨论一下Linux操作系统中文件的普通权限。
Linux权限是操作系统用来限制对资源访问的一种机制。
权限一般分为三种:

  • 执行

在Linux操作系统中,每个进程都是以某个身份(用户)来运行的,进程的权限与这个用户的权限一样,用户的权限越大,进程的权限就越大。

这里需要明确,文件的权限主要是针对三类对象进行定义:

owner:属主,u
 group:属组,g
 other :其它,o

每个文件针对上述三个对象,都定义了三种权限:

权限 对应的操作对象 权限说明
r 文件 文件的可读指的是可以用grep等类似的命令查看
w 文件 可以写,指的是可以用vim修改或者删除此文件
x 文件 可执行,可以以命令的形式运行
r 目录 可以对此目录使用ls查看所有内容
w 目录 可以在目录中创建文件也可以删除
x 目录 可以使用cd切换到此目录同时可以查看目录内的详细信息

这里需要单独提一下 权限的二进制与十进制的转换.如下表:

在这里插入图片描述

接下来我们看看权限管理的命令

权限管理命令

1)chmod

作用: 修改权限
用法: chmod mode file
操作符 + 添加权限 - 减少权限 = 直接给一个权限

参数:

-c : 若该文件权限确实已经更改,才显示其更改动作
-f : 若该文件权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)
--help : 显示辅助说明
--version : 显示版本

举例:

1) 查看文件的权限
[root@zmgaosh zip]# ll 
总用量 8
drwxr-xr-x 2 root root 4096 6月  20 20:26 etc
-rw-r--r-- 1 root root  685 6月  20 20:25 passwd.zip

在这个例子中,文件夹etc 的权限为
r: 4
w:2
x:1
rwx =7 r_x = 5 所以etc的权限是755
而文件passwd.zip 的权限为 644

2) 授予用户对于etc目录有rwx权限
[root@zmgaosh zip]# ll  #查看当前目录
总用量 8
drwxr-xr-x 2 root root 4096 6月  20 20:26 etc
-rw-r--r-- 1 root root  685 6月  20 20:25 passwd.zip
注意目录的权限
[root@zmgaosh zip]# ll etc/
总用量 4
-rw-r--r-- 1 root root 1317 6月  20 15:16 passwd
#查看目录里文件的权限,目前是rw-
[root@zmgaosh zip]# chmod -R u+rwx etc  #授予目录及目录里的内容所有者为rwx的权限
[root@zmgaosh zip]# ll
总用量 8
drwxr-xr-x 2 root root 4096 6月  20 20:26 etc
-rw-r--r-- 1 root root  685 6月  20 20:25 passwd.zip
[root@zmgaosh zip]# ll etc/
总用量 4
-rwxr--r-- 1 root root 1317 6月  20 15:16 passwd #可以看到所有者已经变为 rwx的权限
3) 授予所属组为rwx权限
[root@zmgaosh zip]# ll
总用量 8
drwxr-xr-x 2 root root 4096 6月  20 20:26 etc
-rw-r--r-- 1 root root  685 6月  20 20:25 passwd.zip
[root@zmgaosh zip]# ll etc
总用量 4
-rwxr--r-- 1 root root 1317 6月  20 15:16 passwd
[root@zmgaosh zip]# chmod -R g+rwx etc
[root@zmgaosh zip]# ll
总用量 8
drwxrwxr-x 2 root root 4096 6月  20 20:26 etc
-rw-r--r-- 1 root root  685 6月  20 20:25 passwd.zip
[root@zmgaosh zip]# ll etc
总用量 4
-rwxrwxr-- 1 root root 1317 6月  20 15:16 passwd
[root@zmgaosh zip]# 

结合第二个例子,这个例子就很容易理解了,可以看到文件夹和文件的所属组都变成了rwx

4) 去掉etc目录的所有者的读写权限
[root@zmgaosh zip]# chmod -R u-wx etc
[root@zmgaosh zip]# ll
总用量 8
dr--rwxr-x 2 root root 4096 6月  20 20:26 etc
-rw-r--r-- 1 root root  685 6月  20 20:25 passwd.zip
[root@zmgaosh zip]# 

5) 使用二进制的方式授予etc 目录,所有者,所属组,其他用户都为rwx权限
[root@zmgaosh zip]# chmod -R 777 etc
[root@zmgaosh zip]# ll
总用量 8
drwxrwxrwx 2 root root 4096 6月  20 20:26 etc
-rw-r--r-- 1 root root  685 6月  20 20:25 passwd.zip
[root@zmgaosh zip]# 

2)chown 命令

作用:将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用 户ID;组可以是组名或者组ID

参数:

  • -c : 显示更改的部分的信息
  • -f : 忽略错误信息
  • -h :修复符号链接
  • -v : 显示详细的处理信息
  • -R : 处理指定目录以及其子目录下的所有文件
  • –help : 显示辅助说明
  • –version : 显示版本

举例:

1) 将passwd的所有者和所有组改为xinsz
[root@zmgaosh etc]# ll
总用量 4
-rwxrwxrwx 1 root root 1317 6月  20 15:16 passwd
[root@zmgaosh etc]# chown xinsz:xinsz passwd
[root@zmgaosh etc]# ll
总用量 4
-rwxrwxrwx 1 xinsz xinsz 1317 6月  20 15:16 passwd
## 可以看到 用户组和所有者都变成了xinsz
[root@zmgaosh etc]# 

2) 将passwd的拥有者和群组的另一种方法
[root@zmgaosh etc]# chown root: passwd
[root@zmgaosh etc]# ll
总用量 4
-rwxrwxrwx 1 root root 1317 6月  20 15:16 passwd
[root@zmgaosh etc]# 

3) 只改变passwd的所属组
[root@zmgaosh etc]# chown :xinsz passwd
[root@zmgaosh etc]# ll
总用量 4
-rwxrwxrwx 1 root xinsz 1317 6月  20 15:16 passwd
[root@zmgaosh etc]# 

总结

Linux中,一切皆为文件,权限又分为普通权限,高级权限和默认权限,而今天我们只讨论了普通权限。

需要记住权限针对的三个对象: 属主,属组和其他用户
针对每个对象又有三种权限: 读,写,执行
充分理解UGO三个的含义,以及通过字母和数字来设置权限的方法。

小手一抖,点赞走起,各位的点赞就是胜寒创作的最大动力,我们下篇文章再见!

猜你喜欢

转载自blog.csdn.net/xinshuzhan/article/details/106879055