Linux基础之特殊权限

特殊权限

SetUID(简称suid)(数字权限是4000)

命令功能: 临时使用命令的属主权限执行该命令。即如果文件有suid权限时,那么普通用户去执行该文件时,会以该文件的所属用户的身份去执行。主要是对命令,或者二进制文件,以该二进制文件的属主权限来执行该文件

SetUID(简写suid):会在属主权限位的执行权限上写个s。 如果该属主权限位上有执行权限,则会在属主权限位的执行权限上写个s(小写字母s); 如果该属主权限位上没有执行权限,则会在属主权限位的执行权限上写个S(大写字母S)。

setUID(简称suid)权限设置:
方式1:[root@centos7 ~]# chmod u+s filename
方式2:[root@centos7 ~]# chmod 4755 filename

示例1:

如果该属主权限位上没有执行权限,则会在属主权限位的执行权限上写个S(大写字母S)。

[root@centos7 ~]# touch file                          #创建文件file
[root@centos7 ~]# ll file                            #可以看到文件file的属主权限位上没有执行x权限
-rw-r--r--. 1 root root 0 Jul  2 15:53 file
[root@centos7 ~]# chmod u+s file                        #赋予setUID(suid)权限
[root@centos7 ~]# ll file                           #setUID命令会在属主权限位的执行权限上写个S(大写字母S)
-rwSr--r--. 1 root root 0 Jul  2 15:53 file

QQ图片20201103011202.png

示例2:

如果该属主权限位上有执行权限,则会在属主权限位的执行权限上写个s(小写字母s)。

[root@centos7 ~]# touch file1                        #创建文件file1
[root@centos7 ~]# chmod 744 file1
[root@centos7 ~]# ll file1                         #可以看到文件file1的属主权限位上有执行x权限
-rwxr--r--. 1 root root 0 Jul  2 15:59 file1
[root@centos7 ~]# chmod u+s file1                     #赋予setUID(suid)权限
[root@centos7 ~]# ll file1                        #setUID命令会在属主权限位的执行权限上写个S(小写字母s)
-rwsr--r--. 1 root root 0 Jul  2 15:59 file1

QQ图片20201103011602.png

 示例3:
在Linux系统中,每个普通用户都可以更改自己的密码,普通用户的信息保存在 /etc/passwd文件中,用户的密码信息保存在 /etc/shadow 文件中,也就是说,普通用户在更改自己密码时,修改了 /etc/shadow 文件中的登录密码,但是文件权限显示普通用户对这两个文件都没有写权限。那么为什么普通用户可以修改自己的密码,并将修改后的密码,写入 /etc/shadow 文件中呢?
原因是普通用户之可以能够修改密码,原因在于passwd命令,该命令拥有特殊权限,SetUID,也就是咱们看到的,在属主的权限位的执行权限上是 s,passwd文件以该所属用户的身份(即root用户身份)去执行,因此可以修改密码 。 

SetUID(简称suid)总结: 

            1.让普通用户对可执行的二进制文件,临时拥有二进制文件的属主权限; 

            2.如果设置的二进制文件没有执行权限,那么suid的权限显示就是S(大写字母S); 

            3.特殊权限suid仅对二进制可执行程序有效,其他文件或目录则无效。

注意:suid极其危险,不信可以尝试对vim或者rm命令进行设定suid,如果给vim或者rm命令设置了setUID,那么任何文件都能编辑或者删除了,相当于有root权限了。


setGID(简称sgid)(数字权限是2000)

命令功能:多个用户共享一个组。主要是针对目录进行授权,共享目录。

如果该属组权限位上有执行权限,则会在属组主权限位的执行权限上写个s(小写字母); 如果该属组权限位上没有执行权限,则会在属组主权限位的执行权限上写个S(大写字母S)。

setGID权限设置:
[root@db04 ~]# chmod 2755 /tmp/test/
[root@db04 ~]# chmod g+s /tmp/test/

 示例1:
[root@centos7 ~]# mkdir /tmp/test           #创建/tmp/test目录
[root@centos7 ~]# ll /tmp/test/ -d          #查看/tmp/test目录,属组权限有执行x权限
drwxr-xr-x. 2 root root 6 Jul  2 17:32 /tmp/test/
[root@centos7 ~]# touch /tmp/test/root_file
[root@centos7 ~]# ll /tmp/test/root_file 
-rw-r--r--. 1 root root 0 Jul  2 18:27 /tmp/test/root_file
[root@centos7 ~]# su - linux01            #切换到用户linux01
在root下:
[root@centos7 ~]# chmod 777 /tmp/test/          #给目录/tmp/test修改权限
[root@centos7 ~]# ll -d /tmp/test/
drwxrwxrwx. 2 root root 23 Jul  2 18:27 /tmp/test/
在linux01下:
[linux01@centos7 ~]$ touch /tmp/test
nux01_file     #在目录/tmp/test下创建linux01_file
[linux01@centos7 ~]$ ll /tmp/test
nux01_file        #linux01_file属组权限没有执行x权限
-rw-rw-r--. 1 linux01 linux01 0 Jul  2 18:35 /tmp/test
nux01_file
在root下:
[root@centos7 ~]# chmod g+s /tmp/test/          #赋予setGID(sgid)权限
[root@centos7 ~]# ll -d /tmp/test/              #setGID命令会在属组权限位的执行权限上写个S(小写字母s)
drwxrwsrwx. 2 root root 43 Jul  2 18:35 /tmp/test/

