前言:
本章将介绍Linux操作系统的权限管理,方便大家了解linux的使用。
目录
1. 什么是权限
日常生活中的权限:
到底什么是权限?(重点)
- 约束人的
- 需要对应的事物具有特定的属性
2. 权限管理
Linux的权限分为两种:
- (1)用户的权限
- (2)文件的权限
2.1 Linux的用户权限
- Linux下有两种用户:超级用户(root)、普通用户(user)
- 超级用户: 可以再linux系统下做任何事情,不受限制
- 普通用户: 在linux下做有限的事情
超级用户的命令提示符是 “ # ” ,普通用户的命令提示符是 “ $ ”
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 |
---|---|---|---|
对文件而言 | 具有读取文件内容的权限 | 具有修改文件内容的权限 | 具有执行文件的权限 |
对目录而言 | 具有浏览该目录下文件列表的权限 | 具有删除/移动目录下文件的权限 | 具有进入目录的权限 |
“—”表示不具有该项权限
为什么会有所属组的概念:
2.4文件访问权限的设置方法
- chmod对文件权限的修改
方法一: 用户表示符+/-=权限字符
实例:
chmod a+x /home/abc.txt
方法二: 三位8进制数字
实例:
# chmod 664 /home/abc.txt
# chmod 640 /home/abc.txt
- Chown
文件的创建者和文件的拥有者一定是同一个人吗?
# chown user1 f1
# chown -R user1 filegroup1
- chgrp
实例:
chgrp users /abc/f2
2.5 默认权限:
为何我们创建一个目录或者文件,默认权限是你所看到的样子?
这和权限掩码有关系~
权限掩码:
默认权限 = 文件的起始权限 & (~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命令来查看更加详细的文件属性。
常用选项:
使用Sudo分配权限方法有两种:
(1)修改/etc/sudoers 文件分配文件
# chmod 740 /etc/sudoers
# vi /etc/sudoer
(2)使用 sudo 调用授权的命令
$ sudo –u 用户名 命令
代码示例: $sudo -u root /usr/sbin/useradd u2
尾声
看到这里,相信大家对这个C++有了解了。
如果你感觉这篇博客对你有帮助,不要忘了一键三连哦