Linux权限管理
Linux权限管理
1.什么是权限?
权限主要用来约束用户对系统所做的操.或者说,权限是指某个特殊的权力.
2.为什么要使用权限?
因为系统中不可能只有一个用户,一定会存在多个用户,为了保护每个登录用户的隐私和工作环境
3.权限与用户之间的关系?
在Linux系统中,针对文件定义了三种身份,分别是属主(owner)、属组(group)、其他人(others),每一种身份又对应三种权限,分别是可读(readable)、可写(writable)、可执行(excutable)
当一个用户访问文件流程如下:
1) 判断用户是否为文件所有者,如果是则按所有者的权限进行访问
2) 判断用户是否为文件所有组成员,如果是则按组的权限进行访问
3) 如果不是所有者,也不是该文件所属组,则按匿名权限进行访问
4.权限中的rwx是干什么的?
当我们使用ls -l查看一个文件的详细属性时,能看到每个文件都有一个9位基本权限位,比如: rwxr-xr-x其中每三位字符为一组,分别表示属主权限位,属组权限位,匿名权限位。
linux中基本权限位则是使用这9位字符来表示,主要控制文件属主(User)、属组(Group)、其他用户(Other)
| 字母 | 含义 | 对应权限 |
|---|---|---|
| r(read) | 读取权限 | 4 |
| w(write) | 写入权限 | 2 |
| x(execute) | 执行权限 | 1 |
| -(没有权限) | 没有权限 | 0 |
PS: 如果权限位不可读、不可写、不可执行,则全部使用-作为占位符表示。
5.验证权限rwx对文件和对目录的含义?
[root@web ~]# ll
-rw-r--r--. 1 root root 58112885 3月 13 09:25 access-2020-03-12.log
1.该access-2020-03-12.log 被root用户拥有,root组所拥有。
root用户对其有什么权限? 权限的前3位
root组对其文件有什么权限?中间3位字符
其他人对该文件有什么权限? 最后3个字符
2.root用户对拥有的文件有什么权限呢? rw- 读和写
3.root组对拥有的文件有什么权限呢? r-- 读()
文件示例: rwxrw-r-- alice hr file1.txt
Q1: alice对file1文件拥有什么权限?
Q2: jack 对 file1.txt 文件有什么权限? 前提:jack 属于 hr 组
Q3: tom 对 file1.txt 文件有什么权限?
6.如何变更一个文件至其他用户? (实际生产使用例子)
方式一: ugo
[root@web ~]# touch file #创建文件
[root@web ~]# chmod a=rwx file #给所有人添加读写执行权限
[root@web ~]# chmod a=-rwx file #取消所有的权限
[root@web ~]# chmod u=rwx,g=rw,o=- file #属主读写执行,属组读写,其他人无权限
[root@web ~]# chmod ug=rwx,o=r file #属主属组读写执行,其他人读权限
[root@web ~]# ll file
-rwxrw-r-- 1 root root 0 Apr 13 03:29 file
方式二、number 3个身份 user=7(r+w+x) group=4(r) other=1(x)
#选项: -R递归修改
[root@web ~]# touch file
[root@web ~]# chmod 644 file user(rw-) group(r--) other(r--)
[root@web ~]# chmod 600 file user(rw-) group(---) other(---)
[root@web ~]# ll file
-rw------- 1 root root 0 Apr 13 03:29 file
#针对目录设定权限
[root@web ~]# mkdir dir
[root@web ~]# chmod 777 dir/ #修改目录允许所有人访问
[root@web ~]# chmod -R 755 dir/ #修改目录及子目录权限
[root@web ~]# ll -d dir/
drwxr-xr-x 2 root root 6 Apr 13 03:34 dir/
3.权限设置案例
针对 hr 部门的访问目录/home/hr 设置权限,要求如下:
1.root 用户和 hr 组的员工可以读、写、执行
2.其他用户没有任何权限
[root@web ~]# groupadd hr
[root@web ~]# useradd hr01 -G hr
[root@web ~]# useradd hr02 -G hr
[root@web ~]# useradd hr03
[root@web ~]# mkdir /home/hr
[root@web ~]# chgrp hr /home/hr
[root@web ~]# chmod 770 /home/hr
[root@web ~]# ll -d /home/hr
drwxrwx--- 2 root hr 6 Apr 13 03:26 /home/hr
hr01和hr02都能完成如下操作
touch /home/hr/file
ll /home/hr
hr03: 他不会这个目录的所属主,也不是hr组的成员,所以按照其他权限的身份去访问:
其他人的权限身份 --- ,所以 hr03 没有任何的权限
hr03用户无法进入 /home/hr 也无法 ls /home/hr 浏览
jack-->oldboy组的成员: /home/hr
因为jack用户,既不是属主身份,也不是他的属组身份,所以就按照其他人的身份访问,就要受到其他人权限约束
PS:权限中的rwx对文件的影响:
读取权限(r)具有读取\阅读文件内容权限
1.只能使用查看类命令cat、head、tail、less、more
写入权限(w)具有新增、修改文件内容的权限
1.使用vim编辑会提示权限拒绝, 但可强制保存,会覆盖文件的所有内容
2.使用echo命令重定向的方式可以往文件内写入数据, >>可以进行追加
3.不能删除文件,因为删除文件看的不是文件的属性, 需要看上级目录是否有w的权限
执行权限(x)具有执行文件的权限
1.执行权限什么用都没有
2.如果普通用户需要执行文件,需要配合r权限 rx (命令) rw(配置文件) r(单纯的普通只看不改不执行)
PS: 总结rwx对目录的影响
读取权限(r),如果目录只有r权限: 具有浏览目录及子目录权限
1.可以使用ls命令浏览目录及子目录, 但同时也会提示权限拒绝
2.使用ls -l命令浏览目录及子目录,文件属性会带问号,并且只能看到文件名
总结: 目录只有r权限,仅仅只能浏览内的文件名,无其他操作权限
写入权限(w),如果目录只有w权限: 具有增加、删除或修改目录内文件名权限(需要x权限配合)
PS: 如果目录有w权限, 可以在目录内创建文件, 删除文件(跟文件本身权限无关)
不能进入目录、不能复制目录、不能删除目录、不能移动目录
执行权限(x),如果目录只有x权限
1.只能进入目录
2.不能浏览、复制、移动、删除
7.Linux权限总结与注意事项
目录: 给予rx
1.拥有进入该目录的权限
2.如果想操作该目录下文件,那么就取决于该文件是否允许对应的用户进行操作
3.无法对该目录进行新增和删除文件
rx 目录
rw 文件(配置)
rx 文件(脚本)
r 文件(重要的文件,只能看,不能改,也不能执行。)
8.属主属组设置
chown:
-R 递归
1.变更文件的属主和属组
[root@web ~]# chown kk.kk access-2020-03-12.log
[root@web ~]# ll access-2020-03-12.log
-rw-r--r--. 1 kk kk 58112885 3月 13 09:25 access-2020-03-12.log
2.仅变更文件的属组
[root@web ~]# chown .root access-2020-03-12.log
[root@web ~]# ll access-2020-03-12.log
-rw-r--r--. 1 kk root 58112885 3月 13 09:25 access-2020-03-12.log
3.使用chgrp直接变更文件的属组(只能是属组,不能是其他)
[root@web ~]# chgrp kk access-2020-03-12.log
[root@web ~]# ll access-2020-03-12.log
-rw-r--r--. 1 kk kk 58112885 3月 13 09:25 access-2020-03-12.log
浙公网安备 33010602011771号