Linux 权限位详解

简介: Linux 权限位对于权限,有点绕,因为文件的权限和目录的权限是有一些区别的。在Linux中,有5种权限,分别是,r、w、x、s、t。可读权限:r可写权限:w可执行权限:xSetuid:s(Set User ID)Setgid:s(Set Group ID)粘滞位:t下面依次讲解权限位:1.
  1. Linux 权限位
    对于权限,有点绕,因为文件的权限和目录的权限是有一些区别的。

在Linux中,有5种权限,分别是,r、w、x、s、t。

可读权限:r
可写权限:w
可执行权限:x
Setuid:s(Set User ID)
Setgid:s(Set Group ID)
粘滞位:t

下面依次讲解权限位:

1.1 可读权限

对于文件,可读权限:

用字符表示:r
用八进制表示:4

可以对读取文件里的内容

对于目录,可读权限:

用字符表示:r
用八进制表示:4
可以列出目录下的内容

1.2 可写权限

对于文件,可写权限:

用字符表示:w
用八进制表示:2

可以对文件进行更改

对于目录,可写权限:

用字符表示:w
用八进制表示:2
可以在目录下创建文件或目录

1.3 可执行权限

对于文件,可写权限:

用字符表示:x
用八进制表示:1

可以执行该文件(脚本或命令)

对于目录,可写权限:

用字符表示:x
用八进制表示:1
可以cd进入该目录

1.4 Setuid
这是一个特殊的权限位,

对于文件,Setuid:

用字符表示:s
用八进制表示:4000
Setuid最常用的是配合执行权限x使用,例如,系统中内置命令passwd,它默认是带有s权限位,passwd命令的主要功能是修改用户的密码,而修改密码的流程是:

将加密后的哈希值写入到/etc/passwd文件对应的用户条目中。
使用pwconv工具转换到/etc/shadow文件中。
而普通用户是没有权限修改/etc/passwd 和 /etc/shadow文件
在普通用户尝试执行passwd,该passwd的所有者是root并且设置了Suid,因此passwd以root身份执行。

当你查看进程时,你会发现,进程不是普通用户,而是passwd工具的所有者(root)

1.5 Setgid
这是一个特殊的权限位,

对于目录,Setgid:

用字符表示:s
用八进制表示:2000
当一个目录拥有sgid权限时,其他用户在该目录下创建文件或目录后,它会继承目录的id,即创建的文件或目录的属组为父目录的属组。

[root@self data]# mkdir project
[root@self data]# chmod 2777 project/
[root@self data]# ls -lh
total 0
drwxrwsrwx 2 root root 6 Apr 20 23:42 project
[root@self data]# su bob
[bob@self data]$ mkdir project/test_for_bob
[bob@self data]$ ls -lh project/
total 0
drwxrwsr-x 2 bob root 6 Apr 20 23:42 test_for_bob

1.6 粘滞位
这是一个特殊的权限位,

对于目录粘滞位:

用字符表示:t
用八进制表示:1000
/tmp目录就是使用了粘滞位t,其作用是,在该目录下创建文件或目录后,仅允许其作者(所有者)进行删除操作。其他用户无法删除。

  1. Linux 权限表
  1. ls -l 输出详解
    例如:lrwxrwxrwx. 1 root root 7 Oct 3 02:33 bin -> usr/bin

第一个字符的含义:

-:常规文件
b:块特殊文件
c:字符特殊文件
C:高性能(”连续数据“)文件
d:目录
D:门(Solaris 2.5及以上版本)
l:符号链接
M:离线(”前已“)文件(Cray DMF)
n:网络专用文件(HP-UX)
p:FIFO(命名管道)
P:断开(Solaros 10及以上)
s:套接字
?:其他文件
第二个字符的含义:

r:属主的读权限
第三个字符的含义:

w:属主的写权限
第四个字符的含义:

x:属主的执行权限

S:设置了SUID,没有执行权限
s:设置了SUID,具有执行权限
第五个字符的含义:

r:属组的读权限
第六个字符的含义:

w:属主的写权限
第七个字符的含义:

