前言:
本章将介绍Linux操作系统的权限管理,方便大家了解linux的使用。
目录
1. 什么是权限
日常生活中的权限:
在我们日常的生活中,我们所接触的权限有,例如:某某视频软件,有的视频是需要vip客户才能观看,普通用户却看不了,这就是权限。
到底什么是权限?(重点)
- 约束人的
- 需要对应的事物具有特定的属性
2. 权限管理
Linux的权限分为两种:
- (1)用户的权限
- (2)文件的权限
2.1 Linux的用户权限
- Linux下有两种用户:超级用户(root)、普通用户(user)
- 超级用户: 可以再linux系统下做任何事情,不受限制
- 普通用户: 在linux下做有限的事情
超级用户的命令提示符是 “ # ” ,普通用户的命令提示符是 “ $ ”
其中超级用户root,其权限是最高的,他可以为所欲为,他可以下载一些程序为所有子用户使用,但是其他子用户却不行,子用户想切到root账号,必须输入密码,root切到子用户是直接进的。
同时还可以以子用户的身份对其文件操作,神不知鬼不觉间实现偷鸡换蛋,而且root无视子用户的所有权限。
2.2 Linux的文件权限
Linux系统不是以文件名 “ 后缀 ” 区分文件类型的,而是通过LL指令,显示的 “ 第一列的第一个字符 ”表明该文件的文件类型。。
2.2 Linux的文件分类
- : 普通文件,文本,源代码,可执行程序,第三方动静态库等
d: 目录文件
l: 链接文件
p: 管道文件
b: 块设备文件,磁盘
c: 字符设备文件
注意:
- Linux不以文件后缀区分文件,并不代表gcc这样的编译器不做要求,在系统上跑的工具需要后缀。
- Linux不以后缀区分文件类型,也可以成Linux并不排斥以后缀作为文件类型。
2.3 文件的访问权限
Linux中人(文件访问者)分为三类:
1.文件的拥有者:u —User
2.文件的所属组:g—Group
3.文件的其他用户:o—Others
Linux中,文件的权限属性,分:
- r(read–可读):
- w(write - 可写)
- x(execute - 可执行)
---- | Read | Write | Execute |
---|---|---|---|
对文件而言 | 具有读取文件内容的权限 | 具有修改文件内容的权限 | 具有执行文件的权限 |
对目录而言 | 具有浏览该目录下文件列表的权限 | 具有删除/移动目录下文件的权限 | 具有进入目录的权限 |
“—”表示不具有该项权限
为什么会有所属组的概念:
当几个组共同开发一个项目的时候,就会在同一个服务器上共同实现,那么有的文件内容需要组内互相通气,但是又不想让别的组知道本组的文件内容,就有了所属组的概念。
所属组是为了在linux中为了协同,在组内公开,区域性公开,而不是暴露给所有人。
2.4文件访问权限的设置方法
- chmod对文件权限的修改
功能: 设置文件的访问权限
格式: chmod [参数] 权限 文件名
方法一: 用户表示符+/-=权限字符
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户
实例:
chmod a+x /home/abc.txt
方法二: 三位8进制数字
实例:
# chmod 664 /home/abc.txt
# chmod 640 /home/abc.txt
- Chown
文件的创建者和文件的拥有者一定是同一个人吗?
并不一定,也就是说我们可以将一个文件交由其他人或组去管理。
功能: 修改文件的拥有者
格式: chown [参数] 用户名 文件名
# chown user1 f1
# chown -R user1 filegroup1
- chgrp
功能:修改文件或目录的所属组
格式: chgrp [参数] 用户组名 文件名
常用选项: -R 递归修改文件或目录的所属组
实例:
chgrp users /abc/f2
2.5 默认权限:
为何我们创建一个目录或者文件,默认权限是你所看到的样子?
1.目录起始权限是从777 ,普通文件起始权限从666
2.最终权限=起始权限&(~umask)
这和权限掩码有关系~
权限掩码:
默认权限 = 文件的起始权限 & (~umask)
加粗样式### 2.6 目录权限管理:
在Linux下,有一句话那就是:一切皆文件。
那目录也是个文件,也就是说我们也可以像管理文件那样把目录管理起来。
归类总结:
如果目录贝没有r权限,允许进入,允许在该目录下创建(写入)一个文件,不允许查看。
如果目录只没有w权限,允许进入,允许在该目录下查看文件列表,但是不允许创建文件。
如果同时没有rw权限,允许进入,但是不允许创建和查看目录下的文件列表。
注意:不是文件内容! 文件的内容,是否可以查看,由文件自己的权限决定!!
2.7 粘滞位
背景介绍:
当多组共同在同一个目录下操作时,Linux下可以存在一些目录,拥有者和所属组是root或是其他人,但是其他人允许以other的身份在该目录下进行文件的创建,读取,删除,修改等!举例:tmp目录是多个用户可以共享的。。
**目的:**为了避免在一个共享目录下,你不让我写,不让我读,但防不住我删除!
给共享的<目录>加上粘滞位!(用chmod + t)
- 当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由:
一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除 - 粘滞位只能对目录进行操作(重点)
[root@localhost ~]# chmod +t /home/ # 加上粘滞位
[root@localhost ~]# ls -ld /home/
drwxrwxrwt. 3 root root 4096 9月 19 16:00 /home/
[root@localhost ~]# su - litao
[litao@localhost ~]$ rm /home/abc.c #litao不能删除别人的文件
rm:是否删除有写保护的普通空文件 "/home/abc.c"? y
rm: 无法删除"/home/abc.c": 不允许的操作
2.8 file指令
可以用file命令来查看更加详细的文件属性。
功能说明:辨识文件类型。
语法: file [选项] 文件或目录…
常用选项:
-c 详细显示指令执行过程,便于排错或分析程序执行的情形。
-z 尝试去解读压缩文件的内容
使用Sudo分配权限方法有两种:
(1)修改/etc/sudoers 文件分配文件
# chmod 740 /etc/sudoers
# vi /etc/sudoer
(2)使用 sudo 调用授权的命令
$ sudo –u 用户名 命令
代码示例: $sudo -u root /usr/sbin/useradd u2
尾声
看到这里,相信大家对这个C++有了解了。
如果你感觉这篇博客对你有帮助,不要忘了一键三连哦