linux下的特殊权限问题。

Linux系统上的特殊权限

特殊权限:SUID, SGID, STICKY

▇SUID:

默认情况下:用户发起的进程,进程的属主是其发起者;因此,其以发起者的身份在运行;

例如:以hadoop的身份登陆linux操作系统。运行ls命令。那么ls的进程的属主是hadoop。但是ls的程序文件的属主和属组依然是root。hadoop可以执行是因为程序文件 /bin/ls 的其他用户具有执行权限。hadoop应用的是other的权限。所以文件的属主属组和进程的属主不是一会事。一旦程序文件被某个用户执行后。运行为进程后,进程的属主是发起该进程的用户。但是SUID不同。

SUID的功用:用户运行某程序时,如果此程序拥有SUID权限,那么程序运行为进程时,进程的属主不是发起者,而是程序文件自己的属主;

示例:

默认情况:

添加SUID后:

管理文件的SUID权限:

chmod u+|-s FILE...

典型的SUID 用处:passwd   为了能让root意外的用户可以修改密码,并把密码保到/etc/shadow当中。passwd这个程序是经过精心设计的,普通用户使用时不能添加参数,只有root用户才可以。

展示位置:属主的执行权限位

如果属主原本有执行权限,显示为小写s;

否则,显示为大写S;

注意:给文件赋予SUID权限是非常危险的操作,比如:如果给/bin/cat赋予SUID权限,那么普通用户发起cat命令时,cat进程的属主为root。那么你懂的。cat "危险代码" > "某关键文件" 。所以passwd后不能带参数。有很多黑客会利用passwd的SUID权限来搞破坏。

■SGID:

功用:当目录属组有写权限,且有SGID权限时,那么所有属于此目录的属组,且以属组身份在此目录中新建文件或目录时,新文件的属组不是用户的基本组,而是此目录的属组;

管理文件的SGID权限:

chmod g+|-s FILE...

示例:

添加两个用户

~]#useradd fedora

~]#useradd centos

添加组:

~]#groupadd mygrp

为这两个用户添加附加组mygrp

~]#usermod -a -G mygrp fedora

~]#usermod -a -G mygrp centos

如果/var/tmp/test 没有SGID的权限那么fedora在/var/tmp/test下创建的文件只能fedora自己可以修改,其他用户可读。

如果/var/tmp/test 有SGID的权限那么fedora在/var/tmp/test下创建的文件同属于mygrp组的cengtos也可以修改,其他用户可读。

SGID功用:当目录属组有写权限,且有SGID权限时,那么所有属于此目录的属组,且以属组身份在此目录中新建文件或目录时,新文件的属组不是用户的基本组,而是此目录的属组;

展示位置:属组的执行权限位

如果属组原本有执行权限,显示为小写s;

否则,显示为大写S;

■Sticky:

Sticky功用:对于属组或全局可写的目录,组内的所有用户或系统上的所有用户在此目录中都能创建新文件或删除所有的已有文件; 如果为此类目录设置Sticky权限,则每个用户能创建新文件,且只能删除自己的文件;

管理文件的Sticky权限:

chmod o+|-t FILE...

展示位置:其它用户的执行权限位

如果其它用户原本有执行权限,显示为小写t;

否则,显示为大写T;

系统上的/tmp和/var/tmp目录默认均有sticky权限;

小话题:

管理特殊权限的另一方式:

suid sgid sticy     八进制权限

0 0 0  0

0 0 1  1

0 1 0  2

0 1 1  3

1 0 0  4

1 0 1  5

1 1 0  6

1 1 1  7

基于八进制方式赋权时,可于默认的三位八进制数字左侧再加一位八进制数字;

例如:chmod 1777

■facl:file access control lists 文件访问控制列表。

facl是文件的额外赋权机制:在原来的u,g,o之外,另一层让普通用户能控制赋权给另外(不是other用户)的用户或组的赋权机制;

getfacl命令:

getfacl FILE...

user:USERNAME:MODE

group:GROUPNAME:MODE

setfacl命令:

赋权给用户:

setfacl  -m  u:USERNAME:MODE  FILE...

赋权级组:

setfacl  -m  g:GROUPNAME:MODE FILE...

撤销赋权:

setfacl  -x u:USERNAME  FILE...

setfacl  -x  g:GROUPNAME  FILE...

示例:

默认情况:

附加权限后:

时间: 2024-08-28 23:58:43

linux下的特殊权限问题。的相关文章

Linux下的用户权限

用户权限: drwxr-xr-x 4 root root 1024 06-22 17:36 boot #权限位 硬连接数 所属用户 所属组 大小 最后修改时间 文件/目录# r w x 4 2 1 用户权限位分为3段,分别对应USER GROUP OTHER rwxr-xr-x 755 默认的目录权限 rw-r--r-- 644 默认的文件权限(都是不给执行权限的) umask 查看默认创建目录时候的去掉的权限,看后面3位 [[email protected] zhangsan]# umask

