一、链接命令
- 命令名称:ln
- 英文原意:link
- 命令所在路径:/bin/ln
- 执行权限:所有用户
- 功能描述:生成链接文件
- 语法:ln -s 【源文件】【目标文件】
-s:创建软连接,不加-s:创建硬链接
例子:
- 创建文件 /etc/issue 的软链接 /tmp/issue.soft:ln -s /etc/issue /tmp/issue.soft
-
创建文件 /etc/issue 的硬链接 /tmp/issue.hard:ln /etc/issue /tmp/issue.hard
我们可以看到:
- 软链接 前面是 l 开头的(link),而硬链接是 - 开头,表示文件
- 软链接所有者和所属组具有全部操作的权限,rwxrwxrwx;而硬链接不是。也就是软链接的前面都是 lrwxrwxrwx
- 软链接类似与 windows 的快捷方式,有一个明显的箭头指向,而指向的是源文件
- 硬链接文件除了文件名与源文件不一样,其余所有信息都是一样的。类似于 cp 复制操作。但是又和复制不一样,硬链接可以同步更新。
- 通过 ls -i 操作,来查看 文件的 i 节点。发现硬链接和源文件的 i 节点是相同的,而软链接与源文件的 i 节点是不同的
-
不允许将硬链接指向目录;不允许跨分区创建硬链接
二、权限管理命令
1、更改文件或目录权限命令:chmod
- 命令名称:chmod
- 英文原意:change the permissions mode of a file
- 命令所在路径:/bin/chmod
- 执行权限:所有用户
- 功能描述:改变文件或目录权限
- 语法:chmod 【{ugoa}{+-=}{rwx}】【文件或目录】
注意:不是每一个Linux用户都有权限更改某个文件或目录权限,能更改文件或目录权限的只有两种用户
1、文件的所有者。我们通过ls命令查看某个文件的详细信息,可以看到该文件的所有者。
2、root用户,这不用多说,root用户是linux系统权限最大的用户。别人不能干的事,root用户都能干。
对于上面的语法 chmod 【{ugoa}{+-=}{rwx}】【文件或目录】,我们要知道ugoa分别是:u:表示所有者,g:表示所属组,o:表示其他人,a:表示所有人。而rwx表示的意思如下:
字符 | 权限 | 对文件的含义 | 对目录的含义 |
---|---|---|---|
r | 读权限 | 可以查看文件内容 | 可以列出目录中的内容 |
w | 写权限 | 可以修改文件内容 | 可以在目录中创建、删除文件 |
x | 执行权限 | 可以执行文件 | 可以进入目录 |
对于【mode=421】【文件或目录】,这是我们将权限用数字表示,其中 r 表示4,w表示2,x表示1,分别是2的0次方,1次方,2次方。那么我们可以这样理解:具有 rwx 权限的数字就是 7,具有 rw- 权限的数字是 6,具有 r-- 权限的数字是 4。
示例1:我们赋予 tmp 目录下的 tmp.log 所有者 x 的权限;赋予 所属组 w 权限,其他人 w 权限。
chmod u+x /tmp/tmp.log
chmod g+w,o+w /tmp/tmp.log
将上面例子改为用 数字来操作,也就是说我们要给 tmp.log赋予的文件权限是 rwxrw-rw-,用数字表示是766。
chmod 766 tmp.log
我们还可以递归赋予权限,也就是加上 -R 参数给指定目录下的所有文件或目录赋予指定权限。
示例2:给 tmp 目录下所有文件和目录赋予 776 的权限
chmod -R 776 /tmp
2、改变文件或目录所有者命令:chown
- 命令名称:chown
- 英文原意:change file ownership
- 命令所在路径:/bin/chown
- 执行权限:所有用户
- 功能描述:改变文件或目录的所有者
- 语法:chown 【用户】【文件或目录】
注意:能更改文件或目录的所有者用户是 root
这里我们通过useradd【用户名】命令创建用户,然后通过passwd【用户名】输入密码,这两个命令后面会将。我们通过这两个命令创建 vae 用户
然后我们将tmp.log的所有者更改为 vae 用户:chown vae tmp.log
3、改变文件或目录所属组命令:chgrp
- 命令名称:chgrp
- 英文原意:change file group ownership
- 命令所在路径:/bin/chgrp
- 执行权限:所有用户
- 功能描述:改变文件或目录的所属组
- 语法: chgrp【用户组】【文件或目录】
注意:能更改文件或目录的所有者用户是 root
4、显示、设置文件的缺省权限命令:umask
- 命令名称:umask
- 英文原意:the user file-creation mask
- 命令所在路径:shell 内置命令
- 执行权限:所有用户
- 功能描述:显示、设置文件的缺省权限
- 语法: umask 【-S】
注意:可能大家不太明白这个命令的意思,我们分别执行umask和 umask -S ,如下:
其中umask 执行显示结果是 0022,第一个0表示特殊权限,后面我们会单独进行讲解有哪几种特殊权限。022表示权限的掩码值,我们用7 7 7 减去 0 2 2得到755(是每一位相减),表示的就是下面通过加上-S输出的rwxr-xr-x,这个值用数字表示就是755.
这个意思说明创建一个文件的默认权限所有者为rwx,所属组为rx,其他人为rx。也就是说创建一个新文件默认权限为 rwxr-xr-x,我们创建一个文件来验证一下:
我们发现使用touch命令创建了一个文件a.txt,然后发现权限并不是rwxr-xr-x,而是rw-r--r--。对比发现少了三个x,也就是少了可执行权限。这是为什么呢?
这是因为在Linux系统中,所有新创建的文件都是没有可执行权限的。这是出于Linux系统的一种自我保护,因为类似的病毒木马程序都是具有可执行权限的。所以在Linux系统中,新创建的文件是没有可执行权限的。
那么我们如何设置默认权限呢?比如我们想将新创建的文件权限设置为rwxr-xr--,也就是754。我们用777减去754得到023。也就是通过执行 umask 023 来完成默认权限设置。