在linux中更改所属用户组是使用chgrp,更改文件拥有者, chown,更改9个属性, chmod这三种常用的问题,在linxu中这三个命令就是对文件目录权限的控制命令了,下面我来介绍它们的用法与实例,

我们已经知道文件权限对于系统的安全重要性了,也知道文件权限与用户与用户组的关系了,那么,如何修改文件的权限呢?我们可以修改多少文件权限呢?其实,一个文件的权限很多。我们先介绍几个简单的,例如:用户组、拥有者、各种身份的权限等等。

• chgrp:改变文件所属用户组 。

• chown:改变文件拥有者。

• chmod:改变文件的属性、SUID等特性。

更改所属用户组, chgrp

改变文件的用户组很简单,直接用chgrp即可,这个命令就是change group(改变用户组)的缩写。这样就很好记了。不过,请记住,要改变成为的用户组名称,必须在 /etc/group里存在,否则就会显示错误。

假设以root的身份登入FC4,那么,在你的家目录内有一个install.log文件,如何改变该文件的用户组呢?假设你已经知道在 /etc/group里已经存在一个名为users的用户组,但是,testing这个用户组名字就不存在 /etc/group中了,此时改变用户组成为users与testing,会有什么现象发生呢?[root@linux ~]# chgrp [-R] dirname/filename ...

参数:

-R : 进行递归( recursive )的持续更改,即连同子目录下的所有文件、目录

都更新成为这个用户组。常常用在更改某一目录的情况。

范例:代码如下复制代码[root@linux ~]# chgrp users install.log

[root@linux ~]# ls -l

-rw-r--r-- 1 root users 68495 Jun 25 08:53 install.log

[root@linux ~]# chgrp testing install.log

