网络安全系列之四十 在Linux中设置SET位权限

简介:

虽然通过ACL增加了权限设置的灵活性,但是Linux系统中可供设置的权限只有读、写、执行三种,在某些特殊的场合,这可能将无法满足要求。因而,在Linux系统中还提供了几种特殊的附加权限,用于为文件或目录提供额外的控制方式,可用的附加权限包括:SET位权限(SUID、SGID)和粘滞位权限(Sticky Bit)。本文将介绍SET位权限。

SET位权限多用于给可执行的程序文件或目录进行设置,其中SUID表示对所有者用户添加SET位权限,SGID表示对所属组内的用户添加SET位权限。当一个可执行文件被设置了SUID、SGID权限后,任何用户在执行该文件时,将获得该文件所有者、所属组相对应的权限。

SET位权限的权限字符为“s”,设置SET位权限同样要通过chmod命令实现,可以使用“u+s”、“g+s”的权限模式分别用于设置SUID、SGID权限。

设置SUID、SGID权限后,使用ls命令查看文件的属性时,对应位置的“x”将变为s,表示该文件在执行时将以所有者或所属组的身份访问系统。注意,如果文件原来位置有x权限,执行该命令后其权限字符为小写s;若文件原位没有x权限,则设置权限后将显示为大写字符S。

 

1)设置SUID

例:查看passwd命令所对应的程序文件的属性信息。

[root@localhost ~]# ll /usr/bin/passwd

-rwsr-xr-x. 1 root root 30768 2月 17 2012 /usr/bin/passwd

/usr/bin/passwd文件的权限是“rwsr-xr-x”,SET位权限设置在第一组,表示针对所有者用户设置,因而称为SUID。这样当其他用户执行passwd命令时,会自动以文件所有者root用户的身份去执行。

SUID仅能针对可执行文件设置,对于目录无效。

由于SUID权限会改变用户身份,这给系统带来了一定的安全隐患,因而一般不建议我们自己去设置SUID,但是系统中有不少默认已经设置了SUID权限的可执行文件,我们能了解其用途即可。

系统中常见的已经设置了SUID权限的可执行文件还包括:

[root@localhost ~]# ll /bin/su

-rwsr-xr-x. 1 root root 34904 4月 17 2012 /bin/su

[root@localhost ~]# ll /bin/mount

-rwsr-xr-x. 1 root root 76056 4月 6 2012 /bin/mount

[root@localhost ~]# ll /bin/ping

-rwsr-xr-x. 1 root root 40760 3月 22 2011 /bin/ping

例:去除/bin/ping的SUID权限:

[root@localhost ~]# chmod u-s /bin/ping

[root@localhost ~]# ll /bin/ping

-rwxr-xr-x 1 root root 37312 2009-04-24 /bin/ping

 

 

2)设置SGID

如果SET位权限设置在所属组所对应的第二组权限位时,那么就称为SGID。

SGID可以针对可执行文件设置,也可以针对目录设置,但是所表达的含义却截然不同:

  • 文件:如果针对文件设置SGID,则不论使用者是谁,他在执行该程序的时候,都将以文件所属组成员的身份去执行。

  • 目录:如果针对目录设置SGID,则在该目录内所建立的文件或子目录的所属组,将会自动成为此目录的所属组。

一般来说,SGID通常用于目录的权限设置。

例如,设置/home/test目录的所有者是student,所属组是users,权限是770,默认情况下在该目录下创建的文件的所有者和所属组都是创建者,如下所示。

[root@localhost ~]# ll -d /home/test

drwxrwx---. 2 student users 4096 12月 2 21:46 /home/test

[root@localhost ~]# touch /home/test/file1

[root@localhost ~]# ll /home/test

总用量 0

-rw-r--r--. 1 root root 0 12月 2 21:47 file1

为/home/test目录设置SGID权限,再在目录中创建文件时,文件的所属组将被自动设置为目录的所属组users,如下所示。

[root@localhost ~]# chmod g+s /home/test

[root@localhost ~]# ll -d /home/test

drwxrws---. 2 student users 4096 12月 2 21:47 /home/test

[root@localhost ~]# touch /home/test/file2

