权限管理

返回主页

一、权限管理:chmod

        命令管理:chmod
 命令英文原意:change the permissions mode of a file
 命令所在路径:/bin/chmod
        执行权限:所有用户
        功能描述:改变文件或目录权限
               语法:chmod [{ugoa}{+-=}{rwx}] [文件或目录]
                            -R :递归修改

Linux 文件权限管理

举例:

# 下面就给 “chmod.txt” 赋予各种权限,默认权限为“-rw-r--r--”
[root@converts chmod]# ll
total 0
-rw-r--r-- 1 root root 0 Jan 10 19:23 chmod.sh

# 1. 给所有者赋予“执行”权限
[root@converts chmod]# chmod u+x chmod.sh
[root@converts chmod]# ll
total 0
-rwxr--r-- 1 root root 0 Jan 10 19:23 chmod.sh

# 2. 给所属组赋予“写”权限
[root@converts chmod]# chmod g+w chmod.sh
[root@converts chmod]# ll
total 0
-rwxrw-r-- 1 root root 0 Jan 10 19:23 chmod.sh

# 3.给其它人赋予“写”权限
[root@converts chmod]# chmod o+w chmod.sh
[root@converts chmod]# ll
total 0
-rwxrw-rw- 1 root root 0 Jan 10 19:23 chmod.sh
[root@converts chmod]# 

# 4.给所有者减少执行权限
[root@converts chmod]# chmod u-x chmod.sh
[root@converts chmod]# ll
total 0
-rw-rw-rw- 1 root root 0 Jan 10 19:23 chmod.sh

# 5.给文件赋予指定的权限
[root@converts chmod]# chmod u=rwx chmod.sh
[root@converts chmod]# ll
total 0
-rwxrw-rw- 1 root root 0 Jan 10 19:23 chmod.sh
[root@converts chmod]# 

# 6.可以同时设置多个授权,使用“,”分隔
[root@converts chmod]# ll
total 0
-rwxrw-rw- 1 root root 0 Jan 10 19:23 chmod.sh
[root@converts chmod]# chmod u=r,o=x chmod.sh
[root@converts chmod]# ll
total 0
-r--rw---x 1 root root 0 Jan 10 19:23 chmod.sh
[root@converts chmod]#

除了使用“rwx” 的方式赋予权限之外, 还可以使用数字的方式赋予权限, 并且数字的方式在工作中使用的更多, 因为它比较简洁,下面就来看下如何使用数字的方式赋予权限吧。数字赋予权限的方式是:

  • r = 4
  • r = 2
  • r = 1

如上述, 使用数值的方式赋予权限, “rwx” 一 一对应的值是“421”, 下面就使用一个案例来带大家深入了解一下使用方式。

[root@converts chmod]# ll
total 0
-r--rw---x 1 root root 0 Jan 10 19:23 chmod.sh
[root@converts chmod]# chmod 777 chmod.sh 
[root@converts chmod]# ll
total 0
-rwxrwxrwx 1 root root 0 Jan 10 19:23 chmod.sh
[root@converts chmod]#

注:我们讲过, “rwx”分别代表数字“421”, 那么如果我们想赋予“rwx” 的权限的话,只需要“4+2+1=7” 即可, 上述例子:给chmod.sh赋予3个“rwx”权限, 那么只需要“chmod 777 chmod.sh ” 即可。 以此类推, 如下:

# 1. chmod.sh 赋予 “rwxr-xr-x”权限, 所以应该是“4+2+1”+“4+1”+“4+1” = 755
[root@converts chmod]# ll
total 0
-rwxrwxrwx 1 root root 0 Jan 10 19:23 chmod.sh
[root@converts chmod]# chmod 755 chmod.sh
[root@converts chmod]# ll
total 0
-rwxr-xr-x 1 root root 0 Jan 10 19:23 chmod.sh


# 2. chmod.sh 赋予 “r-x-w---x”权限, 所以应该是“4+1”+“2”+“1” = 521
[root@converts chmod]# chmod 521 chmod.sh
[root@converts chmod]# ll
total 0
-r-x-w---x 1 root root 0 Jan 10 19:23 chmod.sh
[root@converts chmod]#

