Linux权限管理---特殊权限

目录

  • Linux权限管理---特殊权限

    • 一、Linux系统特殊权限概述
    • 二、特殊权限suid介绍
    • 三、特殊权限sgid介绍
    • 四、特殊权限sbit介绍
    • 五、特殊权限总结:
    • 六、linux权限属性chattr概述
    • 七、Linux进程掩码umask

Linux权限管理---特殊权限

一、Linux系统特殊权限概述

除了r(读)、 w(写)、 x(执行)这三种普通权限外,在查询系统文件权限时会发现还有其他的权限字母。

例如:
[[email protected] ~]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/passwd
[[email protected] ~]# ll /usr/bin/write
-rwxr-sr-x. 1 root tty 19624 Oct 31  2018 /usr/bin/write
[[email protected] ~]# ll /tmp/ -d
drwxrwxrwt. 7 root root 145 Jul  2 20:18 /tmp/

二、特殊权限suid介绍

1.SUID权限(4000)

在Linux系统中,每个普通用户都可以更改自己的密码,这是合理的设置,问题是,普通用户的信息保存在 /etc/passwd文件中,用户的密码在 /etc/shadow 文件中,也就是说,普通用户在更改自己密码时,修改了 /etc/shadow 文件中的加密密码,但是文件权限显示。普通用户对这两个文件都没有写权限。

[[email protected] ~]# ll /etc/passwd /etc/shadow
-rw-r--r--. 1 root root  997 Jul  2 10:28 /etc/passwd
----------. 1 root root 1084 Jul  2 10:28 /etc/shadow

因为passwd命令有SetUID权限,所以不能查看/etc/shadow文件内容,因为查看文件的命令,例如,cat,没有SetUID权限:

示例:
#创建lamp用户
[[email protected] ~]# useradd lamp
#给密码1
[[email protected] ~]# echo 1 |passwd --stdin lamp
Changing password for user lamp.   #更改用户lamp的密码
passwd: all authentication tokens updated successfully.       #所有的身份验证令牌已经成功更新。

#切换lamp用户
[[email protected] ~]# su - lamp

#修改密码,至少8位
[[email protected] ~]$ passwd

#查看/etc/shadow
[[email protected] ~]$ cat /etc/shadow
cat: /etc/shadow: Permission denied    #没有权限

#给cat命令授权 SetUID 权限
[[email protected] ~]# chmod 4755 /bin/cat
#查看cat权限
[[email protected] ~]# ll /bin/cat
-rwsr-xr-x. 1 root root 48568 11月 22 2013 /bin/cat
#切换用户
[[email protected] ~]# su - lamp

#再次查看/etc/shadow
[[email protected] ~]$ cat /etc/shadow
root:$6$TBgaEEzA$TZLUb9QLtM26nvQwjfALLeubnlg1Y1TJLiwcfYxzsZthSmTZmCkg3osOJn1rAAmTVuWsI0H.OTLVanAej2Jdl0:18067:0:99999:7:::

2.授权SUID

SUID(4000):会在属主权限位的执行权限上写个s
如果该属主权限位上有执行权限,则:s
如果该属主权限位上没有执行权限,则:S

授权方式:
chmod u+s filename
chmod 4755 filename

示例:
[[email protected] ~]# touch filename     #创建文件
[[email protected] ~]# ll filename          #查看文件
-rw-r--r--. 1 root root 0 Jul  2 23:02 filename
[[email protected] ~]# chmod u+s filename     #授权权限
[[email protected] ~]# ll filename            #查看文件
-rwSr--r--. 1 root root 0 Jul  2 23:02 filename

3.SUID总结:

1.让普通用户对可执行的二进制文件,临时拥有二进制文件的属主权限
2.如果设置的二进制文件没有执行权限,那么suid的权限显示就是S
3.特殊权限suid仅对二进制可执行程序有效,其他文件或目录则无效

