权限的含义
- 权限是指某个特定的用户具有特定的系统资源使用权力。
为什么要有权限
- 因为系统中不可能只存在一个root用户,一定会存在多个用户,为了保护每个登陆用户的隐私和工作环境,所以就有了权限。
权限与用户之间的关系
-
在Linux系统中,针对文件定义了三种身份,分别是属主(owner)、属组(group)、其他人(others),每一种身份又对应三种权限,分别是可读(readable)、可写(writable)、可执行(excutable)。
当一个用户访问文件流程如下
- 判断用户是否为文件所有者,如果是则按所有者的权限进行访问
- 判断用户是否为文件所有组成员,如果是则按组的权限进行访问
- 如果不是所有者,也不是该文件所属组,则按匿名权限进行访问
含义
字母 | 含义 | 对应权限 |
---|---|---|
r(read) | 读取权限 | 4 |
w(write) | 写入权限 | 2 |
x(execute) | 执行权限 | 1 |
-(没有权限) | 没有权限 | 0 |
2.权限设置示例
文件示例: rwxrw-r-- alice hr file1.txt
Q1: alice对file1文件拥有什么权限?
答:rwx
Q2: jack 对 file1.txt 文件有什么权限? 前提:jack 属于 hr 组
答:rw
Q3: tom 对 file1.txt 文件有什么权限?
答:r
方式一、number
针对文件最高设定为 777 但是一般都是666
选项: -R 递归修改
[root@oldboy ~]# touch file
[root@oldboy ~]# chmod 644 file
[root@oldboy ~]# chmod 600 file
[root@oldboy ~]# ll file
-rw------- 1 root root 0 Apr 13 16:34 file
#针对目录设定权限
[root@oldboy ~]# mkdir dir
[root@oldboy ~]# chmod 777 dir/ #修改目录允许所有人访问
[root@oldboy ~]# chmod -R 755 dir/ #修改目录及子目录权限
[root@oldboy ~]# ll -d dir/
drwxr-xr-x 2 root root 6 Apr 13 16:34 dir/
方式二、ugo
相当于数字***
[root@oldboy ~]# touch file #创建文件
[root@oldboy ~]# chmod a=rwx file #给所有人添加读写执行权限
针对目录设定权限
[root@oldboy ~]# mkdir dir
[root@oldboy ~]# chmod 777 dir/ #修改目录允许所有人访问
[root@oldboy ~]# chmod -R 755 dir/ #修改目录及子目录权限
[root@oldboy ~]# ll -d dir/
drwxr-xr-x 2 root root 6 Apr 13 16:34 dir/
1.设定属主(读写) 属组(读)权限 其他人(无) rw-r------翻译为数字 640
[root@oldboy ~]# chmod 640 1.txt
[root@oldboy ~]# ll 1.txt
-rw-r-----. 1 root root 672 Jul 30 16:17 1.txt
2、设定属主(读写) 属组(无)权限 其他人(无)
[root@oldboy ~]# chmod 600 1.txt
[root@oldboy ~]# ll 1.txt
-rw-------. 1 root root 672 Jul 30 16:17 1.txt
3、针对目录设定权限: 777
选项: -R递归修改
[root@oldboy ~]# mkdir dir
[root@oldboy ~]# chmod 777 dir/
[root@oldboy ~]# chmod -R 755 dir/
[root@oldboy ~]# ll -d dir/
drwxr-xr-x. 2 root root 6 Aug 7 16:13 dir/
例题:针对 hh 部门的访问目录/home/hh 设置权限,要求如下:
1.root 用户和 hr 组的员工可以读、写、执行
2.其他用户没有任何权限
[root@oldboy ~]# mkdir /home/hh
[root@oldboy ~]# groupadd hh
[root@oldboy ~]# useradd hh01 -G hr
[root@oldboy ~]# useradd hh02 -G hr
[root@oldboy ~]# chgrp hh /home/hh
[root@oldboy ~]# chmod 770 /home/hh
[root@oldboy ~]# ll -d /home/hh
drwxrwx---. 2 root hh 6 Aug 7 16:25 /home/hh
3、权限设置案例
在Linux中权限对文件和对目录的影响是有不同区别的。
权限 | 对文件的影响 | 对目录的影响 |
---|---|---|
读取权限(r) | 具有读取\阅读文件内容权限 | 具有浏览目录及子目录 |
写入权限(w) | 具有新增、修改文件内容的权限 | 具有增加和删除目录内文件 |
执行权限(x) | 具有执行文件的权限 | 具有访问目录的内容(取决于目录中文件权限) |
权限验证
针对文件:
r: 能读取文件内容
cat head less tail more
w: 能写入文件 (不能看)
vim
x: 能执行文件 (如果没有r权限,单有x 没有用)
rw: 能查看文件,能编辑文件. 不能执行.不能删除,不能移动,不能复
制
rx: 能查看文件,不能编辑,能执行. 不能删除,不能移动,不能复制 (2)
rwx: 能查看文件,能编辑文件,能执行. 不能删除\移动\复制 --->使用
较少
针对目录的权限:
r: 具有浏览目录的权限,无法进入目录,使用ls 查看目录下的文件会
报错,但会显示文件名称, 如果使用 ls-l 只能看到文件名称,其他的
全部无法查看.
w: 什么权限也没有
x: 能进入目录,其他什么也没有
rx: 能进入目录,能查看目录下的文件,至于操作文件,需要看文件本
身的权限.
rw:
rwx: 如果目录赋予了w权限,则该目录下的文件可以复制\删除\移
动\修改\
文件使用最多: rw=6 rx=5 644
目录使用最多: rx = 5 755
属主和属组变更
准备环境,创建文件和目录
[root@oldboy ~]# mkdir dir/test1 && touch dir/file
示例1: 修改所属主为bin
[root@oldboy ~]# chown bin dir/
示例2: 修改所属组为adm
[root@oldboy ~]# chown .adm dir/
示例3: 递归修改目录及目录下的所有文件属主和属组
[root@oldboy ~]# chown -R root.root dir/