文章目录
Liunx
权限的概念
Linux
下有两种用户:
- 超级用户(
root
):可以再linux
系统下做任何事情,不受限制。提示符是#
- 普通用户:在
linux
下做有限的事情。提示符是$
切换用户:
- 命令:
su [用户名]
- 功能:切换用户
su user
su root
su
logout
退出
Linux
权限的管理
文件访问者的分类
- 文件和文件目录的所有者:
u---User
- 文件和文件目录的所有者所在的组的用户:
g---Group
- 其它用户:
o---Others
文件类型和访问权限
文件类型
根据ll
中的第一个字符展示文件类型 一共有10个字符
Linux
系统不以后缀区分文件
gcc
!=
Linux
gcc
是Linux
的一个软件
类型 | 说明 |
---|---|
d | 文件夹(目录文件) |
- | 普通文件(文本、源代码、可执行程序、第三方静态库) |
l | 软连接(链接文件) |
b | 块设备文件,磁盘 |
p | 管道文件 |
c | 字符设备文件 |
s | 套接口文件 |
基本权限
什么是权限?
- 约束人的(通过对人进行分类)
- 需要对应的事物具有特定的属性
Linux 上对文件的权限
- 这个文件谁能访问,谁不能访问
- 该文件对应的应该具备的某种属性
权限 = 人 + 事物属性
Linux 中 人分为3类
- 文件的拥有者 owner
- 文件的所属组 grouper
- 文件的其他用户 other
Linux 系统中 文件的属性分为
- r (可读)
- w(可写)
- x(可执行)
为什么会有所属组?
几个组成一个组,为了看组员彼此的代码,出现了所属组
修改权限涉及到的方面(修改某些人对某些文件的属性)
- 修改文件的属性
- 修改人
权限 | 说明 |
---|---|
读(r /4 ) | Read 对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限 |
写(w /2 ) | Write 对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限 |
执行(x /1 ) | execute 对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限 |
"一" | 表示不具有该项权限 |
文件权限值的表示方法
字符表示方法
Linux表示 | 说明 |
---|---|
r-- | 只读 |
--x | 仅可执行 |
-wx | 可写和可执行 |
rwx | 可读可写可执行 |
-w- | 仅可写 |
rw- | 可读可写 |
r-x | 可读可执行 |
--- | 无权限 |
8进制数值表示方法
权限符合(读写执行) | 八进制 | 二进制 |
---|---|---|
r | 4 | 100 |
w | 2 | 010 |
x | 1 | 001 |
rw | 6 | 110 |
rx | 5 | 101 |
wx | 3 | 011 |
rwx | 7 | 111 |
--- | 0 | 000 |
文件访问权限的相关设置方法
chmod
语法
chmod [参数] 权限 文件名
功能
设置文件的访问权限
root
不受约束
chmod u-r myfile.txt
把 myfile.txt
将文件拥有者对该文件的读权限去掉
chmod g-r myfile.txt
把 myfile.txt
将文件所属组对该文件的读权限去掉
chmod o-r myfile.txt
把 myfile.txt
将文件其他用户对文件的读权限去掉
chmod u+rx myfile.txt
把myfile.txt
将文件拥有者加上对该文件的读和可执行权限
chmod g+r myfile.txt
把myfile.txt
将文件所属组加上对该文件的读权限
chmod o+rwx myfile.txt
把myfile.txt
将文件其他用户加上对该文件的所有行权限
chmod u-wx,g-w,o-rwx myfile.txt
把 myfile.txt
将文件的拥有者减去写和可执行权限,所属组减去写权限,其他用户没有任何权限
chmod u+rwx,g+rwx,o+rwx myfile.txt
把 myfile.txt
将文件的所有用户加上所有权限
chmod u-rwx,g-rwx,o-rwx myfile.txt
把 myfile.txt
将文件所有用户的权限都删除掉
other
- - -
r w x
有或没有 两种状态(2态) 0 / 1
1 1 1 - 八进制 - 7
能够用三个八进制数
chmod 777 myfile.txt
给全部权限
chmod 000 myfile.txt
不给任何权限
chmod 333 myfile.txt
给所有人写和可执行权限
chmod 444 myfile.txt
给所有人读权限
chmod 500 myfile.txt
给所有者读和可执行权限,其他人没有权限
chmod 三个八进制数字 文件
chmod a=rw myfile.txt
把文件给所用用户都设置为可读和可写
chmod a=r myfile.txt
把文件给所有用户都设置为可读 a = all
选项
选项 | 说明 |
---|---|
R-> | 递归修改目录文件的权限(只有文件的拥有者和root才可以改变文件的权限) |
chown
语法
chown [参数] 用户名 文件名
功能
修改文件的拥有者
sudo chown ToodlesFate myfile.txt
提示权限,以root 的身份运行chown
把文件的权限给 ToodlesFate
或者转换为root 用户,走到相应的位置,把文件赋给另一个人
sudo chown root:root myfile.txt
把拥有者和所属组的权限全给root
chgrp
语法
chgrp [参数] 用户组名 文件名
功能
修改文件或目录的所属组
chgrp ToodlesFate myfile.txt
把 myfile.txt
文件的所属组赋给ToodlesFate
选项
选项 | 说明 |
---|---|
-R | 递归修改文件或目录的所属组 |
umask
语法
umask 权限值
功能
权限掩码 去掉umask
中出现的权限
- 普通文件的默认权限是
666
- 目录文件的默认权限是
777
- 默认权限
!=
最终权限 Linux
中最终权限=
默认权限 去掉umask
中存在的权限- 去掉 =
mask & ~ umask
(按位取反 原来为1的位置为0 再按位与 原来为1的位置全部变成0)
666 -> 110 110 110 110 110 110(mask)
002 -> 000 000 010 111 111 101(~umask)
------------------- -----------
110 110 100 (664) 110 110 100
777 -> 111 111 111 111 111 111(mask)
002 -> 000 000 010 111 111 101(umask)
------------------- ------------
111 111 101 (775) 111 111 101
为什么要有 umask ?
让用户使用起来更方便 用户什么时候需要不同的文件,可以设置掩码的值来更改自动生成的权限
umask 777
umask 666
- 查看或修改文件掩码
- 新建文件夹默认权限
=0666
- 新建目录默认权限
=0777
- 但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到
umask
的影响。假设默认权限是mask
,则实际创建的出来的文件权限是:mask & ~umask
- 将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为
0022
,普通用
户默认为0002
file
指令
语法
file [选项] 文件或目录...
功能
辨识文件类型
file dir
选项
选项 | 说明 |
---|---|
-c | 详细显示指令执行过程,便于排错或分析程序执行的情形 |
-z | 尝试去解读压缩文件的内容 |
目录权限
如果我想进入一个目录,需要什么权限:x
(可执行权限)
如果目录只没有r
权限,允许进入,允许在该目录下创建(写入)一个文件,不允许查看
如果目录只没有w
权限,允许进入,允许查看文件,但不允许创建一个文件
如果同时没有rw
权限,允许进入,但是不允许创建和查看目录下的文件列表(注意:不是文件内容!!! 文件的内容是否可以查看,由文件自己决定!!!)
Linux下一切皆文件
目录也是文件
文件 = 内容 + 属性
目录的内容:目录里面保存的是部分文件的属性(包括文件名)
- 可执行权限: 如果目录没有可执行权限, 则无法
cd
到目录中 - 可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容
- 可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件
默认目录的起始权限:777
// 权限掩码:凡是在权限掩码中出现的权限,都不应该在最终权限中出现
0002
000 000 000 010
000 111 111 111
---------------
000 111 111 101 5 (775)
默认普通文件的权限:666
002
000 000 010
110 110 110
----------
110 110 101 (664)
粘贴位
别人无法删除掉你的文件
给目录加的
法用ls等命令查看目录中的文件内容
- 可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件
默认目录的起始权限:777
// 权限掩码:凡是在权限掩码中出现的权限,都不应该在最终权限中出现
0002
000 000 000 010
000 111 111 111
---------------
000 111 111 101 5 (775)
默认普通文件的权限:666
002
000 000 010
110 110 110
----------
110 110 101 (664)
粘贴位
别人无法删除掉你的文件
给目录加的