一、权限管理:chmod
命令管理:chmod
命令英文原意:change the permissions mode of a file
命令所在路径:/bin/chmod
执行权限:所有用户
功能描述:改变文件或目录权限
语法:chmod [{ugoa}{+-=}{rwx}] [文件或目录]
-R :递归修改
举例:
# 下面就给 “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”文件?
答案:是可以的。 有些小伙伴可能就疑惑了, 为什么“file.txt”没有任何权限也可以删除呢。那是因为大家对权限理解有些许误区, 下面来看一个表格:
权限字符 | 权限 | 对文件的含义 | 对目录的含义 |
---|---|---|---|
r | 读权限 | 可以查看内容(可执行的命令:cat、more、head、tail、less 等等) | 可以列出目录中的内容(可执行的命令:ls、ll 等等) |
w | 写权限 | 可以修改内容(可执行命令:vi、vim) | 可以在目录中创建、删除文件(可执行的命令:touch、mkdir、rmdir、rm 等等) |
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]#
奇怪,为什么新建的 文件权限 和系统的缺省权限不一样呢?
如果仔细观察对比, 不难发现, 新建的文件权限和目录权限相差了 三个“x”权限
,那是因为, 在linux 系统中, 缺省创建的文件是不可以具有可执行权限的。
暂无评论