注意:suid极其危险,不信可以尝试对vim或者rm命令进行设定suid

三、特殊权限sgid介绍

1.SGID权限(2000)

将目录设置为SGID后,如果在该目录下创建文件,都将与该目录的所属组保持一致

[[email protected] ~]# ll /bin/write
-rwxr-sr-x. 1 root tty 19624 Oct 31  2018 /bin/write

2.sgid权限设置

如果该属组权限位上有执行权限,则:s
如果该属组权限位上没有执行权限,则:S

[[email protected] ~]# chmod 2755 /tmp/test/
[[email protected] ~]# chmod g+s /tmp/test/

[[email protected] ~]# mkdir /tmp/test/      #创建目录
[[email protected] ~]# ll /tmp/              #查看目录
drwxr-xr-x. 2 root root      6 Jul  2 23:11 test
[[email protected] ~]# chmod 2755 /tmp/test/   #权限设置
[[email protected] ~]# ll /tmp/                #查看目录
drwxr-sr-x. 2 root root      6 Jul  2 23:11 test

3.sgid作用:

SetGID的作用
1.针对用户组权限位修改,用户创建的目录或文件所属组和该目录的所属组一致。
2.当某个目录设置了sgid后,在该目录中新建的文件不在是创建该文件的默认所属组
3.使用sgid可以使得多个用户之间共享一个目录的所有文件变得简单。

四、特殊权限sbit介绍

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

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

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

1.sticky授权方法

粘滞位:
[[email protected] ~]# ll -d /tmp/
drwxrwxrwt. 8 root root 105 Jul  2 10:15 /tmp/

如果该其他用户权限位上有执行权限,则:t
如果该其它用户权限位上没有执行权限,则:T

授权方式:
[[email protected] ~]# chmod 1755 /opt
[[email protected] ~]# chmod o+t /opt

2.sticky的作用:

1.让多个用户都具有写权限的目录,并让每个用户只能删自己的文件。
2.特殊sticky目录表现在others的x位,用小t表示,如果没有执行权限是T
3.一个目录即使它的权限为"777"如果是设置了粘滞位,除了目录的属主和"root"用户有权限删除,除此之外其他用户都不允许删除该目录。

五、特殊权限总结:

1.SUID
主要是对命令,或者二进制文件,以该二进制文件的属主权限来执行该文件  命令:passwd

2.SGID
主要是针对目录进行授权,共享目录

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

一个普通用户:zls 属于 oldboyedu这个组
一个文件权限:rwxrw-r-x root.oldboyedu  filename1

r:读 4
w:写 2
x:执行 1
suid:4000
sgid:2000
t:1000

六、linux权限属性chattr概述

1.chattr

只有root用户可以使用,用来修改文件系统的权限属性,凌驾于r w x suid sgid t 之上的权限

chattr命令格式:[[email protected] ~]# #chattr [+-=][选项] 文件名或目录名

设置文件属性(权限),针对所有用户,包括 root

lsattr:
查看特殊权限
chattr:
设置特殊权限
i:锁定文件,不能编辑,不能修改,不能删除,不能移动,可以执行
a:仅可以追加文件,不能编辑,不能删除,不能移动,可以执行
#+增加选项   -减少选项    =等于某个权限

#创建文件并设置属性
[[email protected] ~]# touch file_a file_i
[[email protected] ~]# lsattr file_a file_i
---------------- file_a
---------------- file_i

#设置属性
[[email protected] ~]# chattr +a file_a
[[email protected] ~]# chattr +i file_i
[[email protected] ~]# lsattr file_a file_i
-----a---------- file_a
----i----------- file_i

#a权限,无法覆盖写入和删除文件
[[email protected] ~]# echo 111 > file_a
-bash: file_a: Operation not permitted
[[email protected] ~]# rm -f file_a
rm: cannot remove ‘file_a’: Operation not permitted

