特殊权限-SUID,SGID,Sticky 学习笔记

简介:

SUID : 运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者

           chmod u+s FILENAME  (添加 SUID 权限)      chmod u-s FILENAME  (除去 SUID 权限)

           如果 FILE 本身原来就有执行权限,则 SUID 显示为 s ; 否则显示 S;

           passwd 命令默认具有 SUID 权限

SGID : 运行某程序时,相应进程的属组是程序文件自身的属组,而不是启动者

           (目录有SGID权限后,在该目录下创建文件目录时,创建后的属组为目录自身的属组,)

           chmod g+s FILENAME (添加 SGID 权限)       chmod g-s FILENAME (除去 SGID 权限)

Sticky : 在一个公共目录,每个用户都可以创建文件,删除自己的文件,但不能删除别人的文件

            chmod o+t DIR (添加 Sticky 权限)    chmod o-t DIR (删除 Sticky 权限)

权限表示    SUID : 4     SGID :  2     Sticky : 1

           chmod 1755 /tmp/test     #test具有 755 权限 ( 1 : 具有 Sticky 权限 )

           chmod 3755 /tmp/test     #test具有 755 权限 ( 2 : 具有 SGID 权限  +  1 : 具有 Sticky 权限 )

           chmod 5755 /tmp/test     #test具有 755 权限 ( 4 : 具有 SUID 权限  +  1 : 具有 Sticky 权限 )


SUID : 实例测试   让一个普通用户对指定文件具有原本没有的查看权限 (user1用户可以查看 /etc/shadow 文件)

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@nono ~] # useradd user1     #添加用户 user1
[root@nono ~] # passwd user1
[root@nono ~] # ls -l /etc/shadow  #查看 /etc/shadow 文件, 权限为000 , 所以除 root 用户都不能查看
----------. 1 root root 1053 7月   3 09:54  /etc/shadow
[root@nono ~] # su - user1          #切换到 user1 用户, 应为 /etc/
[user1@nono ~]$  cat  /etc/shadow     # user1用户 没有权限查看
cat /etc/shadow : 权限不够
[root@beiyong2 ~] # chmod u+s /bin/cat   #将 /bin/cat 命令添加 SUID 命令,则 cat 命令的执行者为文件自身的属主,而不是启动者
[root@beiyong2 ~] # ls -l /bin/cat       #SUID命令添加成功 (若 /bin/cat 本身就有执行权限,添加 SUID 命令后,显示为 s 否则为 S)
-rwsr-xr-x. 1 root root 48568 10月 15 2014  /bin/cat
[user1@beiyong2 ~]$  cat  /etc/shadow    # user1 可以查看
bin:*:15980:0:99999:7:::
daemon:*:15980:0:99999:7:::


SGID : 实例测试  三个用户可以在同一目录中,创建文件目录,并互相修改文件内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
[user1@beiyong2 ~]$  tail  -5  /etc/passwd       #当前系统中有三个用户
user1:x:500:500:: /home/user1 : /bin/bash
hbase:x:501:501:: /home/hbase : /bin/bash
hadoop:x:502:502:: /home/hadoop : /bin/bash  
[root@beiyong2 tmp] # mkdir project         #在 /tmp 目录中创建新目录 /project
[root@beiyong2 tmp] # groupadd developteam     #添加 developteam 用户组
[root@beiyong2 tmp] # chown -R :developteam /tmp/project      #将 /tmp/project 目录的属组改为 developteam
[root@beiyong2 tmp] # ls -ld project
drwxr-xr-x. 2 root developteam 4096 7月   9 02:15 project
[root@beiyong2 tmp] # usermod -a -G developteam user1    #分别将三个用户的附加组改为 developteam
[root@beiyong2 tmp] # usermod -a -G developteam hadoop
[root@beiyong2 tmp] # usermod -a -G developteam hbase
[root@beiyong2 project] # ls -ld     #查看 project 目录的权限,属组没有写权限,则添加
drwxr-xr-x. 2 root developteam 4096 7月   9 02:15 .
[root@beiyong2 project] # chmod g+w /tmp/project   
[root@beiyong2 project] # ls -ld
drwxrwxr-x. 2 root developteam 4096 7月   9 02:15 .
[root@beiyong2 project] # ll #分别用三个账号在 /tmp/project 目录中创建文件( a.* ),没有权限编辑其他人的文件
-rw-rw-r--. 1 hadoop hadoop 0 7月   9 02:33 a.hadoop
-rw-rw-r--. 1 hbase  hbase  0 7月   9 02:34 a.hbase
-rw-rw-r--. 1 user1  user1  0 7月   9 02:33 a.user1
[root@beiyong2 ~] # chmod g+s /tmp/project  #给 /tmp/project 目录添加 SGID 权限
[root@beiyong2 ~] # ls -ld /tmp/project
drwxrwsr-x. 2 root developteam 4096 7月   9 02:34  /tmp/project
[root@beiyong2 project] # ll #添加 SGID 权限后,用三个用户分别在 /tmp/project 目录下创建文件 ( b.* )
总用量 0
-rw-rw-r--. 1 hadoop hadoop      0 7月   9 02:33 a.hadoop
-rw-rw-r--. 1 hbase  hbase       0 7月   9 02:34 a.hbase
-rw-rw-r--. 1 user1  user1       0 7月   9 02:33 a.user1
-rw-rw-r--. 1 hadoop developteam 0 7月   9 02:37 b.hadoop
-rw-rw-r--. 1 hbase  developteam 0 7月   9 02:37 b.hbase
-rw-rw-r--. 1 user1  developteam 0 7月   9 02:37 b.user1

三个用户创建的文件,属组均为developteam,故可以互相编辑删除对方文件


Sticky : 实例测试   同一目录下用户可以创建文件并互相修改,但不能删除对方的文件

1
2
3
4
5
[root@beiyong2 project] # chmod o+t /tmp/project   #给 /tmp/project 添加 Sticky 权限,(原有执行权限 t , 否则 T)
[root@beiyong2 project] # ls -ld
drwxrwsr-t. 2 root developteam 4096 7月   9 02:42 .
[hadoop@beiyong2 project]$  rm  -rf a.hbase   #用 hadoop 用户身份去删除 hbase 用户的文件,删除失败(只能删除自己的文件目录)
rm : 无法删除 "a.hbase" : 不允许的操作

完毕~~~

本文转自   mlwzby   51CTO博客,原文链接:http://blog.51cto.com/aby028/1814364

相关实践学习
云数据库HBase版使用教程
  相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情: https://cn.aliyun.com/product/hbase   ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
8月前
|
Shell Linux 数据安全/隐私保护
6.4.3 文件特殊权限: SUID, SGID, SBIT
6.4.3 文件特殊权限: SUID, SGID, SBIT
103 0
|
监控 安全 NoSQL
默认权限 umask 和特殊权限 | 学习笔记
快速学习 默认权限 umask 和特殊权限.
304 0
|
数据安全/隐私保护 Linux Shell