Linux用户的区别
Linux有两种用户,分别为root用户
和 普通用户
一般情况下, root用户是不会受到权限限制的, 但普通用户会受到权限限制。
root用户 和 普通用户之间的切换
我们可以使用 su
指令来将我们切换为root用户
也可以使用 su -
来切换我们的用户
两者不同之处是第二个方法相当于重新登录了root,所以切换后会前往root用户的家目录
su
后还可以加用户名达到切完到该用户的作用,需要注意的是:
root用户切换到普通用户时是不需要密码的
,但反过来就是需要密码
的;
如果我们只需要对某一条指令进行提权
可以使用 sudo 命令
此时只需要输入自己的密码即可(不是root的密码)
但是其实我们现在的用户是没法执行sudo的因为系统并不信任我们
除非未来我们将该普通用户添加到系统的信任白名单中。
什么叫做权限
一件事情是否允许你去做
- 权限认证的是身份: 比如张三能进入校长办公室 是因为他是校长而不是因为它是张三
- 权限也和事物的属性有关:比如我们可以拿一本书写字,但不能拿一本书吃
文件属性:可读,可写,可执行
Linux不认文件名后缀,不代表Linux上安装的软件也不认文件名后缀,比如gcc是无法编译用.txt编写的代码
后面9位置表示文件的权限
x
可读
w
可写
x
可执行
-
没有对应的权限
从左往右分别是
·文件权限
(从左往右 三三为一组 : 拥有者权限, 所属组权限, other权限
)
·所属者
·所属组
·大小
·最新修改/创建时间
见识一下没有权限是什么样子的
权限的修改问题
能更改文件权限的有两个人
- 文件的创建者
- root用户
chmod指令
u
代表拥有者
g
代表所属组
o
代表other
chmod u+权限 文件
代表给该文件的拥有者加上对应权限
chmod u-权限 文件
代表给该文件的拥有者减去对应权限
用逗号分开能一次该多种用户的权限
更方便的改法:
将每种用户权限看做是八进制
0代表没有 1代表有
于是我们便可以
chmod num 文件
直接该文件的权限
以下两个指令都需要root
权限
chown指令
语法: chown 文件 用户
功能: 更改文件的所属者:
或者是:chown 文件 用户:所属组
功能:直接更改 文件的拥有人和所属组
chgrp指令
语法: chgrp文件 用户
功能: 更改文件的所属组
注意
权限在匹配时只能匹配一个
比如 我虽然即是文件的拥有者 又是 所属组 但是我只享有拥有者的权限
其他问题
问题1 起始权限问题
为什么我们创建文件的默认权限是我们所看到的样子?
1 Linux默认给普通文件的起始权限是666
2 默认给目录文件的起始权限是777
权限掩码:
凡是在umask中出现的权限,不会在最终的文件权限中出现。
为什么普通文件的权限是664?
起始权限: 110 110 110
umask 000 000 010
最终权限 110 110 100 也就是664
为什么目录文件的权限是775?
起始权限 111 111 111
umask 000 000 010
最终权限 111 111 101 也就是775
总结
最终权限 = 起始权限 & (~umask)
umask指令
umask
查看权限掩码
umask num
更改权限掩码
问题2 对于目录文件 它的读写执行权限都是些啥?
r权限
: 读权限, 影响的不是用户是否能进入目录, 而是影响用户是否可以对目录内容进行查看(例如 对目录使用ls
指令)
w权限
:写权限影响的是,是否允许用户在目录内 创建/更改/删除
文件。
x权限
执行权限影响的是,是否允许用户进入目录中。
问题3如何创建共享目录
1 普通用户自己的家目录权限是 700, 我在我自己的家目录下创建文件别人是看不到的
2 有时候, 我们多个用户需要共享文件
所以 我们所创建的共享文件是不能
在任何一个人的家目录中
3 一个文件能否被删除取决于目录的权限而不是文件的权限,那么在共享目录中,我们的文件就有被别人删除
的风险
4 直接去掉共享目录的w权限
又会导致我们无法在目录中创建文件
于是乎就有我们的新权限t权限(粘滞位)
这个权限下 用户能创建文件 但是 不能删除不属于自己的文件 t权限
是一种特殊的x权限
在Linux中,装机时根目录中就会有一个名为 tmp
的目录 这是Linux自带的共享目录