文章目录
一、文件类型、权限、所属用户与组详细讲解
1.文件类型
在Linux系统下面,文件类型(常见三种类型)
1.1普通文件类型
Linux中最多的一种文件类型, 包括 纯文本文件(ASCII);二进制文件(binary);数据格式的文件(data);各种压缩文件。第一个属性为 [-]
。
1.2目录文件类型(类似win下的文件夹)
在linux中,它的思想是一切皆是文件
,目录文件也就是Windows中的目录,也就是能用 cd 命令进入的。第一个属性为 [d],例如 [drwxr-xr-x]。
1.3链接文件(类似Win下的快捷方式)
第一个属性为 [l],例如 [lrwxrwxrwx]。
2.文件权限及归属
2.1 权限分类
- 可读:
r
- 可写:
W
- 可执行(脚本,比如shell脚本):
x
- 特殊字符:
[-]
表示的是没有任何权限
2.2 归属
文件的归属
拥有者 owner u
属于组group g
其他人other 0
2.3 权限数字表示方法
rw- ->
二进制数字之和的方式
R 2^2 4
W 2^1 2
X 2^0 1
2.4 举例说明
[jingkong@muguangjingkong ~]$ ll
total 8
-rw-rw-r--. 1 jingkong jingkong 14 Apr 15 04:59 readme
-rw-rw-r--. 1 jingkong jingkong 21 Apr 15 18:54 readme.txt
[-]
代表普通文件类型
后面九个字符分为三组,表示针对不同用户的权限关系
rw-
代表的是所有者(user)拥有的权限rw-
代表的是组群(group)拥有的权限r--
代表的是其他人(other)拥有的权限
之后的jingkong jingkong
就是用户拥有者了。
《Linux下的用户、组和权限》这篇文章介绍很全面,下面是链接:
https://blog.csdn.net/qq_36119192/article/details/82228791#%E4%B8%80%EF%BC%9A%E7%94%A8%E6%88%B7%E5%92%8C%E7%BB%84%E4%BF%A1%E6%81%AF%E7%9A%84%E6%9F%A5%E7%9C%8B
二、权限命令chmod
1.简介
chmod命令用于改变linux系统文件或目录的访问权限。
用它控制文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法
;另一种是包含数字的数字设定法。
Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作。
3.使用说明
3.1 权限范围:
u :目录或者文件的当前的用户
g :目录或者文件的当前的群组
o :除了目录或者文件的当前用户或群组之外的用户或者群组
a :所有的用户及群组
3.2 权限代号:
r :读权限,用数字4表示
w :写权限,用数字2表示
x :执行权限,用数字1表示
[-] :删除权限,用数字0表示
s :特殊权限
3.3 用法
包含字母和操作符表达式的文字设定法
和包含数字的数字设定法
。
(1)文字设定法:
chmod [who] [+ | - | =] [mode] 文件名
(2)数字设定法
如果想让某个文件的归属者有“读/写”二种权限,需要把4(可读)+2(可写)=6(读/写)
。
数字设定法的一般形式为:
chmod [mode] 文件名
数字与字符对应关系如下:
r=4,w=2,x=1
若要rwx属性则4+2+1=7
若要rw-属性则4+2=6;
若要r-x属性则4+1=7。
3.4 修改文件权限
-rw-rw-r--. 1 jingkong jingkong 21 Apr 15 18:54 readme.txt
要满足这样的需求:
(1)对于同组
用户来说,仅仅可读
(2)对于其他
用户来说,既不可读也不可写
[jingkong@muguangjingkong ~]$ chmod g-w readme.txt
[jingkong@muguangjingkong ~]$ ll
total 8
-rw-rw-r--. 1 jingkong jingkong 14 Apr 15 04:59 readme
-rw-r--r--. 1 jingkong jingkong 21 Apr 15 18:54 readme.txt
[jingkong@muguangjingkong ~]$ chmod o-r readme.txt
[jingkong@muguangjingkong ~]$ ll
total 8
-rw-rw-r--. 1 jingkong jingkong 14 Apr 15 04:59 readme
-rw-r-----. 1 jingkong jingkong 21 Apr 15 18:54 readme.txt
设定为只有该文件拥有者可以执行 :
chmod u+x readme.txt
3.5 修改目录权限
加入想一次修改某个目录下所有文件的权限,包括子目录中的文件权限也要修改,也就是说,我要修改xx文件夹的权限,xx文件夹中的子文件的权限也一并修改,要使用参数-R表示启动递归处理。
- 举例说明
[root@localhost ~]# chmod 700 /home /jingkong/readme.txt #仅把readme.txt目录的权限设置为700
[root@localhost ~]# chmod -R 744 /home/jingkong #表示将整个jingkong目录与其中的文件和子目录的权限都设置为744
3.6 扩展_改变文件拥有者和所属组
(1)命令
修改文件拥有者——chown
修改文件拥有者的命令自然是chown,即change owner
。chown功能很多,不仅仅能更改文件拥有者,还可以修改文件所属组群。如果需要将某一目录下的所有文件都改变其拥有者,可以使用-R参数。
语法如下:
chown [-R] 账号名称 文件/目录
chown [-R] 账号名称:组群 文件/目录
修改文件所属组群——chgrp
修改文件所属组群很简单-chgrp命令,就是change group的缩写(我们可以利用这些来记忆命令)
语法:
chgrp 组群 文件名/目录
(2)案例
- 修改所属的组
#创建新的组和用户
[root@muguangjingkong jingkong]# groupadd groupa
[root@muguangjingkong jingkong]# groupadd groupb
[root@muguangjingkong jingkong]# useradd -g groupa kaka
[root@muguangjingkong jingkong]# su - kaka
#新建两个文件并查看所属用户和组
[kaka@muguangjingkong ~]$ touch filea
[kaka@muguangjingkong ~]$ touch fileb
[kaka@muguangjingkong ~]$ ll
total 0
-rw-r--r--. 1 kaka groupa 0 Apr 16 21:16 filea
-rw-r--r--. 1 kaka groupa 0 Apr 16 21:16 fileb
[kaka@muguangjingkong ~]$ chgrp groupb filea
chgrp: changing group of `filea': Operation not permitted
#在root用户下才能改变所属
[kaka@muguangjingkong ~]$ su
Password:
#改变 filea所属的组
[root@muguangjingkong kaka]# chgrp groupb filea
[root@muguangjingkong kaka]# ll
total 0
-rw-r--r--. 1 kaka groupb 0 Apr 16 21:16 filea
-rw-r--r--. 1 kaka groupa 0 Apr 16 21:16 fileb
[root@muguangjingkong kaka]#
- 同时修改所属组和用户
chown 用户:组 文件路径
[root@muguangjingkong kaka]# chown jingkong:jingkong /home/kaka/fileb
[root@muguangjingkong kaka]# ll
total 0
-rw-r--r--. 1 kaka groupb 0 Apr 16 21:16 filea
-rw-r--r--. 1 jingkong jingkong 0 Apr 16 21:16 fileb