博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux学习记录--文件权限
阅读量:4213 次
发布时间:2019-05-26

本文共 4263 字,大约阅读时间需要 14 分钟。

文件权限

Linux针对文件权限分为三组,即用户,用户组,其他

可通过ll(ls -l) 查看文件权限,此命令后续介绍

 

[root@localhost ~]# ll /etc/termcap

-rw-r--r--1 rootroot 807103 2007-01-07/etc/termcap

Ø  红色部分代表文件权限

Ø  黄色部分代表该文件所属用户

Ø  绿色部分代表该文件所属用户组

 

对于文件权限可分为3种(严格说并不是3种)

权限种类

描述

r

4

可读

w

2

可写

x

1

可执行

 

字符意义

文件权限相关共10个字符,其意义分别为

第1个字符:文件类型

[d]表示文件目录

[-]表示文件

[|]表示连接文件

[b]表示设备文件里的可供存储的接口设备

[c]表示设备文件里面的串行端口设备,如键盘

第2~4个字符:用户权限

第5~7个字符:用户组权限

第8~10个字符:其他用户权限

 

 

举例

-rw-r----x1  A  G1 807103 2007-01-07 /file

由上信息可看出:

该文件属于用户A,属于用户组G1

 

该文件对于用户权限为rw- 即为可读写权限

该文件对于用户组权限为r-- 即为可读权限

该文件对于其他权限为--x 即为可执行权限

 

假设A,B,C三个用户,A B属于用户组G1 ,C属于用户组G2

那么A就有拥有rw-权限

由于B属于用户组G1,因此B拥有r--权限

由于C属于用户组G2,因此C拥有--x权限

 

权限与属性的更改

chgrp:更改文件所属用户组

chown:更改文件所有者

chmod:更改文件权限

 

 

chgrp

这个命令就是change group的简称,不过要被改变的组名要在/etc/group/文件内存在才行,否则会报错

 

语法:chgrp [-R]  用户组dirname/filename

选项与参数:

-R:递归参数(recursive) 的持续更改,连同子目录下的所有文件,目录一起更改

 

举例:

[root@localhost ~]# ll install.log  //查看install.log属性-rw-r--r-- 1 root root 35014 02-14 10:29 install.log[root@localhost ~]# chgrp users install.log //更改用户组为users[root@localhost ~]# ll install.log //查看install.log属性-rw-r--r-- 1 root users 35014 02-14 10:29 install.log[root@localhost ~]# chgrp nogronp install.log //输入一个无效的组chgrp: 无效的组 “nogronp”

chown

这个命令就是change owenr的简称,不过要被改变的用户要在/etc/passwd/文件内存在才行,否则会报错

 

语法:chown[-R] 用户 文件/目录

chown[-R] 用户:组名文件/目录

选项与参数:

-R:递归参数(recursive) 的持续更改,连同子目录下的所有文件一起更改

举例:

[root@localhost ~]# ll install.log-rw-r--r-- 1 root root 35014 02-14 10:29 install.log[root@localhost ~]# chown bin install.log[root@localhost ~]# ll install.log-rw-r--r-- 1 bin root 35014 02-14 10:29 install.log have new mail in /var/spool/mail/root[root@localhost ~]# chown tkf:users install.log[root@localhost ~]# ll install.log-rw-r--r-- 1 tkf users 35014 02-14 10:29 install.log

chmod

权限设置分为2种,分别可以使用数字和符号

 

语法:chmod  [-R]  权限 文件/目录

chmod  [-R]  符号表达式文件/目录

 

chmod

u(user)

g(group)

o(other)

a(all)

+(加入)

- (除去)

=(设置)

文件或目录

 

选项与参数:

-R:递归参数(recursive) 的持续更改,连同子目录下的所有文件一起更改

 

举例

[root@localhost ~]# ll baa-rw-r--r-- 1 root root 176 2007-01-06 baa[root@localhost ~]# chmod 754 baa[root@localhost ~]# ll baa-rwxr-xr-- 1 root root 176 2007-01-06 baa[root@localhost ~]# chmod u=rw,g=x,o=x baa [root@localhost ~]# ll baa-rw---x--x 1 root root 176 2007-01-06 baa[root@localhost ~]# chmod a+w baa [root@localhost ~]# ll baa-rw--wx-wx 1 root root 176 2007-01-06 baa[root@localhost ~]#

目录与文件权限的意义

R(Read):可读取此文件的实际内容,如读取文本文件的文件内容

当你具一个目录读取r 权限。表示你可以查看该目录下的文件名结构。

W(write): 可以编辑,新增或者是修改该文件的内容(但不含删除该文件)

当你具一个目录写入w 权限。表示你可以更改该目录结构

1.      新建新的文件与目录

2.      删除已经存在的文件和目录(不论该文件的权限是什么)

3.      将以存在的文件或目录进行重命名

4.      转移该目录内的文件,目录位置

