UID,GID,粘滞位,setattr,lsattr

我们有的时候有这样的需要,允许一人用户查看修改其它用户的文件,但不允许删除。用一个普通用户执行一个命令,但这个命令的运行身份是root。因为linux系统权限设置过于简单,像做这些事情就需要用到facl了。facl是file access control list的缩写。

当一个用户访问一个文件时,文件权限匹配模型是这样的工作顺序:检查用户是否为文件的属主,如果是则按属主的权限来看读写执行权限。如果不是则检查用户是否为此文件的所属组的成员,如果是则按属组的权限。如果不是则都其它用户权限来给定。

SUID

一般情况下当我们以一个普通用户运行一个程序时,这个程序的发起者是用户本身,而这个程序是用户的代理。但如果给一个程序指定了SUID时,其它用户再运行这个程序则是以这个程序的所有者运行,passwd命令就是这样运行的,前提是程序的属主需要有执行权限。

chmod u+s [文件名] 用来给可执行的程序加上SUID位,然后用ls -l 查看这个文件,执行权限位显示为小s或大S。小s表示属主有执行的权限,大S表示属主没有执行权限。

用途,/etc/shadow这个文件普通用户使用cat命令无法查看,以root身份把cat这个程序加上SUID然后普通用户再执行cat /etc/shadow时就可以查看到文件的内容。

用户普通用户执行cat /etc/shadow

把cat程序拷贝到/wukui/test下并加上SUID后

#cp `which cat` /wukui/test/

#chmod u+s /wukui/test/cat

#su - wukui

#/tmp/test/cat /wukui/shadow

SGID

如果我们想给系统的一个用户对某个文件有写的权限,又不想给其它用户写权限,还不想把这个用户加入到我们这个组里,这时候就用到SUID了。SUID一般用在给目录设置。

比如/wukui/test这个目录里普通用户可以修改此目录里的文件内容,但不动这个目录的other权限。做法如下

#mkdir /wukui/test  创建目录

#groupadd fileshare 创建组

#chown :fileshare /wukui/test  修改此目录的所属组

#chmod g+s /wukui/test  给此目录添加SGID

#usermod -G fileshare user1  把user1加入到fileshare组

经过以上的操作,此目录里的文件other没有写的权限,user1用户也可以修改了。

ls -ld /wukui/test

sticky :沾滞位

这个一般给目录用,如果想让user1用户修改user2的文件,又不想让user2删除user1的文件,每个用户只能删除自己的文件。这里就需要乃至粘滞位了。

使用格式 :chmod o+s <目录名>

chmod o+s /wukui/test 这样/wukui/test这个目录里所有普通用户只能删除自己的文件,而不能删除它人的文件。

facl

通过facl普通用户可以透过文件的扩展属性,单独向其它用户或组设定额外的访问机制,而不需要改other权限来实现。启用facl之后的权限应用优先级,属主-用户级别的facl-属组-组级别的facl-其它用户

getfacl 显示 facl

getfacl filename

setfacl 修改 facl

使用格式:setfacl {-m|-x} [用户或组]:MODE FILE

-m 添加权限

setfacl -m u:wukui:rwx wukui.txt

getfacl wukui.txt

-x  删除权限

setfacl -x u:wukui wukui.txt

getfacl wukui.txt

-x u:USERNAME

-R 递归修改。仅对已有的文件生效。

setfacl -m u:wukui:rwx a.txt 添加用户可以访问格式

setfacl -m g:wukui:rw a.txt 添加组可以访问格式

chattr

lsattr

+ :在原有参数设定基础上,追加参数。
- :在原有参数设定基础上,移除参数。
= :更新为指定参数设定。
A:文件或目录的 atime (access time)不可被修改(modified), 可以有效预防例如手提电脑磁盘I/O错误的发生。
S:硬盘I/O同步选项,功能类似sync。
a:即append,设定该参数后,只能向文件中添加数据,而不能删除,多用于服务器日志文 件安全,只有root才能设定这个属性。
c:即compresse,设定文件是否经压缩后再存储。读取时需要经过自动解压操作。
d:即no dump,设定文件不能成为dump程序的备份目标。
i:设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。i参数对于文件 系统的安全设置有很大帮助。
j:即journal,设定此参数使得当通过mount参数:data=ordered 或者 data=writeback 挂 载的文件系统,文件在写入时会先被记录(在journal中)。如果filesystem被设定参数为 data=journal,则该参数自动失效。
s:保密性地删除文件或目录,即硬盘空间被全部收回。
u:与s相反,当设定为u时,数据内容其实还存在磁盘中,可以用于undeletion.
各参数选项中常用到的是a和i。a选项强制只可添加不可删除,多用于日志系统的安全设定。而i是更为严格的安全设定,只有superuser (root) 或具有CAP_LINUX_IMMUTABLE处理能力(标识)的进程能够施加该选项。

chattr +i /etc/passwd

UID,GID,粘滞位,setattr,lsattr,布布扣,bubuko.com

时间: 2024-08-04 18:31:52

UID,GID,粘滞位,setattr,lsattr的相关文章

Linux 文件系统权限小结-基本权限-粘滞位-ACL

