5.2.2如何改变文件属性与权限

简介: 5.2.2如何改变文件属性与权限

常用于群组、拥有者、各种身份的权限之修改的指令,如下所示:

改变一个文件的群组很简单,直接chgrp来改变,指令就是change group。要被改变的群组名称必须要在/etc/group文件内存在才行,否则就会显示错误。


假设你已经是root的身份了,那么在你的主文件夹内有一个名为 initial-setup-ks.cfg 的文件,如何将该文件的群组改变一下呢?假设你已经知道在/etc/group里面已经存在一个名为users的群组, 但是testing这个群组名字就不存在/etc/group当中了,此时改变群组成为users与testing分别会有什么现象发生呢?

文件的群组被改成users了,但是要改成testing的时候, 就会发生错误。发生错误讯息还是要努力的查一查错误讯息的内容才好! 将他英文翻译成为中文,就知道问题出在哪里了。


改变文件拥有者, chown


如何改变一个文件的拥有者呢?改变群组是change group,那么改变拥有者就是change owner,这就是chown这个指令的用途,要注意的是, 使用者必须是已经存在系统中的帐号,也就是在/etc/passwd 这个文件中有纪录的使用者名称才能改变。


chown的用途还满多的,他还可以顺便直接修改群组的名称呢!此外,如果要连目录下的所有次目录或文件同时更改文件拥有者的话,直接加上 -R 的选项即可!我们来看看语法与范例:

复制文件给其他人,使用最简单的cp指令来说明:

如果要将.bashrc这个文件拷贝成为.bashrc_test文件名,且是要给bin这个人,你可以这样做:

由于复制(cp)会复制执行者的属性与权限,所以,.bashrc_test还是属于root所拥有,因此即使将文件拿给bin这个使用者,仍然无法修改,所以就必须要将这个文件的拥有者与群组修改一下。


改变权限,chmod


文件权限的改变使用的是chmod这个指令,但是,权限的设置方法有两种, 分别可以使用数字或者是符号来进行权限的变更。


数字类型改变文件权限


Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限, 先复习一下刚刚上面提到的数据:文件的权限字符为:“-rwxrwxrwx”, 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:


> r:4 > w:2 > x:1


每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx---] 分数则是:


> owner = rwx = 4+2+1 = 7 > group = rwx = 4+2+1 = 7 > others= --- = 0+0+0 = 0


所以等一下我们设置权限的变更时,该文件的权限数字就是770。变更权限的指令chmod的语法是这样的:

举例来说,如果要将.bashrc这个文件所有的权限都设置启用,那么就下达:

那如果要将权限变成“ -rwxr-xr-- ”呢?那么权限的分数就成为 [4+2+1][4+0+1][4+0+0]=754 。所以你需要下达“ chmod 754 filename”。 另外,在实际的系统运行中最常发生的一个问题就是,常常我们以vim编辑一个shell的文字批处理文件后,他的权限通常是 -rw-rw-r-- 也就是664, 如果要将该文件变成可可执行文件,并且不要让其他人修改此一文件的话, 那么就需要-rwxr-xr-x这样的权限,此时就得要下达:“ chmod 755test.sh ”的指令。


另外,如果有些文件你不希望被其他人看到,那么应该将文件的权限设置为例如:“-rwxr-----”,那就下达“ chmod 740 filename ”。


符号类型改变文件权限:


九个权限分别是(1)user (2)group (3)others三种身份。可以借由u, g, o来代表三种身份的权限。a 则代表 all 亦即全部的身份,那么读写的权限就可以写成r, w, x。也就是可以使用下面的方式来看:

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


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


group 与 others (g/o):具有可读与执行的权限。 所以就是:

如果是“-rwxr-xr--",可以使用“ chmod u=rwx,g=rx,o=r filename ”来设置。此外,如果我不知道原先的文件属性,而我只想要增加.bashrc这个文件的每个人均可写入的权限, 那么我就可以使用:

而如果是要将权限去掉而不更动其他已存在的权限呢?例如要拿掉全部人的可执行权限,则:s


相关文章
|
2月前
|
Linux 计算机视觉 C++
【解决方案】Building wheel for opencv-python:安装卡顿的原因与解决方案
当你安装OpenCV时,命令行停在Building wheel for opencv-python (PEP 517) ... -似乎卡住了。这并非程序假死,而是其编译耗时巨大。本文将揭示原因,并提供优化安装体验的实用方法。
414 88
|
11月前
|
数据采集 人工智能 监控
揭秘数据治理:七步工作法&十大准则全解析
数据治理的“七步工作法”与“十大准则”为企业构建科学、系统、高效的数据治理体系提供了重要的指导和借鉴。企业应结合自身实际情况,灵活运用这些方法和准则,充分挖掘数据潜能,赋能业务创新,实现数字化转型的稳健推进。
|
10月前
|
存储 NoSQL 关系型数据库
Redis的ZSet底层数据结构,ZSet类型全面解析
Redis的ZSet底层数据结构,ZSet类型全面解析;应用场景、底层结构、常用命令;压缩列表ZipList、跳表SkipList;B+树与跳表对比,MySQL为什么使用B+树;ZSet为什么用跳表,而不是B+树、红黑树、二叉树
|
IDE Linux 开发工具
Python安装与配置
Python安装与配置
273 0
|
JSON API 数据格式
python对话通义千问
python对话通义千问
2784 1
|
存储 编译器 C语言
C语言——详解函数栈帧的创建和销毁
C语言——详解函数栈帧的创建和销毁
|
存储 Ubuntu Shell
3D打印树莓派4B外壳—内置UPS和统计显示信息
3D打印树莓派4B外壳—内置UPS和统计显示信息
804 0
3D打印树莓派4B外壳—内置UPS和统计显示信息
|
弹性计算
阿里云服务器配置不够可以升级CPU内存带宽磁盘均可升级配置
阿里云服务器支持按需升降配,购买阿里云ECS云服务器不用担心服务器配置高低的问题,如果后续使用过程中云服务器配置不够或者过高,可以使用控制台升降配功能来调整云服务器配置:
|
弹性计算 Oracle 关系型数据库
从零到一上手玩转云服务器
从一开始什么都不了解的“新人”,到简单的登录服务器,从学会登录服务器到搭建LAMP环境、部署MySQL数据库以及使用PolarDB和ECS搭建门户网站。每一步的学习时间可能不算长,但却非常的详细,想到于是手把手的一点一点的教学。特别是还安排了一次线上直播讲解,当然,还有最初便创建了交流群,使得可以在群里和群友交流学习。
292 1
从零到一上手玩转云服务器
|
敏捷开发 架构师 Java
各种 Java Web 开发人员的通用工具
本文主要介绍Java程序员应该在2019年学习的一些基本和高级工具。如果你是一位经验丰富的Java开发人员,你可能对这些工具很熟悉,但如果不是,现在就是是开始学习这些工具的好时机。