linux下文件的权限

最近搞了一批权限最小化的问题,这里专门进行一下linux下文件权限的总结,其实非常简单. 在介绍linux下文件的情况,需要先介绍一个概念,用户.用户组. 和win一样,linux也是需要用户才能登录的.不同的是在linux中,还存在一个概念:用户组.也就是当前用户所属的属组.为什么要引入这样一个看似无用的用户组呢?这主要是为了在linux下,团队协作的方便.每一个用户都有属于自己独特的权限控制.但是有时候,有一些公有的文件或文件夹,这个你也用,我也用,但是我们并不希望所有人都能用.(防盗连接:

linux下目录读权限与执行权限区别

如果你在linux下用过ls,细心的你会发现目录竟然有可执行权限!如: drwxrwxr-x 11 cl cl 4096  9月 25 14:22 ./ drwxr-xr-x 49 cl cl 4096 10月 10 16:00 ../ drwxrwxr-x  5 cl cl 4096  9月 23 10:58 algorithm/ drwxrwxr-x  2 cl cl 4096  9月 23 21:44 temp/ why?? 在网上查了一下才发现是这个意思: 目录的可执行权限是表示你可否在

linux下关于文件权限

在学习linux中,发现linux系统对文件的权限管理要比windows很严格. linux下建立新的组:groupadd 组名 linux新建立用户:useradd 用户名 创建用户并分组: useradd -g 组名 用户名 查看用户信息: cat /etc/passwd  或 vi /etc/passwd其中cat命令只能查看,没有修改权限,vi命令既有查看权限,又有修改权限(也就是读/写权限) eg:新建两个组:A组和B组 新建两个用户:a和b 其中a用户属于A组,b用户属于B组. 当b

linux下修改串口权限

Linux下的设备使用都需要使用sudo或root用户才能打开,为了能让普通用户也能使用串口,可以增加udev规则来实现,具体方法如下: sudo vim /etc/udev/rules.d/70-ttyusb.rules 增加如下内容: KERNEL=="ttyUSB[0-9]*",MODE="0666" 保存,重新插入USB转串口,普通用户就能搞定了

Linux下非root权限安装与使用GDAL库的方法

学习GDAL的话推荐两个网站. GDAL的官方文档:www.gdal.org 李民录老师的博客:http://blog.csdn.net/liminlu0314/article/category/777646 下面进入正题. 笔者的系统为RHEL4. 建议Linux的使用者习惯非root权限的操作,这是一个好习惯,在工作中会很有帮助. 首先安装GDAL依赖库PROJ.4和GEOS. PROJ.4是提供投影坐标系相关操作的库,GEOS是提供空间分析计算相关的库.都是开源的项目,可以自行Google

Linux培训教程 linux下修改用户权限的方法

一般我们日常碰到要修改用户权限的,往往是要么修改一下用户的gorupid,通过上面命令可以改;要么是把普通用户改成具有超级权限的用户,这个一般自己不能直接改,只能是root或有root权限的用户才能帮你改,在/etc/passwd文件里面,找到对应userid那一行,将userid那一列你的id改成0,然后强制保存退出.这时候你的这个用户就有超级用户权限了.改用户的groupid也可以这样改. 如果是改某个文件的属性,就比较简单了,直接用chmod命令就可以了,我一般直接后面接数字,如果要给rw

Linux下用户组和权限管理

前言:此次验证操作环境为CentOS7.3,及CentOS6.9. 人员账号的管理是身为运维人员必要掌握的技能之一.其工作中的用途甚至比文件安全.软件配置更为广泛.对用户组及其相关权限有个清晰的认识,有利于我们工作学习的开展.下面就我个人理解,在此斗胆做个总结. 我们知道,当用ll或ls –l去查看目录下文件时,往往会得到如下的结果. drwxrwxr-x. 2 magedu magedu 6 Jul 21 21:03 magedu -rw-r--r--. 1 root   root   0 J

linux下的文件权限

文件管理方式 linux中管理方式都是以文件来管理的,就是俗话说的一切皆文件的思想,文件是文件,目录和外设都是特殊的文件 如图所示,查看一个目录下所有的文件命令: 每一列的含义如下: 第一列:文件类型. 第二列:表示文件个数.如果是文件,那么就是1:如果是目录,那么就是该目录中文件的数目. 第三列:文件的所有者,即文件的创建者. 第四列:文件所有者所在的用户组.在Linux中,每个用户都隶属于一个用户组. 第五列:文件大小(以字节计). 第六列:文件被创建或上次被修改的时间. 第七列:文件名或目