突然有人问道:drwxrwxrwx+后面的+号是干什么的,挺熟悉又想不起来,百度下后得到结果,最终总结一下Linux系统下关于文件权限的知识,在此记录下. 1.正常情况下,Linux文件系统中的文件权限为: drwxr-xr-x 2 root root 4096 5月  24 15:12 directory -rw-r--r-- 1 root root    0 5月  24 15:12 file.txt 十位第一位为文件属性,d为目录,-为普通文件,c表示为字符设备文件,b表示为块设备文件,s

粘滞位

粘滞位,或粘着位,是Unix文件系统权限的一个旗标. 最常见的用法在目录上设置粘滞位,如此一来,只有目录文件的所有者或者root才可以删除或移动该文件.如果不为目录设置粘滞位,任何具有该目录写和执行权限的用户都可以删除和移动其中的文件. 实际应用中,粘滞位一般用于/tmp目录,防止普通用户删除或移动其他用户的文件. 在Linux系统中比较典型的例子就是"/tmp","/var/tmp"目录.这两个目录作为Linux系统的临时文件夹,权限为 即允许任意用户,任意程序在

linux下的粘滞位权限

1.为什么要有粘滞位? Linux中有一个存放临时文件的目录/tmp(类似于Windows中的temp目录),每个用户产生的临时文件都存放在此目录下,也就是说每个用户对/tmp目录都应该有写权限(否则无法拷贝生成文件),这样造成一个问题,比如,A同学在/tmp目录下创建了一个文件,B同学看着不爽就可以删掉,这如何控制?其实,这种情况永远都不会发生,因为/tmp目录有一个特殊的权限标记: 瞧见那个rwx权限最后的"t"了没,那个神奇的"t"就是粘着位t(有的资料中文也

文件的三种特殊权限——suid、sgid和粘滞位(sticky)

文件的正常权限是首选对用户进行分组:文件属主,文件属组和其它.然后每组类用户对文件具有三种基本的权限:r,w,x.除了这些正常的权限设置,还可以设置三种特殊权限. 1. suid.任何用户执行设置有该权限的文件后,不再以用户自己的身份作为进程的属主,而是以该执行文件的属主作为进程的属主.这种权限的实质就是让执行该文件的用户,在进程运行过程中被授予文件属主的身份. 举例: -rwsr-xr-x. 1 root root 48568 Sep 10 14:24 /tmp/cat 任何用户运行cat时,

网络安全系列之四十一 在Linux中设置粘滞位sbit权限

通常情况下用户只要对某个目录具备w写入权限,便可以删除该目录中的任何文件,而不论这个文件的权限是什么. 比如我们进行下面的操作: #创建/test目录,并赋予777权限. [[email protected] ~]# mkdir /test [[email protected] ~]# chmod 777 /test #以root用户的身份在/test目录中创建文件file1,并查看其默认权限. [[email protected] ~]# touch /test/file1 [[email p

Linux中相关知识(atexit(),fork(),粘滞位)

1.atexit()函数 函数名: atexit 头文件:#include<stdlib.h> 功 能: 注册终止函数(即main执行结束后调用的函数) 用 法: int atexit(void (*func)(void)); 注意:一个进程可以登记32个函数,这些函数由exit自动调用,这些函数被称为终止处理函数,atexit函数可以登记这些函数. exit调用终止处理函数的顺序和atexit登记的顺序相反,如果一个函数被多次登记,也会被多次调用. 程序例: #include <std

Linux文件和目录的粘滞位(sticky bit)带来的困惑(转)

今天维护系统时发现一个非常诡异的问题:AAA用户和BBB用户同属AAA组,但用AAA用户创建的文件,权限设置为777后,还是不能用BBB用户删除.诡异! 几经周转,发现AAA用户创建文件位置的上层目录的权限是drwxrwxrwt,做开发这么多年了,还没见过所谓"t"的权限,于是找了一位公司的linux大师帮忙,大师噼里啪啦的做了一堆试验后,然后在google上搜索"rwt linux",终于发现了问题,发现这种用法的名字是"文件的粘滞位(sticky)位&

setuid setgid stick bit 特殊权限 粘滞位

1.setuid与setgid讲解 看一下系统中用到它的地方,以/etc/passwd和/usr/bin/passwd为例: 分析一下,/etc/passwd的权限为 -rw-r--r-- 也就是说:该文件的所有者拥有读写的权限,而用户组成员和其它成员只有查看的权限.我们知道,在系统中我们要修改一个用户的密码,root用户和普通用户均可以用/usr/bin/passwd someuser这个命令来修改这个/etc/passwd这个文件,root用户本身拥有对/etc/passwd的写权限,无可厚

Linux文件和目录的粘滞位(sticky bit)

今天维护系统时发现一个非常诡异的问题:AAA用户和BBB用户同属AAA组,但用AAA用户创建的文件,权限设置为777后,还是不能用BBB用户删除.诡异! 几经周转,发现AAA用户创建文件位置的上层目录的权限是drwxrwxrwt,做开发这么多年了,还没见过所谓"t"的权限,于是找了一位公司的linux大师帮忙,大师噼里啪啦的做了一堆试验后,然后在google上搜索"rwt linux",终于发现了问题,发现这种用法的名字是"文件的粘滞位(sticky)位&