看到这里, 有些小伙伴是不是觉得权限很简单,那么我来举个例子,看各位掌握的如何。

:下面有一个“dic”的文件夹,该文件夹下有一个“file.txt” 的目录 , 并且“dic”的权限为“777”,“file.txt” 没有任何权限。假设我现在登录的不是管理员, 大家说说当前登录者是否有权限删除“file.txt”文件?

Linux 文件权限管理

答案是可以的。 有些小伙伴可能就疑惑了, 为什么“file.txt”没有任何权限也可以删除呢。那是因为大家对权限理解有些许误区, 下面来看一个表格:

权限字符 权限 对文件的含义 对目录的含义
r 读权限 可以查看内容(可执行的命令:catmoreheadtailless 等等) 可以列出目录中的内容(可执行的命令:lsll 等等)
w 写权限 可以修改内容(可执行命令:vivim 可以在目录中创建、删除文件(可执行的命令:touchmkdirrmdirrm 等等)
x 执行权限 可以执行文件(例如:shell脚本command等等) 可以进入目录(可执行命令:cd 等等)

所以,根据上述表格所阐述的, 如果用户拥有一个文件夹(目录)的写权限,那么就可以删除目录下的文件权限。

warning:如果仔细观察, 一般情况下,目录的 “r” 和“x”权限是同时存在的,就如:一个用户如果拥有了“r”权限, 也就意味着可以执行ls、ll等命令, 但是如果没有“x”权限, 也就是无法进入目录,那么两者相悖的。那么单独设置“r” 或者“x”权限也就没有意义了。

二、权限管理:chown

        命令管理:chown
 命令英文原意:change file ownership
 命令所在路径:/bin/chown
        执行权限:所有用户
        功能描述:改变文件或目录的所有者
               语法:chown [用户] [文件或目录]

举例
例如将 “chown.txt” 文件的所属者改为 “pangtaiyi”(pangtaiyi 用户必须存在)

[root@converts ~]# chown pangtaiyi chown.txt

三、权限管理:chgrp

        命令管理:chgrp
 命令英文原意:change file group ownership
 命令所在路径:/bin/chgrp
        执行权限:所有用户
        功能描述:改变文件或目录的所属组
               语法:chown [用户组] [文件或目录]

举例
例如将 “chgrp.txt” 文件的所属组改为 “pangtaiyiGroup”(pangtaiyiGroup 用户组必须存在)

[root@converts ~]# chgrp pangtaiyiGroup chgrp.txt

四、权限管理:umask

        命令管理:umask
 命令英文原意:the user file-creation mask
 命令所在路径:/bin/umask
        执行权限:所有用户
        功能描述:显示、设置文件的缺省权限
               语法:umask [-S]
                                -S:以 rwx形式显示新建文件的缺省权限

举例

# 1.查询当前linux系统中的缺省权限
[root@converts umask]# umask -S
u=rwx,g=rx,o=rx

# 2.创建一个文件夹,查看其权限
[root@converts umask]# mkdir umask
[root@converts umask]# ll
total 4
drwxr-xr-x 2 root root 4096 Jan 14 21:48 umask

我们发现,新建的目录和系统的缺省权限一致, 下面试试创建一个“umask.txt”文件

# 1.创建一个 umask.txt 文件
[root@converts umask]# touch umask.txt
[root@converts umask]# ll
total 0
-rw-r--r-- 1 root root 0 Jan 14 21:42 umask.txt
[root@converts umask]#

奇怪,为什么新建的 文件权限 和系统的缺省权限不一样呢?

Linux 文件权限管理

如果仔细观察对比, 不难发现, 新建的文件权限和目录权限相差了 三个“x”权限,那是因为, 在linux 系统中, 缺省创建的文件是不可以具有可执行权限的

展开/折叠菜单
222 预览数量 2024-03-28 09:35:32 发布 时间
目录
赞数量
评论数量
返回顶部
暂无评论

暂无评论