chgrp: invalid group name `testing'

<== 出现错误信息~找不到这个用户组名~

发现了吗?文件的用户组被改成users了,但要改成testing的时候,就会发生错误。注意,出现错误信息,还是要查查错误信息的内容才好。

更改文件拥有者, chown

那 么,如何改变一个文件的拥有者呢?很简单。既然改变用户组是change group,那么改变拥有者就是change owner(改变拥有者)。这就是chown这个命令的用途,要注意的是,用户必须是已经存在系统中的,也就是在 /etc/passwd这个文件中有记录的用户名称才可改变。

chown的用途很多,还可以顺便直接修改用户组的名称。此外,如果要连目录下的所有子目录或文件同时更改文件拥有者的话,直接加上 -R的参数即可。我们来看看语法与范例:

[root@linux ~]# chown [-R] 账号名称 文件或目录

[root@linux ~]# chown [-R] 账号名称:用户组名称 文件或目录

参数:

-R : 进行递归( recursive )的持续更改,即连同子目录下的所有文件、目录

都更新成为这个用户组。常常用在更改某一目录的情况。

范例:代码如下复制代码[root@linux ~]# chown bin install.log

[root@linux ~]# ls -l

-rw-r--r-- 1 bin users 68495 Jun 25 08:53 install.log

[root@linux ~]# chown root:root install.log

[root@linux ~]# ls -l

-rw-r--r-- 1 root root 68495 Jun 25 08:53 install.log

我们知道如何改变文件的用户组与拥有者了,那么,什么时候要使用chown或chgrp呢?或许你会觉得奇怪吧?是的,确实有时候需要更改文件的拥有者的,最常见的例子就是在复制文件给其他人时,我们使用最简单的cp来说明好了:

[root@linux ~]# cp 来源文件 目的文件

假设今天要将 .bashrc文件复制成为 .bashrc_test,且是要给bin这个人,你可以这样做:代码如下复制代码

[root@linux ~]# cp .bashrc .bashrc_test

[root@linux ~]# ls -al .bashrc*

-rw-r--r-- 1 root root 395 Jul 4 11:45 .bashrc

-rw-r--r-- 1 root root 395 Jul 13 11:31 .bashrc_test

怎么办?.bashrc_test还是属于root所有,如此一来,即使将文件拿给bin用户了,他仍然无法修改(看属性就知道了),所以就必须修改这个文件的拥有者与用户组。

更改9个属性, chmod

文件属性的改变使用chmod命令,但是,属性的设置方法有两种,分别可以使用数字或者是符号。

• 数字类型改变文件权限

Linux文件的基本属性有9个,分别是owner/group/others组别的read/write/ excute属性,先复习一下刚刚上面提到的数据:

-rwxrwxrwx

这9个属性是三个一组。其中,可以使用数字来表示各个属性,各属性的对照表如下:

r:4

w:2

x:1

同一组(owner/group/others)的3个属性(r/w/x)是需要累加的,例如当属性为 [-rwxrwx---] 则是:代码如下复制代码

wner = rwx = 4+2+1 = 7

group = rwx = 4+2+1 = 7

thers= --- = 0+0+0 = 0

所以,等一下设置属性的更改时,该属性的数字就是770,Linux下的文件权限设置修改详解linux操作系统》(https://www.unjs.com)。更改属性的命令chmod的语法是这样的:

[root@linux ~]# chmod [-R] xyz 文件或目录

参数:

xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。

-R : 进行递归( recursive )的持续更改,即连同子目录下的所有文件、目录都更新成为这个用户组。常常用在更改某一目录的情况。

举例来说,如果要将 .bashrc这个文件所有的属性都打开,那么就发出命令:代码如下复制代码

[root@linux ~]# ls -al .bashrc

-rw-r--r-- 1 root root 395 Jul 4 11:45 .bashrc

[root@linux ~]# chmod 777 .bashrc

[root@linux ~]# ls -al .bashrc

-rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc

看到了吗?属性改变了。由于一个文件有三组属性,所以可以发现上面777为三组,而由于我们将所有的属性都打开,所以数字都相加,即“r+w+x = 4+2+1 = 7”。

如 果要将属性变成“-rwxr-xr–”呢?那么就成为 [4+2+1][4+0+1][4+0+0]=754。所以需要发出命令chmod 754 filename。最常发生的一个问题就是,常常我们以vi编辑shell的文字文件后,其属性通常是 -rw-rw-rw-,也就是666属性,如果要将它变成可执行文件,并且不要让其他人修改此文件的话,那么就需要 -rwxr-xr-x这个755的属性,所以就要使用chmod 755 test.sh。

另外,有些文件不希望被其他人看到,例如 -rwxr—–,那么就使用命令chmod 740 filename。

例题3:将 .bashrc文件的属性改回原来的 -rw-r–r–。

答:

chmod 644 .bashrc

• 符号类型改变文件权限

还 有一个改变属性的方法。从之前的介绍中可以发现,基本上就9个属性,分别是 (1)user (2)group (3)others三组。我们就可以通过u, g, o来表示三组的属性。此外,a表示all,即全部的三组。读写属性可以写成r, w, x。也就是可以使用下面的方式来看:

chmod u

g

o

a +(加入)

-(除去)

=(设置) r

w

x 文件或目录

假如我们要“设置”一个文件的属性为“-rwxr-xr-x”,基本上就是:

 user (u):具有可读、可写、可执行的权限。

 group与others (g/o):具有可读与执行的权限。

所以就是:代码如下复制代码

[root@linux ~]# chmod u=rwx,go=rx .bashrc

# 注意。那个 u=rwx,go=rx 是连在一起的,中间并没有任何空格。代码如下复制代码

[root@linux ~]# ls -al .bashrc

-rwxr-xr-x 1 root root 395 Jul 4 11:45 .bashrc

请 注意,r=rwx,og=rx这一段文字之间并没有空格隔开。那么,假如是“-rwxr-xr–”?可以使用“chmod u=rwx,g=rx,o=r filename”来设置。此外,如果不知道原先的文件属性,而只想要增加 .bashrc文件的每个人均可写入的权限,那么就可以使用:代码如下复制代码

[root@linux ~]# ls -al .bashrc

-rwxr-xr-x 1 root root 395 Jul 4 11:45 .bashrc

[root@linux ~]# chmod a+w .bashrc

[root@linux ~]# ls -al .bashrc

-rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc

而如果是要将属性去掉,而不更改其他属性呢?例如要去掉所有人的x属性,则:代码如下复制代码

[root@linux ~]# chmod a-x .bashrc

[root@linux ~]# ls -al .bashrc

-rw-rw-rw- 1 root root 395 Jul 4 11:45 .bashrc

知 道 +, -, = 的不同点了吗?+ 与 – 的状态下,只要是没有指定到的项目,则该属性“不会变动”。例如,上面的例子中,由于仅以 – 去掉x,则其他两个保持当时的值不变。多多练习一下,你就会知道如何改变属性。这在某些情况下很好用。举例来说,你想要教一个人如何让一个程序可以拥有执 行的权限,又不知道该文件原本的权限是什么,此时,利用chmod a+x filename,就可以让该程序拥有执行的权限了。很方便。

linux系统电脑的权限设置,Linux下的文件权限设置修改详解linux操作系统 -电脑资料...相关推荐

  1. Linux系统编程:获取指定目录下指定文件类型的数量

    分析 编程实现对指定目录下的指定文件类型数量的统计.这里涉及到对目录文件的打开和对目录文件下的文件的遍历. 这里主要用的2个库函数,打开目录的 opendir函数,readdir函数.对这2个库函数不 ...

  2. Linux系统快速查看CPU和内存使用情况,附各参数详解

    Linux系统中查看CPU和内存使用情况,是一个运维工程师常见的事情,下面分享一下. 目 录 1.top命令 2.ps命令 3.free命令 1.top命令 top命令是Linux下常用的性能分析工具 ...

  3. linux下bcd文件还原,BCDEDIT命令详解 | 数据恢复实验室 Data Recovery Laboratory

    案例:bcdedit添加系统启动项 使用BCDEDIT命令,编辑启动项,方便.快捷,只需记住几条命令,必要时替换即可. 以下是一个案例: 标识符 {de329298-0dd8-11e0-90b6-8a ...

  4. linux下的tar压缩解压缩命令详解,Linux下的tar压缩解压缩命令详解

    linux下tar gz bz2 tgz z等众多压缩文件的压缩与解压方法,需要的朋友可以参考下 Linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命 ...

  5. linux复现数据库,基于嵌入式Linux系统平台并可应用于监控组态软件实时数据库的设计方案详解...

    1 引言 实时数据库(real-me database, RTDB)作为组态软件设计与实现的核心内容解决了其所 应对的现代工业生产现场环境中生产数据与控制数据类型复杂多样,数据处理与事件调度时 间约束 ...

  6. 【genius_platform软件平台开发】第五十八讲:Linux系统之V4L2视频驱动-VIDIOC_REQBUFS向驱动申请帧缓冲代码详解

    VIDIOC_REQBUFS向驱动申请帧缓冲代码详解 1. 概述 2. 应用层 3. 内核驱动 3.1 vb2_ioctl_reqbufs函数 3.2 vb2_core_reqbufs函数 3.3 _ ...

  7. linux下watch常见用法,watch命令详解(linux)

    fzu 1015 土地划分(判断线段相交+求出交点+找规律) 链接:http://acm.fzu.edu.cn/problem.php?pid=1015  Problem 1015 土地划分 Acce ...

  8. linux下modprobe命令参数及用法详解--linux加载模块命令

    modprobe(module probe) 功能说明:自动处理可载入模块. 语 法:modprobe [-acdlrtvV][--help][模块文件][符号名称 = 符号值] 补充说明:modpr ...

  9. linux权限644是什么,linux系统644、755、777权限详解linux操作系统 电脑资料

    linux系统644.755.777权限详解linux操作系统 电脑资料 在linux系统中644.755.777三种权限是非常重要的一些权限了,下面我来详细的介绍644.755.777三种权限的使用 ...

最新文章

  1. es6 ... 添加属性_如何在10分钟内免费将HTTPS添加到您的网站,以及为什么您现在不止需要这样做......
  2. Fastadmin笔记
  3. SSG140 web、telnet、ssh无法访问,仅支持console
  4. 关于一些朋友想做在线教育的回复和分享
  5. 尚硅谷Docker---1、docker杂记
  6. JAVA-初步认识-第十一章-异常-概述
  7. Java9发布回顾Java 8的十大新特性
  8. 使用JFlex生成词法分析器 1:安装配置
  9. LeetCode 532. K-diff Pairs in an Array
  10. 高职计算机等级考试试题,高职院校计算机等级考试的教学与思考
  11. 054、JVM实战总结: 案例实战:每日百亿数据量的实时分析引擎,如何定位和解决频繁Full GC问题?
  12. 谁说 Java 不能用来跑 Serverless?
  13. c语言 链表_小陈的C语言笔记---链表(详细讲解基本操作和概念)
  14. 图像局部特征(四)--FAST-ER角点检测子
  15. Android应用系统签名方法
  16. 为你的网站添加一个帅气的IP签名档吧 – 教程附源码
  17. 英语语法笔记——名词性从句(三)
  18. 程序员技术入股的那些坑
  19. js判断指定日期是礼拜几
  20. 解的存在唯一性定理与逐步逼近法

热门文章

  1. 小型自动化运维--expect脚本之传递函数
  2. junit、spring浅析、ssm框架、json格式
  3. 技术:叫我怎么爱上你
  4. 如何动态为 tabstrip 中的 tab 页签指定标题
  5. 各种交换机端口安全总结(配置实例)
  6. c语言flappy bird代码,Flappy bird源代码(略吊)
  7. Linux下ar指令与静态库转动态库方法
  8. php单图上传并预览,JavaScript实现单图片上传并预览功能
  9. Flink-环境搭建
  10. Tomcat服务器响应特别慢(服务器假死)的解决办法