SetGID(简称sgid)总结

            1.针对用户组权限位修改,用户创建的目录或文件所属组和该目录的所属组一致。

            2.当某个目录设置了sgid后,在该目录中新建的文件不在是创建该文件的默认所属组

            3.使用sgid可以使得多个用户之间共享一个目录的所有文件变得简单。

sbit 粘滞位(数字权限是1000)

命令功能:粘滞位,即便是该目录拥有w权限,但是除了root用户,其他用户只能对自己的文件进行删除、移动操作。

[root@centos7  ~]# ll -d /tmp/ drwxrwxrwt. 8 root root 105 Jul 2 10:15 /tmp/

如果该其他用户权限位上有执行权限,则会在其他用户权限位的执行权限上写个t(小写字母); 如果该其它用户权限位上没有执行权限,则会在其他用户权限位的执行权限上写个T(大写字母)。

授权方式:

[root@db04 ~]# centos7 1755 /opt
[root@db04 ~]# centos7 o+t /opt

sticky(SI TI KI)粘滞,目前只对目录有效,作用如下:

普通用户对该目录拥有w和x权限,即普通用户可以在此目录中拥有写入权限,如果没有粘滞位,那么普通用户拥有w权限,就可以删除此目录下的所有文件,包括其他用户建立的文件。但是一旦被赋予了粘滞位,除了root可以删除所有文件,普通用户就算有w权限也只能删除自己建立的文件,而不能删除其他用户建立的文件。

系统中存在的/tmp目录是经典的粘滞位目录,谁都有写权限,因此安全成问题,常常是木马第一手跳板。


Linux特殊权限

chattr概述:凌驾于r、w、x、suid、sgid之上的权限。

lsattr    命令功能:查看特殊权限。

[root@centos7 ~]# lsattr /etc/passwd

---------------- /etc/passwd

chattr    命令功能:设置特殊权限,chattr命令用来改变文件属性。

    -i     #锁定文件,不能编辑,不能修改,不能删除,不能移动,可以执行

    -a     #仅可以追加文件,不能编辑,不能删除,不能移动,可以执行

    示例:

    (1)用chattr命令防止系统中某个关键文件被修改。

    chattr +i /etc/fstab

    (2)让某个文件只能往里面追加内容,不能删除,一些日志文件适用于这种操作

    chattr +a /data1/user_act.log

Linux进程掩码umask

1)什么是umask

当我们登录系统之后,创建一个文件总是有一个默认权限,比如: 目录默认权限:755 文件默认权限:644 那么这个权限是怎么来的呢? 不瞒你说,这就是umask做的,umask设置了用户创建文件的默认权限。

2)umask是如何改变文件的权限

系统默认umask为022,那么当我们创建一个目录时,正常情况下目录的权限应该是777,但是umask表示要减去的值,所以新目录文件的权限应该是777-022=755。至于文件的权限也依次类推:666-022=644

3)umask涉及到的配置文件

umask涉及到的相关文件/etc/bashrc /etc/profile ~/.bashrc ~/.bash_profile

示例1:

目录:

0777-0022=0755

0777-0023=0754

[root@centos7 ~]# umask 0023    #设置umask值为0023
[root@centos7 ~]# mkdir mydir       #创建目录mydir     
[root@centos7 ~]# stat  mydir       #查看mydir的umask值
  File: 'mydir’
  Size: 6           Blocks: 0          IO Block: 4096   directory
Device: 803h/2051d  Inode: 50696782    Links: 2
Access: (0754/drwxr-xr--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0

文件:

0666-0022=0644

[root@centos7 ~]# umask 0022        #umask值恢复为0022
[root@centos7 ~]# touch file          #创建文件file
[root@centos7 ~]# ll file           #查看文件file的umask值
-rw-r--r--. 1 root root 0 Jul  2 20:28 file

示例2:

[root@centos7 ~]# umask 24       #设置umask值为0024
[root@centos7 ~]# mkdir mydir     #创建目录mydir
[root@centos7 ~]# touch file       #创建文件file
# 目录  umask  0777-0024=0753
[root@centos7 ~]# ll -d mydir     
drwxr-x-wx. 2 root root 6 Jul  2 20:34 mydir     
# 文件  umask  0666-0024=0642
[root@centos7 ~]# ll file       
-rw-r---w-. 1 root root 0 Jul  2 20:34 file

示例3:

umask=0023(最后一位数是奇数时)

目录:0777-0023=0754

文件:0666-0023=064(3+1,最后一位3需要加上1)

示例4:

umask=0051(最后第二位、最后一位数都是奇数时)

目录:0777-0051=0726

文件:0666-0051=06(1+1,倒数第二位1需要加上1)(5+1,最后一位3需要加上1)

#转载请注明出处!
快来制作你的简历吧 ,请猛戳这里→点击在线制作
宝塔服务器面板,一键全能部署及管理,送你3188元礼包。请猛戳这里→点我领取

本文标题:《Linux基础之特殊权限》作者:dongchenxuan
原文链接:https://blog.dongchenxuan.com/?id=21
特别注明外均为原创,转载请注明。

分享到微信

扫描二维码

可在微信查看或分享至朋友圈。

下一篇: 背包密码体制

相关文章

发表评论:
验证码

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

dongchenxuan

dongchenxuan

你好,朋友

真是美好的一天!

访客信息

  • IP: 18.191.154.132
  • 地点: United StatesOhioDublin

标签列表

站点信息

  • 文章总数:69
  • 页面总数:2
  • 分类总数:19
  • 标签总数:34
  • 评论总数:7
  • 浏览总数:157370
您好,欢迎到访网站!
忘记密码

网站分类

文章归档

歌曲 - 歌手
0:00