文件权限与归属管理

文件和目录的权限与归属

访问权限 ls -l命令可以查看指定文件或目录的权限。

arduino 复制代码
[root@localhost /]# ll opt          //ls -l 可以查看文件目录的属性
总用量 0
drwxr-xr-x. 2 root root 6 3月  26 2015 rh

权限格式:rwx rw- --x
r读:

  • 文件:可以看里面的内容。

  • 文件夹:可以用ls看文件夹中的文件列表。
    w 写入:

  • 文件:可以修改文件的内容。(必须要有读的权限才能对其更改)

  • 文件夹:新建文件(文件夹),删除文件(文件夹),移动文件(文件夹)。(在没有读权限下还是可以操作的)
    x 执行:

  • 文件:可以运行(命令、脚本)颜色是绿色。

  • 文件夹:执行是最小的权限,没有执行什么都做不了所以必须得有。

归属(所有权):

  1. 属组:拥有该文件或目录的组账号(文件的拥有组)
  2. 属主:拥有该文件或目录的用户账号(文件的主人,文件的拥有者,拥有最高权限)
  3. 其他人:除了上面两种

数字表示法:

读:100------4

写:010------2

执行:001------1

最高权限:111------7

将二进制转化成十进制

修改文件属性权限命令:chmod

chmod命令格式:chmod 【选项】 指明属主,属组,其他人+权限 文件

常用选项:

选项 功能
-R 递归
u 属主
g 属组
o 其他人
a 所有人
+ 加上
- 减去
= 赋予
  • chmod u+r 文件名(为属主加上读的权限)
  • chmod u-r 文件名(为属主减去读的权限)
  • chmod u+r 文件名(为属主)
  • chmod a+r 文件名(为所有人都加上读的权限)

演示:

csharp 复制代码
[root@localhost /]# ll zhutou                  //查看当前该文件的权限
-rw-r--r--. 1 root root 0 4月   7 13:53 zhutou
[root@localhost /]# chmod a+rwx zhutou        //给当前文件权限升级为777
[root@localhost /]# ll zhutou
-rwxrwxrwx. 1 root root 0 4月   7 13:53 zhutou

也可写成数字表示法,会较为方便一些

arduino 复制代码
[root@localhost /]# ll zhutou                   //查看当前该文件权限
-rw---x--x. 1 root root 0 4月   7 13:53 zhutou
[root@localhost /]# chmod 777 zhutou            //给所有人加上最高权限
[root@localhost /]# ll zhutou                   //查验
-rwxrwxrwx. 1 root root 0 4月   7 13:53 zhutou

设置文件和目录的归属chown、chgrp

设置文件属性的属主与属组

chown命令格式:

选项 功能
chown 属主 文件名 只改变文件的属主
chown :属组 文件名 只改变文件的属组
chown .属组 文件名 只改变文件的属组
chown 属主:属组 文件名 属主属组都改变
chown 属主.属组 文件名 属主属组都改变

常用选项:

-R:递归修改指定目录下所有文件、子目录的归属

演示:

chown既可以改变属主也可以改变属组

sql 复制代码
[root@localhost zhubao]# ll      //查看当前文件夹下所有文件的属性
总用量 4
-rw-r--r--. 1 root root 0 4月   8 15:04 1
-rw-r--r--. 1 root root 0 4月   8 15:04 2
-rw-r--r--. 1 root root 0 4月   8 15:04 3
-rw-r--r--. 1 root root 9 4月   8 15:05 hello

[root@localhost zhubao]# chown zhubao.zhubao 1  //将文件1的属主与属组改为zhubao
[root@localhost zhubao]# ll
总用量 4
-rw-r--r--. 1 zhubao zhubao 0 4月   8 15:04 1
-rw-r--r--. 1 root   root   0 4月   8 15:04 2
-rw-r--r--. 1 root   root   0 4月   8 15:04 3
-rw-r--r--. 1 root   root   9 4月   8 15:05 hello
sql 复制代码
[root@localhost zhubao]# chown zhutou:zhutou 2 //换一种写法得出结果相仿