[root@localhost ~]# ll /home/test

总用量 0

-rw-r--r--. 1 root root 0 12月 2 21:47 file1

-rw-r--r--. 1 root users 0 12月 2 21:50 file2

SUID权限在生产环境中被广泛用于协同办公。当为目录设置了SUID权限之后,所有用户在该目录中创建的文件都将属于同一个用户组,这样只要是该组的成员都将自动拥有对文件的相应权限,以方便同组成员之间的文件修改和信息交流。


本文转自 yttitan 51CTO博客,原文链接:http://blog.51cto.com/yttitan/1577722


相关文章
|
2月前
|
安全 网络安全 数据安全/隐私保护
访问控制列表(ACL)是网络安全中的一种重要机制,用于定义和管理对网络资源的访问权限
访问控制列表(ACL)是网络安全中的一种重要机制,用于定义和管理对网络资源的访问权限。它通过设置一系列规则,控制谁可以访问特定资源、在什么条件下访问以及可以执行哪些操作。ACL 可以应用于路由器、防火墙等设备,分为标准、扩展、基于时间和基于用户等多种类型,广泛用于企业网络和互联网中,以增强安全性和精细管理。
358 7
|
20天前
|
Ubuntu Linux 开发者
Ubuntu20.04搭建嵌入式linux网络加载内核、设备树和根文件系统
使用上述U-Boot命令配置并启动嵌入式设备。如果配置正确,设备将通过TFTP加载内核和设备树,并通过NFS挂载根文件系统。
68 15
|
13天前
|
缓存 负载均衡 安全
Swift中的网络代理设置与数据传输
Swift中的网络代理设置与数据传输
|
25天前
|
Ubuntu Unix Linux
Linux网络文件系统NFS:配置与管理指南
NFS 是 Linux 系统中常用的网络文件系统协议,通过配置和管理 NFS,可以实现跨网络的文件共享。本文详细介绍了 NFS 的安装、配置、管理和常见问题的解决方法,希望对您的工作有所帮助。通过正确配置和优化 NFS,可以显著提高文件共享的效率和安全性。
168 7
|
2月前
|
域名解析 网络协议 安全
|
2月前
|
安全 网络安全 数据安全/隐私保护
访问控制列表(ACL)是网络安全管理的重要工具,用于定义和管理网络资源的访问权限。
访问控制列表(ACL)是网络安全管理的重要工具,用于定义和管理网络资源的访问权限。ACL 可应用于路由器、防火墙等设备,通过设定规则控制访问。其类型包括标准、扩展、基于时间和基于用户的ACL,广泛用于企业网络和互联网安全中,以增强安全性、实现精细管理和灵活调整。然而,ACL 也存在管理复杂和可能影响性能的局限性。未来,ACL 将趋向智能化和自动化,与其他安全技术结合,提供更全面的安全保障。
162 4
|
3月前
|
运维 监控 网络协议
|
2月前
|
监控 安全 网络安全
Elasticsearch集群的网络设置
Elasticsearch集群的网络设置
67 3
|
2月前
|
网络协议 Linux
使用nmcli命令设置IP地址并排查网络故障
nmcli 是一个功能强大的网络管理工具,通过它可以轻松配置IP地址、网关和DNS,同时也能快速排查网络故障。通过正确使用nmcli命令,可以确保网络配置的准确性和稳定性,提高系统管理的效率。希望本文提供的详细步骤和示例能够帮助您更好地掌握nmcli的使用方法,并有效解决实际工作中的网络问题。
199 2
|
2月前
|
监控 Oracle 关系型数据库
Linux平台Oracle开机自启动设置
【11月更文挑战第8天】在 Linux 平台设置 Oracle 开机自启动有多种方法,本文以 CentOS 为例,介绍了两种常见方法:使用 `rc.local` 文件(较简单但不推荐用于生产环境)和使用 `systemd` 服务(推荐)。具体步骤包括编写启动脚本、赋予执行权限、配置 `rc.local` 或创建 `systemd` 服务单元文件,并设置开机自启动。通过 `systemd` 方式可以更好地与系统启动过程集成,更规范和可靠。
232 2