#a权限,只能追加,适用于日志文件
[[email protected] ~]# echo 111 >> file_a
[[email protected] ~]# cat file_a
111

# i权限,无法写入,无法删除
[[email protected] ~]# echo 111 > file_i
-bash: file_i: Permission denied
[[email protected] ~]# echo 111 >> file_i
-bash: file_i: Permission denied
[[email protected] ~]# rm -f file_i
rm: cannot remove ‘file_i’: Operation not permitted
[[email protected] ~]# chattr -a file100
chattr: No such file or directory while trying to stat file100
#解除限制
[[email protected] ~]# chattr -a file_a
[[email protected] ~]# chattr -i file_i
#再次查看文件及属性
[[email protected] ~]# lsattr file_a file_i
---------------- file_a
---------------- file_i

七、Linux进程掩码umask

1.什么是umask

当我们登录系统之后,创建一个文件总是有一个默认权限,比如:
目录默认权限:755
文件默认权限:644

是umask设置了用户创建文件的默认权限

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

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

3.umask涉及到的配置文件

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

注意umask影响的范围
shell (vim,touch) --umask--> 新文件或目录权限
vsftpd --umask--> 新文件或目录权限
samba --umask--> 新文件或目录权限
useradd --umask--> 用户 HOME

示例:

1.假设umask值为:022(所有位为偶数)
//文件的起始权限值
6 6 6  -  0 2 2  = 6 4 4 

2.假设umask值为:035(其他用户组位为奇数)
//计算出来的权限。
6 6 6  -   0 3 5 = 6 3 1  ,
如果结果是奇数,需加1,实为642
所以,在其他用户组位再加1。

3.默认目录权限计算方法
7 7 7  -  0 2 2 = 7 5 5

在shell进程中创建文件

#查看当前用户的umask权限
[[email protected] ~]# umask
0022
[[email protected] ~]# touch file0022
[[email protected] ~]# mkdir dir0022
[[email protected] ~]# ll -d file0022  dir0022/
drwxr-xr-x 2 root root 6 Jan 24 09:02 dir0022/
-rw-r--r-- 1 root root 0 Jan 24 09:02 file0022

修改umask值,临时生效,再开机会回到默认值

[[email protected] ~]# umask 000
[[email protected] ~]# mkdir dir000
[[email protected] ~]# touch file000
[[email protected] ~]# ll -d dir000 file000
drwxrwxrwx 2 root root 6 Jan 24 09:04 dir000
-rw-rw-rw- 1 root root 0 Jan 24 09:04 file000

原文地址:https://www.cnblogs.com/gongjingyun123--/p/11122946.html

时间: 2024-12-30 12:43:25

Linux权限管理---特殊权限的相关文章

杂项-权限管理:权限管理

ylbtech-杂项-权限管理:权限管理 权限管理,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源,不多不少.权限管理几乎出现在任何系统里面,只要有用户和密码的系统. 很多人常将"用户身份认证"."密码加密"."系统管理"等概念与权限管理概念混淆. 1.返回顶部 1. 场景举例 企业IT管理员一般都能为系统定义角色,给用户分配角色.这就是最常见的基于角色访问控制.场景举例: 1,给张三赋予"人力资源经

Linux学习笔记(二)——Linux用户管理和权限管理

Linux系统的权限管理 Linux系统是一个多用户多任务的操作系统,多用户是指系统资源可以被不同用户各自拥有,即每个用户对自己的资源有特定的权限,用户之间互不影响.Linux系统有一套权限管理机制,文件不允许非授权用户访问或修改.这种机制的实现是通过用户和组的形式实现的. 5.1           Linux安全机制 账户管理是Linux安全机制的核心部分.登录Linux系统的用户都会被分配一个的用户账户.用户对系统上文件的访问权限取决于他们登录系统时使用的账户.每个用户的权限是通过创建用户

Linux组管理和权限管理