[root@localhost zhubao]# ll
总用量 4
-rw-r--r--. 1 zhubao zhubao 0 4月   8 15:04 1
-rw-r--r--. 1 zhutou zhutou 0 4月   8 15:04 2
-rw-r--r--. 1 root   root   0 4月   8 15:04 3
-rw-r--r--. 1 root   root   9 4月   8 15:05 hallo
sql 复制代码
[root@localhost zhubao]# chown :guinv 3  //改变文件3的属组为guinv
[root@localhost zhubao]# ll
总用量 4
-rw-r--r--. 1 zhubao zhubao 0 4月   8 15:04 1
-rw-r--r--. 1 zhutou zhutou 0 4月   8 15:04 2
-rw-r--r--. 1 root   guinv  0 4月   8 15:04 3
-rw-r--r--. 1 root   root   9 4月   8 15:05 hallo

权限掩码umask

设置新建文件夹或目录的默认权限

csharp 复制代码
[root@localhost /]# mkdir zhutou    //在系统中创建新文件夹默认权限为755
[root@localhost /]# ll -d zhutou
drwxr-xr-x. 2 root root 6 4月   8 15:37 zhutou
csharp 复制代码
[root@localhost zhutou]# touch 11   //在系统中默认创建文件权限为644
[root@localhost zhutou]# ll 11
-rw-r--r--. 1 root root 0 4月   8 15:40 11

umask作用:

  • 控制新建的文件或者目录的权限。
  • 默认权限去除umask的权限为新建的文件
  • 规定了新建文件和新建文件夹落地权限

777(最高权限)-022(umas设置权限)=755(新建文件的默认权限)

umask查看: umask

umask设置: umask 0022

  1. 文件夹:这里的0022,第一个0为特殊权限,可以忽略,剩下的022为默认777基础上没有的权限,所以文件夹默认权限为755(rwx r-x r-x)。

  2. 文件:出于安全性考虑新建文件的最高权限为666 ,执行权限对于文件而言相对是比较危险的,所以一开始文件是没有执行权限的(相当于文件的初始权限是在最高权限777-111开始的)所以便得出666-022=644(rw- r-- r--)

umask设置格式

umask后面跟上数值可以设置umask值(umask 0000)

演示:

1.将umask改为0000创建文件夹(权限拉满)

[root@localhost 复制代码
[root@localhost zhutou]# mkdir zhubao
[root@localhost zhutou]# ll -d zhubao
drwxrwxrwx. 2 root root 6 4月   8 16:04 zhubao

2.将umask改为0123 新建文件则变为666-123=644(-rw-r--r--)文件结果遇到奇数加一偶数不变。

[root@localhost 复制代码
[root@localhost zhutou]# touch 123
[root@localhost zhutou]# ll 123
-rw-r--r--. 1 root root 0 4月   8 16:07 123

这样的umask只起到一个临时效果如果想要永久改变默认的话需写到/etc/profile文件下

csharp 复制代码
[root@localhost zhutou]# vim /etc/profile   //写入profile文件里可永久有效
[root@localhost zhutou]# umask
0123

文件的特殊权限SUID、SGID、sticky bit

三种特殊权限

  1. suid:如果拥有该权限,把当前用户当做文件的属主

  2. guid:如果拥有该权限,把当前用户当成文件的属组

  3. stike:拥有该权限的文件夹,该文件内的文件只有超级管理员和属主可以删除其他人不可以删除。

相关推荐
爱编程的小金毛球球11 分钟前
-bash: /home/xxx/anaconda3/bin/conda: No such file or directory
linux·conda·bash
Biomamba生信基地2 小时前
Linux也有百度云喔~
linux·运维·服务器·百度云
new_abc2 小时前
Ubuntu 22.04 ftp搭建
linux·运维·ubuntu
flying robot3 小时前
RPM的使用
linux
腾科张老师5 小时前
为什么要使用Ansible实现Linux管理自动化?
linux·网络·学习·自动化·ansible
想见感8 小时前
自定义集成ESXI网卡驱动
linux
IT19959 小时前
Linux笔记-对Linux环境变量的进一步认识(2024-08-09)
linux·运维·笔记·运维开发
zkf010000711 小时前
ISAAC SIM踩坑记录--ROS2相机影像发布
linux
很楠不爱12 小时前
Linux网络——自定义协议与序列化
linux·服务器·网络