权限管理命令
我们先简单的回忆下之前将的权限问题:
权限:所有者(u),所属组(g),其他人(o)
操作权限:读(r),写(w),执行(x)
1.chmod 改变文件或目录权限
注:只有文件所有者和root才能更改权限
语法:chmod [-选项][{ugoa}{+-=}{rwx}][文件或目录]
//这里的a就是all就是所有人
或chmod [-选项][mode=421][文件或目录]
选项:-R 递归修改(修改该目录下所有目录或文件的权限)
chmod [-选项][]mode=421][文件或目录]是通过数字来表示权限:
r:4 w:2 x:1 ----> rwx:7 rw-:6 r--:4 r-x:5 -wx:3 -w-:2 --x:1 ---:0
例如:chmod 640 suolong 就是将suolong目录的权限属性改成 drw-r-----
也可以用chmod o+w suolong来更改suolong目录的权限,更改了其他人的权限,加入了写权限
权限解读:
对于文件来说:r可以查看文件内容 cat/more/head/tail/less
w可以修改文件内容 vim
x可以执行文件 script command
对于目录来说:r可以列出目录中内容 ls
w可以在目录中创建或删除文件 touch/mkdir/rmdir /rm
x可以进入目录 cd
注:对文件有w权限,并不不能对其删除,只有当对该文件所在目录拥有w权限才能对该文件进行删除。另外r和x权限对于一个目录来说基本是成对出现的
2.chown change file ownership 改变文件或目录的所有者
语法:chown [用户][文件或目录]
例:chown yanghong suolong 将suolong目录的所有者权限改为用户yanghong
3.chgrp change file group ownership 改变文件或目录的所属组
语法:chgrp [用户组][文件或目录]
例:chgrp yanghong suolong 将目录suolong的所属组改为yanghong用户组
4.umask the user file-creation mask 显示设置文件的缺省权限
语法:umask [-S][权限数]
-S以rwx权限形式显示新建文件缺省权限
不加-S是以数字形式显示新建文件缺省权限
缺省权限即为默认权限,在不设置的前提下,目录和文件的缺省权限如下:
目录:rwx r-x r-x
文件:rw- r-- r--
umask的具体用法:
(1)先来看下输入umask -S 会返回什么结果
Linux的文件或目录默认权限在不做修改的情况下都是这个。现在我们分别创建一个文件或目录,来看一看他们的权限。
输入 mkdir wanmeishijie 结果如下
我们看到该新建目录的权限确实是rwxr-xr-x。接下来创建一个文件。
输入 touch csgo 之后结果如下:
我们会看见新建文件的权限并不是rwxr-xr-x而变成了rw-r--r--。我们仔细观察会发现,在文件的默认权限中所有权限人都没有x这个权限,这是因为在Linux中,文件的默认权限是不允许出现x的,即不能创建一个可执行文件。这是为了保护我们的系统,以免受到病毒木马的攻击
(2)再来看下直接输入umask会出现什么
同样Linux的文件或目录默认权限在不做修改的情况下,输入umask返回的都是0022。首先第一个0的意思是特殊权限,这个会在我后面的文章中详细论述,现不做叙述。后面的022即为ugo的权限。按之前的数字表示权限来说022代表的权限应该是 ----w--w-和之前说好的rwxr-xr-x完全不一样。这是为什么?我们可以来列个式子看一下:
777 rwx rwx rwx
022 --- -w- -w-
----------------------------
755 rwx r-x r-x 目录
rw- r-- r-- 文件
这样我们可以发现022(即我们将在umask后输入的数字)其实和我们全权限777成一个异或关系,即相同为0不同为1.而文件则在该条件下删除x权限。
那如果我们想把默认权限改为700我们应该输入umask数字几呢?同样我们可以列式:
777 rwx rwx rwx
---------------------------------
700 rwx - - - --- 目录
rw- --- --- 文件
根据异或关系后我们可以推出:
777 rwx rwx rwx
077 --- rwx rwx
-----------------------------
700 rwx - - - --- 目录
rw- --- --- 文件
例如: