Linux权限管理

Linux权限的概念

Linux下有两种⽤⼾:

超级⽤⼾(root)、普通⽤⼾。

• 超级⽤⼾:可以再linux系统下做任何事情,不受限制(除了操作不了正在运行的文件,不过也有办法)。

• 普通⽤⼾:在linux下做有限的事情。

• 超级⽤⼾的命令提⽰符是"#",普通⽤⼾的命令提u⽰符是"$"。

命令:su ⽤⼾名

功能:切换⽤⼾

例如,要从root⽤⼾切换到普通⽤⼾user 用户,则使⽤su user。

要从普通⽤⼾user切换到root⽤⼾则使⽤su root(root可以省略),此时系统会提⽰输⼊root⽤⼾的密码。

Linux权限管理

1. ⽂件访问者的分类(角色)

• ⽂件和⽂件⽬录的所有者:u---User(拥有者)

• ⽂件和⽂件⽬录的所有者所在的组的⽤⼾:g---Group(所属组)

• 其它⽤⼾:o---Others(外人)

用ll查看:

为什么没有Others?因为不是拥有者,不是所属组那就是Others

2. ⽂件类型和访问权限(事物属性)

⽂件类型:

d:⽂件夹

-:普通⽂件

l:软链接(类似Windows的快捷⽅式)

b:块设备⽂件(例如硬盘、光驱等)

p:管道⽂件

c:字符设备⽂件(例如屏幕等串⼝设备)

s:套接⼝⽂件

用ll -a或ll查看文件属性

基本权限:

读(r):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限

写(w):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限

执行(x):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限"-"表示不具有该项权限

用ll -a或ll查看文件属性

其中我们发现框起来的有9个格子,且有rwx ,rw-,---的组合分别是什么意思?

9个格子分成3份,分别,每三份分别代表拥有者,所属组,Others

而每一份中分别代表着对应角色对改文件的读(r),写(w),执行(x)权限。-代表无权。

由上可知,r,w,x的去、状态是二态的,除了有权就是无权(-)。

因此,可以用二进制来表示三种权限:

1 1 1 0 0 0

r w x - - -

其中0表示不具有该权限,1表示具有该权限。

如果将二进制当十进制来看,例如1 1 0相当于是6,其中r为4,w为2,x为0。

如果r ,w ,x都有权限,用十进制表示就是7。

权限修改

chmod

功能:设置⽂件的访问权限

格式:chmod [参数] 权限⽂件名

常⽤选项:

• R->递归修改⽬录⽂件的权限

• 说明:只有⽂件的拥有者和root才可以改变⽂件的权限,普通用户只能改自己文件权限。

⽤⼾表⽰符+ / - = 权限字符

+:向权限范围增加权限代号所表⽰的权限

-:向权限范围取消权限代号所表⽰的权限

=:向权限范围赋予权限代号所表⽰的权限

⽤⼾符号:

u:拥有者

g:拥有者同组⽤

o:其它⽤⼾

a:所有⽤⼾

示例:

修改所有者权限:

bash 复制代码
chmod u-r a

修改所属组权限:

bash 复制代码
chmod g+w demo.txt

chown

功能:修改⽂件的拥有者

格式:chown [参数] ⽤⼾名 ⽂件名

实例:

• chown user1 f1

• chown -R user1 filegroup1

将a文件的拥有者权限给user1:

chgrp

功能:修改⽂件或⽬录的所属组

格式:chgrp [参数] ⽤⼾组名 ⽂件名

常⽤选项:-R递归修改⽂件或⽬录的所属组

实例: chgrp users /abc/f2

将a文件的所属组权限给user1:

!!!如果你是文件的拥有者,你也无法修变文件的拥有者,除了root用户。

umask

功能:

• 查看或修改⽂件掩码

• 新建⽂件夹起始权限=666(不带x)

• 新建⽬录起始权限=777(带x)

• 但实际上你所创建的⽂件和⽬录,看到的权限往往不是上⾯这个值。原因就是创建⽂件或⽬录的 时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的⽂件权限是:mask& ~umask

格式:umask 权限值

说明:将现有的存取权限减去权限掩码后,即可产⽣建⽴⽂件时预设权限。

超级⽤⼾默认掩码值为 0022,普通⽤⼾默认为0002。

例如我创建一个普通文件,新建文件夹默认权限=666:

其中umask可以修改,但是关闭xshell后还是会回复默认初始值。

重点部分

1.能改任何人的文件权限吗?

除了root用户,普通用户只能更改自己的文件权限。

  1. 如果不具有该权限,我们仍然执行会怎么样?

系统会自动拦截

  1. 确认权限时,如果既是所有者又是所属组,如何确认权限?

在Centor下,用户角色只确定一次,顺序是:所有者,所属组,Others

4.root用户权限?

不收权限约束

  1. 如何理解x可执行权限位?

可执行权限!=文件可以执行,就算文件有x权限位,文件本身不支持执行但仍然执行,就会报错

6.一个文件能否被删除与文件本身权限无关,与文件所处目录的w权限有关。

举例:root用户在我的目录下创建了一个不让我读不让我写的文件,只要我这个目录能写,就能删这个root的文件。

粘滞位

如果两个用户进行文件间的协作开发,就需要在同一个目录(此目录是公共目录,不在任何私人账号下)下修改文件,也就是说此目录的w权限必须放开,假如我的文件被别人不小心删了怎么办?所以Linux就有一个叫做粘滞位的权限位:t

当⼀个⽬录被设置为"粘滞位"(命令:chmod +t 文件名),则该⽬录下的⽂件只能由

  1. 超级管理员删除

  2. 该⽬录的所有者删除

  3. 该⽂件的所有者删除

在公共目录下,该目录有粘滞位,谁都删/改不了别人的文件,只能读取。

相关推荐
runningshark2 小时前
【Linux】VirtualBox ↔ Ubuntu+WinSCP 文件传输
linux·运维·ubuntu
MXsoft6182 小时前
信创时代的运维“铁三角”:一体化监控、自主底座与A预判
运维
aidream12392 小时前
Linux文件操作-文件打包和压缩(tar/gzip/bzip2/xz/zip)
linux·运维·服务器
迷茫运维路2 小时前
云枢运维管理系统
运维·golang·kubernetes·gin·casbin
念恒123062 小时前
进程--进程状态(上)
linux·c语言
捞的不谈~2 小时前
宇树机器狗通过笔记本共享上网操作指南(临时版)
linux·经验分享·tcp/ip·ubuntu
feng_you_ying_li2 小时前
linux之进程优先与切换调度
linux·运维·服务器
记得多喝水o2 小时前
分析下最近的IPv8提案
运维·服务器
光电笑映2 小时前
Linux C/C++ 开发工具(上):包管理器、Vim、gcc/g++ 与动静态库
linux·运维·服务器