x:属组执行权限

S:设置了SGID,没有执行权限
s:设置了SGID,具有执行权限
第八个字符的含义:

r:其他人的读权限
第九个字符的含义:

w:其他人的写权限
第十个字符的含义:

x:其他人的执行权限
T:设置了粘滞位,没有执行权限
t:设置了粘滞位,具有执行权限
第十一个字符的含义:

.:没有任何其他替代访问方法的SELinux安全上下文(没有设置ACL)
+:具有任何其他组合访问方法的SELinux安全上下文(设置了ACL)
第十二个字符的含义:该文件的硬链接数量
第十三个字符的含义:该文件的属主
第十四个字符的含义:该文件的属组
第十五个字符的含义:该文件的大小
第十六到第十八个字符的含义:最后一次修改的时间
第十九个字符的含义:文件或目录的名称
第二十个字符的含义:链接符号
第二十一个字符的含义:链接文件的源文件

  1. umask 掩码

umask是一个内置命令。其作用是指定创建的文件或目录的默认权限。

使用方法:umask [-S|-p] [mode]

-S:打印出字符权限位
-p:打印八进制数权限位(默认)

使用不加任何参数的umask会打印出八进制的权限:默认0022。

第一个数字表示:特殊权限位的八进制数
第二个数字表示:属主的八进制数的反掩码
第三个数字表示:属组的八进制数的反掩码
第四个数字表示:其他人的八进制数的反掩码

例如:手动更改,可使用八进制,也可以使用字符表示

[root@localhost data]# umask
0022
[root@localhost data]# mkdir test_dir
[root@localhost data]# touch test_txt
[root@localhost data]# ls -lh
total 0
drwxr-xr-x 2 root root 6 Apr 21 01:34 test_dir
-rw-r--r-- 1 root root 0 Apr 21 01:34 test_txt
[root@localhost data]# rm -rf *
[root@localhost data]# umask 0777
[root@localhost data]# mkdir test_dir
[root@localhost data]# touch test_txt
[root@localhost data]# ls -lh
total 0
d--------- 2 root root 6 Apr 21 01:37 test_dir
---------- 1 root root 0 Apr 21 01:37 test_txt

注意:尽管你的umask设置为0000,后续创建文件的权限依然是666。出于安全着想,执行权限必须手动添加。所以你会看到,目录权限为777,而文件权限为666

原文地址https://www.cnblogs.com/liuhedong/p/10739718.html

相关文章
|
18天前
|
安全 Linux 数据安全/隐私保护
Linux权限详解
Linux权限详解
|
28天前
|
Linux 数据安全/隐私保护 Windows
Linux入门指南:linux权限究竟是什么?和文件有什么关系?
Linux入门指南:linux权限究竟是什么?和文件有什么关系?
30 0
|
30天前
|
算法 Linux C++
【Linux系统编程】解析获取和设置文件信息与权限的Linux系统调用
【Linux系统编程】解析获取和设置文件信息与权限的Linux系统调用
29 0
|
1月前
|
Shell Linux 程序员
Linux:权限篇 (彻底理清权限逻辑!)
Linux:权限篇 (彻底理清权限逻辑!)
52 1
|
1月前
|
存储 Linux 数据安全/隐私保护
Linux 权限
Linux 权限
|
2天前
|
安全 Linux Shell
【linux基础(四)】对Linux权限的理解
【linux基础(四)】对Linux权限的理解
|
2天前
|
Linux 网络安全 数据安全/隐私保护
Linux 如何关闭防火墙(开启管理员权限)
Linux 如何关闭防火墙(开启管理员权限)
3 0
|
3天前
|
Linux 数据安全/隐私保护 Windows
Linux的学习之路:4、权限
Linux的学习之路:4、权限
14 0
|
29天前
|
Ubuntu 关系型数据库 MySQL
linux创建用户创建组删除用户以及组分配权限
linux创建用户创建组删除用户以及组分配权限
10 0
|
1月前
|
Shell Linux 开发工具
shell的介绍以及Linux权限的讲解
shell的介绍以及Linux权限的讲解
31 2