X(execute):该文件具有可以被系统执行的权限(对于目录来说X就是进入文件夹的权限)

 

举例

[root@localhost ~]# mkdir -m 000 /tmp/testdir //root 用户权限为000的 文件夹testdir[root@localhost ~]# cd /tmp/testdir/   //超级用户无权限也可进入[root@localhost testdir]# touch testfile  //创建文件[root@localhost testdir]# chown tkf . // 将文件夹testdir用户变更为tkf,以便一会切换用户操作[root@localhost testdir]# ls -ald /tmp/testdir/ ./testfile -rw-r--r-- 1 root root    0 02-19 12:59 ./testfiled--------- 2 tkf  root 4096 02-19 12:59 /tmp/testdir/[root@localhost testdir]# su tkf //切换用户[tkf@localhost testdir]$ cd ..[tkf@localhost tmp]$ ll  ./testdir/        //无r权限ls: ./testdir/: 权限不够[tkf@localhost tmp]$ chmod u+r ./testdir  //分配r权限[tkf@localhost tmp]$ ll  ./testdir/?--------- ? ? ? ?          ? testfile    //可以看到目录结构 但是因为无X权限,目录下文件属性看不到[tkf@localhost tmp]$ cd testdir/           //无x权限bash: cd: testdir/: 权限不够[tkf@localhost tmp]$ chmod u=rx ./testdir  //分配rx权限[tkf@localhost tmp]$ ll  ./testdir/    -rw-r--r-- 1 root root 0 02-19 12:59 testfile  //可以看到目录结构和文件属性[tkf@localhost tmp]$ cd testdir/[tkf@localhost testdir]$ rm -f testfile  //无W权限,不能删除目录下的文件rm: 无法删除 “testfile”: 权限不够[tkf@localhost tmp]$ chmod u=w ./testdir  //仅分配W权限[tkf@localhost tmp]$ ls -ald ./testdir/d-w------- 2 tkf root 4096 02-19 12:59 ./testdir/[tkf@localhost tmp]$ rm ./testdir/testfile //缺少X权限 因此删不了rm: 无法删除 “./testdir/testfile”: 权限不够 [tkf@localhost tmp]$ chmod u=rw ./testdir  //分配RW权限[tkf@localhost tmp]$ rm ./testdir/testfile  //缺少X权限 因此删不了rm: 无法删除 “./testdir/testfile”: 权限不够[tkf@localhost tmp]$ chmod u=wx ./testdir //分配XW权限[tkf@localhost tmp]$ rm ./testdir/testfile //可以删除文件,同时文件的用户属于root ,在tkf用户仍可以删除rm:是否删除有写保护的 一般空文件 “./testdir/testfile”? y

1.如果目录只有R权限。可以查看目录下文件结构,但是看不到文件属性,并且进入不了目录(cd)

2.如果目录有RX权限,可以查看目录下文件结构和属性,并且可以进入目录

3.要删除目录下的文件。目录至少需要WX权限

转载地址:http://ybumi.baihongyu.com/

你可能感兴趣的文章
PowerDesigner 系列 小结
查看>>
Oracle 升级10.2.0.5.4 OPatch 报错Patch 12419392 Optional component(s) missing 解决方法
查看>>
Oracle sessions,processes 和 transactions 参数 关系 说明
查看>>
RMAN 备份报错 RMAN-06207 RMAN-06208 解决方法
查看>>
[INS-35172] Target database memory (XXMB) exceeds the systems available shared memory ({0}MB) 解决方法
查看>>
深入理解 OUI(Oracle Universal Installer)
查看>>
ORA-00600:[32695], [hash aggregation can't be done] 解决方法
查看>>
Oracle SQL中使用正则表达式 执行报ORA-07445 [_intel_fast_memcpy.A()+10] 错误
查看>>
Oracle TABLE ACCESS BY INDEX ROWID 说明
查看>>
ORA-00600 [kmgs_parameter_update_timeout_1], [27072] ORA-27072 解决方法
查看>>
Oracle 11g alert log 新增消息 opiodr aborting process unknown ospid (1951) as a result of ORA-28 说明
查看>>
Linux Context , Interrupts 和 Context Switching 说明
查看>>
《Oracle数据库问题解决方案和故障排除手册》终于发售了
查看>>
Oracle alert log ALTER SYSTEM SET service_names='','SYS$SYS.KUPC$C_...' SCOPE=MEMORY SID='' 说明
查看>>
Oracle latch:library cache 导致 数据库挂起 故障
查看>>
Openfiler 配置 NFS 示例
查看>>
Oracle 11.2.0.1 RAC GRID 无法启动 : Oracle High Availability Services startup failed
查看>>
Oracle 18c 单实例安装手册 详细截图版
查看>>
Oracle Linux 6.1 + Oracle 11.2.0.1 RAC + RAW 安装文档
查看>>
Oracle 11g 新特性 -- Online Patching (Hot Patching 热补丁)说明
查看>>