Linux编程 17 文件权限(权限设置chmod,改变文件属主属组关系chown,chgrp)
一. 概述
如果创建了一个目录或文件,有时会需要改变它的安全性设置,在linux系统上有一些工具可以完成这任务,包括使用chmod命令改变已有默认权限,分别能对属主,属组,其它用户的权限的控制分别以读取、写入、执行3种权限来区分设置,还有使用chown,chgrp来改变默认属主属组关系。
1 . 改变权限 chmod
chmod命令用来改变文件和目录安全性设置,该命令的三种用法格式如下:
model模式参数可以使用八进制或符号模式进行安全性设置,八进制模式设置非常直观,直接用期望赋予文件的标准3位八进制权限码即可。符号模式的权限在设置上就复杂多了,就不讲了,下面来看如何读懂八进制。
1.1 八进制 模式
八进制模式是指:先取得权限(rwx)的值,然后将其转换成3位二进制值,这二进制值用一个8进制值来表示。 然后组合的3个8进制值分别代表属主,属组,其它用户的权限。
权限 |
二进制值 |
八进制值 |
描述 |
--- |
000 |
0 |
没有任何权限 |
--x |
001 |
1 |
执行权限 |
-w- |
010 |
2 |
写入权限 |
-wx |
011 |
3 |
写入和执行权限 |
r-- |
100 |
4 |
读取权限 |
r-x |
101 |
5 |
读取和执行权限 |
rw- |
110 |
6 |
读取和写入权限 |
rwx |
111 |
7 |
全部权限 |
通过上面表格说明,我们就能根据文件和目录需要的权限来组合八进制值。例如举列:
如果目录或文件的八进制,组合值为777,代表所有用户都有读,写,执行权限。
如果目录或文件的八进制,组合值为666,代表所有用户都有读,写权限。
如果目录或文件的八进制,组合值为744,代表属主有读,写,执行权限。属组有读权限,其它用户有读权限。
如果目录或文件的八进制,组合值为740,代表属主有读,写,执行权限。属组有读权限,其它用户没有任何权限。
1.2 演示文件权限
下面创建一个file1.txt文件,默认权限是:属主有读写权限,属组和其它用户有只读权限。如下图所示:
|
使用属主root用户操作file1.txt,有写读权限,如下图所示:
使用其它用户hsr,操作file1.txt, 只有读权限,如下图所示:
切换到root用户下,使用chmod命令,增加其它用户写入权限,设置如下图所示:
切换到其它用户hsr,操作file1.txt,此时有了读和写的权限,如下图所示:
2. 改变属主关系
有时需要改变文件的属主,比如:有人离职要改变属主,或者文件要改变到属主下。在linux中提供了两个命令一是chown命令用来改变文件的属主。二是chgrp命令用来改变文件的默认属组。
2.1 chown
使用chown来改变文件的属主,可以用登录名或UID来指定文件的新属主。之前在安装mysql时,使用chown -R将/usr/local/mysql目录下的所有文件和目录。属主改为了mysql用户和属组为mysql组。如下图所示:
chown的-R选项可以递归改变子目录和文件的所属关系。-h选择可以改变文件的所有符号链接文件的所属关系。
(1) 修改属主关系,在root用户下创建,默认是root属主,使用chown -R修改属主为hsr,如下图所示:
(2) 修改属主和属组关系。在root用户下创建,默认是root属组,使用chown -R修改属组为hsr, 注意hsr.hsr第二个hsr 是组名。如下图所示:
2.2 chgrp
上面使用root用户在创建文件时,默认的属组是root组,使用了chown来改变了属组,下面使用chgrp命令也可以改变默认属组,如下将file文件默认属主改为root,如下图所示
Linux编程 17 文件权限(权限设置chmod,改变文件属主属组关系chown,chgrp)的更多相关文章
- rsync 同步文件如何指定属主属组和权限
rsync daemon 同步数据时,若想同时指定权限和属主属组,可以做如下配置: [test1] uid = admin gid = admin incoming chmod = Dug=rwx,D ...
- Linux新手入门:通过chmod改变文件权限--转
前面介绍过在Linux中如何查看文件的属性,在Linux文件权限详解中我们介绍了Linux文件的三种身份和四种权限,三种身份分别为: u:文件的拥有者 g:文件所属的群组 o:其他用户 对于每个身份, ...
- chmod - 改变文件的访问权限
总揽 chmod [options] mode file... POSIX 选项: [-R] GNU 选项 (最短方式): [-cfvR] [--reference=rfile] [--help] [ ...
- Linux文件属性(属主属组权限)
Linux文件属性 Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限.为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定. ...
- linux 权限管理命令chmod、文件和目录的权限的意义
chmod /bin/chmod chmod [{ugoa}{+-=}{rwx}] [文件或目录]chmod [mode=421] [文件或目录]-R 递归修改 只有 root 和 所有者 可以修改一 ...
- ubuntu linux修改文件所属用户(owner属主)和组(groud属组、用户组)
使用chown命令可以修改文件或目录所属的用户: 命令格式:sudo chown 用户 目录或文件名 例如:sudo chown -R griduser /home/dir1 (把home目录下的d ...
- Linux文件夹权限详解
- 第一个字符代表文件(-).目录(d),链接(l) - 其余字符每3个一组(rwx),读(r).写(w).执行(x) - 第一组rwx:文件所有者的权限是读.写和执行 - 第二组rw-:与文件所有者 ...
- 修改linux文件权限命令:chmod(转)
Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁 ...
- 修改linux文件权限命令:chmod
Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容, ...
随机推荐
- union: apt command
# when you use 'dpkg -i $software' failed, you can install the dependency of this software by # this ...
- 使用EasyUI的Datagrid的Editor进行行编辑,Enter回车结束编辑,并开启新的一行。
//新增数据function add() { if (Index == undefined) { row = { move_date: '', start_time: '', end_time: '' ...
- 利用insertd查出更新记录
DROP TABLE #tableCREATE TABLE #table(CompanyID VARCHAR(20),BillNo VARCHAR(40))UPDATE dbo.SD_Inv_Move ...
- gulp打包工具
首先安装全局gulp $ npm install --global gulp 下载成功后 新建一个项目或者一个文件夹(做测试) mkdir testgulp 在该文件或者项目下下载gulp工具 $ n ...
- spring深入学习(三)-----spring容器内幕
之前都是说了怎么配置bean以及用法之类的,这篇博文来介绍下spring容器内幕. 内部容器工作机制 Spring中AbstractApplicationContext抽象类的refresh()方法是 ...
- ArcSDE
ArcSDE,即数据通路,是ArcGIS的空间数据引擎,它是在关系数据库管理系统(RDBMS)中存储和管理多用户空间数据库的通路.从空间数据管理的角度看,ArcSDE是一个连续的空间数据模型,借助这一 ...
- 计算机网络四:网卡与MAC地址
网卡与MAC地址 ㈠网卡 1.网卡定义 网卡是工作在OSI的数据链路层的网络组件,是局域网中连接计算机和传输介质(网线或WIFI信号)的接口,不仅能实现与局域网传输介质之间的物理连接和电信号匹配,还涉 ...
- 初识大数据(二. Hadoop是什么)
hadoop是一个由Apache基金会所发布的用于大规模集群上的分布式系统并行编程基础框架.目前已经是大数据领域最流行的开发架构.并且已经从HDFS.MapReduce.Hbase三大核心组件成长为一 ...
- 多个子域名前端网站调用同一个webAPI时session混用问题
session机制: 当程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这个客户端的请求里是否已包含了一个session标识 - 称为session id,如果已包含一个sess ...
- python学习,excel操作之xlsxwriter常用操作
from datetime import datetime import xlsxwriter #打开文件 workbook = xlsxwriter.Workbook('Expenses03.xls ...