Linux组基本 在linux中的每个用户必须属于一个组,不能独立于组外.在linux中每个文件 有所有者.所在组.其它组的概念. 1) 所有者 2) 所在组 3) 其它组 4) 改变用户所在的组 文件/目录 所有者 一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者 查看文件的所有者 1) 指令:ls –ahl 2) 应用实例 修改文件所有者 ? 指令: chown 用户名 文件名 组的创建 基本指令 groupadd 组名 应用实例: 创建一个组, ,monster 创建一个用户

linux 笔记--管理,权限管理,重定向,正则表达式

用户管理:useradd userdel usermod passwd chsh chfn finger id chage useradd:-u:UID -g:GID -G:附加组(可以有多个) -c:注释信息 -d:指定某个目录为家目录 -s:指定shell的路径(/etc/shells 文件中的某一行) -m:强制为用户创建家目录 -k:不复制/etc/skel(用户个人的环境配置文件)中的文件到家目录与-m:联合使用 -M:不创建家目录 -r:添加系统用户(不能登录,没有家目录) (/et

linux权限管理_ACL权限

一.什么是ACL权限 ACL是Access Control List(访问控制列表)的缩写,主要的目的是在提供传统的owner,group,others的read,write,execute权限之外的局部权限设定.ACL可以针对单个用户,单个文件或目录来进行r,w,x的权限设定,特别适用于需要特殊权限的使用情况. 二.分区ACL权限开启方式 查看分区ACL权限是否开启:# dumpe2fs -h /dev/sdb2 如果看到上面的信息,说明分区已经开启ACL权限. 挂在分区时,默认会开启ACL

(转) Linux权限管理(基本权限、默认权限)

一.文件基本权限 1-1.基本权限的修改 -rw-r--r--  - 第一个"-"表示文件类型(- 文件,d 目录,l 软链接文件)  - rw-       r--       r--    u所有者   g所属组   o其它人其中r读,w写,x执行 (1).chmod  [选项]  模式  文件名  - 选项    . -R  递归  - 模式    [ugoa] [+-=] [rwx]    [mode=421] #为所有者添加rw权限, 所属组去除w权限chmod u+rw,

[权限管理]——一般权限、特殊权限、隐藏权限

Linux下的文件/目录有三类权限:一般权限.特殊权限.隐藏权限 关于权限与归属的认识(三张图) 访问权限/一般权限:r w x 1.对目录而言rwx的意义是? r:意味着具有读取目录结构列表的权限.即能够使用ls命令 $ ll dr--------. 2 lyj01 lyj01 4096 7月 7 09:59 test1 $ cd test1/ ------>#只有r权限是没有办法cd进入目录的 bash: cd: test1/: 权限不够 $ ls test1/ ls: 无法访问test1/

权限管理ACL权限

简介 文件的权限一般主要针对三种用户类型:所有者.用户组.其他人:如果有一个用户,我们希望他对文件的权限不在上述三种用户权限之内,我们需要怎么做呢?再新添一个用户组,并将该用户组设为文件的用户组?不可以,一个文件只能有一个用户组,如果指定了新的用户组,之前的用户组将作废.ACL命令就是为了解决三种基本用户类型不满足要求时的问题 查看分区的ACL权限是否开启 ACL权限需要文件所在的分区的支持:首先查看一下系统有哪些分区,使用df -h命令 根分区的文件系统是/dev/sda5,查看该分区是否开启

通用权限管理平台权限控制--按钮权限

通用权限管理系统的重点在于如何更好的控制按钮操作权限,在下结合自己的平台经验,在使用MVC的环境下,使用自定义MVC控件,并且结合系统的权限控制于一体,减少业务在权限方面的控制,使对按钮权限的控制更加简洁. 通用权限控制系统的权限用户控件实现以后,在实际使用中如下所示: @Html.Eap().Button().Id("btnAdd").Name("添加").Class("easyui-linkbutton").IconClass("i