Linux权限详解

2023-12-23 18:59:04

LInux 权限管理

Linux中有两种用户,root和普通用户

对于root用户,命令提示符是#,可以做任何事,不受限制

对于普通用户,命令提示符是$

su [用户名]

用这个命令可以切换登录用户

su user
su root

root可以省略,需要输入root用户的口令

文件

我们可以通过ls -l命令查看文件夹内的详细信息

例如

我们依次来解释这些内容的意思

文件访问者

我们可以看到在file1这个文件中有一串是root root

这里其实对应了两个身份,第一个root的位置表示该文件的所属用户,第二个root表示该文件的所属用户组,即这个文件属于哪个组

还有第三个身份就是其他用户,即不属于组的用户

文件类型与基本权限

这里最前面有一串字符 -rw-rw-r–

这里其实是分块理解的,第一个字符表示文件类型

字符说明
d文件夹
-普通文件
l软连接(类似于快捷方式)
b块设备文件
p管道文件
c字符设备文件(输入输出设备)
s套接口文件

后面九个字符,三个三个一组,分别对应三种身份的各种权限

r表示有读权限

w表示有写权限

x表示有可执行权限

-表示没有这项权限

这里三个三个一组,如果用三位二进制数表示刚好是从0到7八个数字

例如

符号八进制二进制
r–4100
-w-2010
rw-6110
r-x5101

设置权限的方法

chmod [参数] 权限 文件名

这里的权限要写明用户和具体权限

例如

chmod u+w file1

用户符号如下

符号说明
u拥有者
g拥有者同组用户
o其他用户
a所有用户

符号可以有+,-,=分别对应着添加,减少,赋予

第二种就是直接用三位八进制数字表示

chmod 664 file1

也就分别对应着 rw-rw-r–

修改文件拥有者
chown [参数] 用户名 文件名

chown user1 f1
chown -R user1 filegroup1

-R表示修改文件或目录的所属组

修改文件掩码

新建的文件默认起始权限为0666,目录的默认起始权限为0777

当我们不想要这个起始的权限时,就需要修改文件掩码,计算公式如下

修改后的默认权限 = 起始权限 & (~掩码)

我们可以用umask命令来修改掩码

例如

umask 0002

一般来说root用户默认掩码为0022,普通用户掩码为0002

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
    

目录的权限

目录没有可执行权限就无法进入

目录没有可读权限就无法用ls命令查看文件内容

没有可写权限就无法创建删除文件

粘滞位

如果用户拥有目录的写权限,就可以删除目录中的文件,并且可以无视对于文件本身的写权限

因此引入了粘滞位的概念,当一个目录被设置为粘滞位(chmod +t)时,则目录的文件只能由root、目录所有者、文件所有者删除

文章来源:https://blog.csdn.net/ye_yumo/article/details/135172182
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。