权限
操作系统是对用户能够执行的功能所设立的限制,主要用于约束用户能对系统所做的操作,以及内容访问的范围
为什么要有权限?
因为系统中不可能只存在一个root用户,一定会存在多个用户,为了保护每个登陆用户的隐私和工作环境,所以就有了权限。
权限与用户之间的关系?
在Linux系统中,针对文件定义了三种身份,分别是属主(owner)、属组(group)、其他人(others),每一种身份又对应三种权限,分别是可读(readable)、可写(writable)、可执行(excutable)。
用户访问文件流程如下
- 判断用户是否为文件所有者,如果是则按所有者的权限进行访问
- 判断用户是否为文件所有组成员,如果是则按组的权限进行访问
- 如果不是所有者,也不是该文件所属组,则按匿名权限进行访问
权限中的rwx分别代表什么含义?
使用chmod设定权限示例
-
方法一:ugo
[root@oldboy ~]# touch file
[root@oldboy ~]# chmod a=rwx file
[root@oldboy ~]# ll file
-rwxrwxrwx 1 root root 0 Aug 7 15:12 file
[root@oldboy ~]# chmod a=-rwx file
[root@oldboy ~]# ll file
---------- 1 root root 0 Aug 7 15:12 file
-
方法二 :number
[root@oldboy ~]# chmod 644 file
[root@oldboy ~]# ll file
-rw-r--r-- 1 root root 0 Aug 7 15:12 file
[root@oldboy ~]# chmod 600 file
[root@oldboy ~]# ll file
-rw------- 1 root root 0 Aug 7 15:12 file
#目录设定权限
[root@oldboy ~]# mkdir dir
[root@oldboy ~]# chmod 777 dir/
[root@oldboy ~]# ll -d dir/
drwxrwxrwx 2 root root 6 Aug 7 15:27 dir/
[root@oldboy ~]# chmod -R 755 dir/
[root@oldboy ~]# ll -d dir/
drwxr-xr-x 2 root root 6 Aug 7 15:27 dir/
针对 hr 部门的访问目录/home/hr 设置权限,要求如下:
- 1.root 用户和 hr 组的员工可以读、写、执行
- 2.其他用户没有任何权限
[root@oldboy ~]# groupadd hr
[root@oldboy ~]# useradd hra -G hr
[root@oldboy ~]# useradd hrb -G hr
[root@oldboy ~]# mkdir /home/hr
[root@oldboy ~]# chgrp hr /home/hr
[root@oldboy ~]# chmod 770 /home/hr
[root@oldboy ~]# ll -d /home/hr
drwxrwx--- 2 root hr 6 Aug 7 15:42 /home/hr
权限验证
- 针对文件的权限
r:能读取文件内容
w:能写入文件(不能看)
x :能执行文件(如果没有r权限,单有x没有用)
rw: 能查看文件,能编辑文件. 不能执行.不能删除,不能移动,不能复 制
rx: 能查看文件,不能编辑,能执行. 不能删除,不能移动,不能复制
rwx: 能查看文件,能编辑文件,能执行. 不能删除\移动\复制 --->使用 较少
- 针对目录的权限:
r: 具有浏览目录的权限,无法进入目录,使用ls 查看目录下的文件会 报错,但会显示文件名称, 如果使用 ls-l 只能看到文件名称,其他的 全部无法查看.
w: 什么权限也没有
x: 能进入目录,其他什么也没有
rx: 能进入目录,能查看目录下的文件,至于操作文件,需要看文件本 身的权限.
rw:
rwx: 如果目录赋予了w权限,则该目录下的文件可以复制\删除\移 动\修改
文件使用最多: rw=6 rx=5 644
目录使用最多: rx = 5 755
属主和属组变更
#chown 更改属主以及属组 -R:递归修改
#准备环境,创建文件和目录
[root@oldboy ~]# mkdir dir/test1 && touch dir/file
#示例1: 修改所属主为bin
[root@oldboy ~]# chown bin dir/
#示例2: 修改所属组为adm
[root@oldboy ~]# chown .adm dir/
#示例3: 递归修改目录及目录下的所有文件属主和属组
[root@bgx ~]# chown -R root.root dir/