设为首页 收藏本站
查看: 919|回复: 0

[经验分享] Linux系列教程(五)——Linux常用命令之链接命令和权限管理命令

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-11-17 16:08:15 | 显示全部楼层 |阅读模式
  前一篇博客我们讲解了Linux文件和目录处理命令,还是老生常淡,对于新手而言,我们不需要完全记住命令的详细语法,记住该命令能完成什么功能,然后需要的时候去查就好了,用的多了我们就自然记住了。这篇博客我们接着讲Linux命令——链接命令和权限管理命令。
1、链接命令
 一、生成链接文件命令:ln
  ①、命令名称:ln
  ②、英文原意:link
  ③、命令所在路径:/bin/link
  ④、执行权限:所有用户
  ⑤、功能描述:生成链接文件
  ⑥、语法: 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
DSC0000.png  

  我们可以看到:
  第一:软链接 前面是 l 开头的(link),而硬链接是 - 开头,表示文件
  第二:软链接所有者和所属组具有全部操作的权限,rwxrwxrwx;而硬链接不是。也就是软链接的前面都是 lrwxrwxrwx
  第三:软链接类似与 windows 的快捷方式,有一个明显的箭头指向,而指向的是源文件
  第四:硬链接文件除了文件名与源文件不一样,其余所有信息都是一样的。类似于 cp 复制操作。但是又和复制不一样,硬链接可以同步更新。
  第五:通过 ls -i 操作,来查看 文件的 i 节点。发现硬链接和源文件的 i 节点是相同的,而软链接与源文件的 i 节点是不同的
  第六:不允许将硬链接指向目录;不允许跨分区创建硬链接
DSC0001.png

2、权限管理命令
 一、更改文件或目录权限命令:chmod
  ①、命令名称:chmod
  ②、英文原意:change the permissions mode of a file
  ③、命令所在路径:/bin/chmod
  ④、执行权限:所有用户
  ⑤、功能描述:改变文件或目录权限
  ⑥、语法: chmod 【{ugoa}{+-=}{rwx}】【文件或目录】
  【mode=421】【文件或目录】
  -R 递归修改
  注意:不是每一个Linux用户都有权限更改某个文件或目录权限,能更改文件或目录权限的只有两种用户
  ①、文件的所有者。我们通过ls命令查看某个文件的详细信息,可以看到该文件的所有者。
  ②、root用户,这不用多说,root用户是linux系统权限最大的用户。别人不能干的事,root用户都能干。
  对于上面的语法 chmod 【{ugoa}{+-=}{rwx}】【文件或目录】,我们要知道ugoa分别是:u:表示所有者,g:表示所属组,o:表示其他人,a:表示所有人。而rwx表示的意思如下:
DSC0002.png

  对于【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
DSC0003.png

  将上面例子改为用 数字来操作,也就是说我们要给 tmp.log赋予的文件权限是 rwxrw-rw-,用数字表示是766。chmod 766 tmp.log
DSC0004.png

  我们还可以递归赋予权限,也就是加上 -R 参数给指定目录下的所有文件或目录赋予指定权限。
  范例2:给 tmp 目录下所有文件和目录赋予 776 的权限
  chmod -R 776 /tmp
DSC0005.png

 二、改变文件或目录所有者命令:chown
  ①、命令名称:chown
  ②、英文原意:change file ownership
  ③、命令所在路径:/bin/chown
  ④、执行权限:所有用户
  ⑤、功能描述:改变文件或目录的所有者
  ⑥、语法: chmod  【用户】【文件或目录】
  注意:能更改文件或目录的所有者用户是 root
  这里我们通过useradd【用户名】命令创建用户,然后通过passwd【用户名】输入密码,这两个命令后面会将。我们通过这两个命令创建 vae 用户
DSC0006.png

  然后我们将tmp.log的所有者更改为 vae 用户:chown vae tmp.log
DSC0007.png

 三、改变文件或目录所属组命令:chgrp
  ①、命令名称:chgrp
  ②、英文原意:change file group ownership
  ③、命令所在路径:/bin/chown
  ④、执行权限:所有用户
  ⑤、功能描述:改变文件或目录的所属组
  ⑥、语法: chgrp【用户组】【文件或目录】
  注意:能更改文件或目录的所有者用户是 root
 四、显示、设置文件的缺省权限命令:umask
  ①、命令名称:umask
  ②、英文原意:the user file-creation mask
  ③、命令所在路径:shell 内置命令
  ④、执行权限:所有用户
  ⑤、功能描述:显示、设置文件的缺省权限
  ⑥、语法: umask 【-S】
  -S 以rwx形式显示新建文件的缺省权限
  注意:可能大家不太明白这个命令的意思,我们分别执行umask和 umask -S ,如下:
   DSC0008.png
  其中umask 执行显示结果是 0022,第一个0表示特殊权限,后面我们会单独进行讲解有哪几种特殊权限。022表示权限的掩码值,我们用7 7 7 减去 0 2 2得到755(是每一位相减),表示的就是下面通过加上-S输出的rwxr-xr-x,这个值用数字表示就是755.
  这个意思说明创建一个文件的默认权限所有者为rwx,所属组为rx,其他人为rx。也就是说创建一个新文件默认权限为 rwxr-xr-x,我们创建一个文件来验证一下:
DSC0009.png

  我们发现使用touch命令创建了一个文件a.txt,然后发现权限并不是rwxr-xr-x,而是rw-r--r--。对比发现少了三个x,也就是少了可执行权限。这是为什么呢?
  这是因为在Linux系统中,所有新创建的文件都是没有可执行权限的。这是出于Linux系统的一种自我保护,因为类似的病毒木马程序都是具有可执行权限的。所以在Linux系统中,新创建的文件是没有可执行权限的。
  那么我们如何设置默认权限呢?比如我们想将新创建的文件权限设置为rwxr-xr--,也就是754。我们用777减去754得到023。也就是通过执行 umask 023 来完成默认权限设置。
DSC00010.png

3、总结
  本篇文章我们讲解了链接命令ln和权限管理命令。首先对于链接命令,我们要注意 ln -s 表示创建软链接,不加-s表示创建硬链接,我们需要注意软链接和硬链接的区别,软链接类似与 windows 的快捷方式,有一个明显的箭头指向,而指向的是源文件。而硬链接我们可以想象为 cp -p +同步更新,也就是说创建的硬链接和原文件保持一样的属性,而且原文件更改了,硬链接也会更改。
  接着我们介绍了几个权限管理命令,对于权限,我们说够用就好,很多新手在进行权限操作是,上来就是 chmod 777 【文件或目录】,这样虽然省事,但是显然是不够准确的,chmod命令可以更改文件或目录权限,chown命令可以改变文件或目录所有者,chgrp命令可以改变文件或目录所属组。我们需要注意的是,后面两个命令只能由root用户来完成,而chmod命令除了root用户能完成,还有所更改文件或目录的所有者。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-407948-1-1.html 上篇帖子: java程序员必须要学会的linux命令总结 下篇帖子: 【linux配置】Linux同步网络时间
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表