1、权限基本概述
1)、什么是权限?
是指某个特定的用户具有特定的系统资源使用权力,可以理解为操作系统对用户能够执行的功能所设立的限制,主要用于约束用户能对系统所做的操作,以及内容访问的范围。
2)、为什么要有权限?
因为系统中不可能只存在一个root用户,一定会存在多个用户,为了保护每个登陆用户的隐私和工作环境,所以就有了权限。
3)、权限与用户之间的关系?
在Linux系统中,针对文件定义了三种身份,分别是属主(owner)、属组(group)、其他人(others),每一种身份又对应三种权限,分别是可读(readable)、可写(writable)、可执行(excutable)。
4)、用户访问文件流程如下
(1)、判断用户是否为文件所有者,如果是则按属主的权限进行访问;
(2)、判断用户是否为文件所有组成员,如果是则按属组的权限进行访问;
(3)、如果即不是所有者,也不是该文件所属组,则按匿名权限进行访问;
5)、权限中的rwx分别代表的含义
当查看一个文件的详细属性时,能看到每个文件都有一个9位的基本权限位,其中每三位字符为一组,分别表示属主(User)权限位,属组(Group)权限位和其他用户(Other)权限位。
字母 | 含义 | 对应权限 |
---|---|---|
r(read) | 读取权限 | 4 |
w(write) | 写入权限 | 2 |
x(execute) | 执行权限 | 1 |
-(没有权限) | 没有权限 | 0 |
PS: 如果权限位不可读、不可写、不可执行,则全部使用-作为占位符表示。
2、权限设置
1)、为什么要设定权限,我们又如何修改一个文件的权限?
a.设定权限,可以赋于某个用户或组,能够以某种方式 ,访问某个文件;
b.Linux下使用chmod命令来变更权限,root用户可以变更所有文件的权限,而普通用户仅能变更属于自己的文件;
2)、使用chmod设定权限
(1)、针对文件
设定属主(读写),属组(读),其他人(无),rw-r------ ,翻译为数字640
[root@localhost ~]# chmod 640 1.txt
[root@localhost ~]# ll 1.txt
-rw-r-----. 1 root root 0 8月 7 15:26 1.txt
设定属主(读写) 属组(无),其他人(无),rw-------- ,翻译为数字600
[root@oldboyedu opt]# chmod 600 1.txt
[root@localhost ~]# ll 1.txt
-rw-------. 1 root root 0 8月 7 15:26 1.txt
(2)、针对目录
选项: -R递归修改
[root@localhost ~]# mkdir dir
[root@localhost ~]# chmod 777 dir/ 修改目录允许所有人访问
[root@localhost ~]# chmod -R 755 dir/ 修改目录及子目录权限
[root@localhost ~]# ll -d dir/
drwxr-xr-x. 2 root root 6 8月 7 16:04 dir/
PS:针对文件最高设定为777,但是一般都设定为666;针对目录设定权限为:777。
3)、示例
(1)针对 hr 部门的访问目录/home/hr 设置权限,要求如下:
a.root 用户和 hr 组的员工可以读、写、执行
b.其他用户没有任何权限
[root@localhost ~]# groupadd hr
[root@localhost ~]# useradd hr01 -G hr
[root@localhost ~]# useradd hr02 -G hr
[root@localhost ~]# mkdir /home/hr
[root@localhost ~]# chgrp hr /home/hr
[root@localhost ~]# chmod 770 /home/hr
[root@localhost ~]# ll -d /home/hr
drwxrwx---. 2 root hr 21 8月 7 11:54 /home/hr
3、权限验证
1)、针对文件
(1)、r: 能读取文件内容 (可使用cat、head、less、tail、more查看文件内容 );
(2)、w: 能写入文件 (不能看,可使用vim写入内容);
(3)、 x: 能执行文件(如果没有r权限,单有x权限没有用);
(4)、 rw: 能查看文件,能编辑文件。不能执行,不能删除,不能移动,不能复制(常用);
(5)、 rx: 能查看文件,不能编辑,能执行。不能删除,不能移动,不能复制(常用);
(6)、 rwx: 能查看文件,能编辑文件,能执行。不能删除,不能移动,不能复制(使用较少);
2)、针对目录
(1)、r:具有浏览目录的权限,无法进入目录,使用ls查看目录下的文件会报错,但会显示文件名称, 如果使用 ls -l只能看到文件名称,其他的全部无法查看;
(2)、w:什么操作都做不了;
(3)、 x:只能进入目录,其他操作都做不了;
(4)、rx: 能进入目录,能查看目录下的文件,操作文件,需要看文件本身的权限。
(5)、rw:能看,能写,但无法进入目录
(6)、rwx: 如果目录赋予了w权限,则该目录下的文件被可以复制、删除、移 动和修改。
4、属主和属组变更
1)、在Linux中如何变更一个文件或者一个资源的属主和属组呢?
可以使用chown、chgrp命令实现。chown能设置属主和属组(常用),chgrp仅能设置属组(很少使用)。
2)、chown 更改属主以及属组。
-R:递归修改
(1)、准备环境,创建文件和目录
[root@localhost ~]# mkdir dir/test1
[root@localhost ~]# touch dir/file
(2)、修改属主为bin
[root@localhost ~]# ll -d dir/
drwxr-xr-x. 3 root root 31 8月 7 16:46 dir/
[root@localhost ~]# chown bin dir/
[root@localhost ~]# ll -d dir/
drwxr-xr-x. 3 bin root 31 8月 7 16:46 dir/
(3)、 修改属组为adm
[root@localhost ~]# chown .adm dir/
[root@localhost ~]# ll -d dir/
drwxr-xr-x. 3 bin adm 31 8月 7 16:46 dir/
(4)、递归修改目录及目录下的所有文件属主和属组
[root@localhost ~]# ll dir/file
-rw-r--r--. 1 root root 0 8月 7 16:46 dir/file
[root@localhost ~]# chown -R mjj.mjj dir/
[root@localhost ~]# ll -d dir/
drwxr-xr-x. 3 mjj mjj 31 8月 7 16:46 dir/
[root@localhost ~]# ll dir/file
-rw-r--r--. 1 mjj mjj 0 8月 7 16:46 dir/file