linux用户权限 -> 系统特殊权限
set_uid
运行一个命令的时候,相当于这个命令的所有者,而不是执行者的身份。
suid的授权方法
suid 权限字符s(S),用户位置上的x位上设置。
授权方法:chmod passwd
chmod u+s passwd
suid的作用
1.让普通用户拥有二进制文件的所属主权限,二进制文件需要有执行权限。
2.如果设置的二进制文件没有执行权限,那么suid的权限显示就是大S。
3.特殊权限suid仅对二进制可执行程序有效,其他文件或目录则无效。
4.如果普通用户需要操作没有权限的文件,为对应的命令赋予Suid权限。
注意: suid双刃剑, 是一个比较危险的功能, 对系统安全有一定的威胁。
set_gid
运行一个命令的时候,相当于是这个命令所在的用户组
sgid授权方法
suid 权限字符s(S),取决于属组位置上的x。
授权方法:chmod directory
chmod g+s directory
sgid作用
1.针对用户组权限位修改,用户创建的目录或文件所属组和该目录的所属组一致。
2.当某个目录设置了sgid后,在该目录中新建的文件不在是创建该文件的默认所属组
3.使用sgid可以使得多个用户之间共享一个目录的所有文件变得简单。
sticky粘滞位
sticky
对目录有写权限的用户仅仅可以删除目录里属于自己的文件,不能删除其他用户的文件
系统中存在的/tmp
目录是经典的粘滞位目录,谁都有写权限,因此安全成问题,常常是木马第一手跳板。
sticky授权方法
粘滞位 权限字符t(T),其他用户位的x位上设置。
授权方法:chmod /tmp
chmod o+t /tmp
sticky作用
1.让多个用户都具有写权限的目录,并让每个用户只能删自己的文件。
2.特殊sticky目录表现在others的x位,用小t表示,如果没有执行权限是T
3.一个目录即使它的权限为"777"如果是设置了粘滞位,除了目录的属主和"root"用户有权限删除,除此之外其他用户都不允许删除该目录。
查看隐藏属性
[root@Test01 ~]# lsattr /tmp
-------------e- /tmp/100m
其中e为默认值
修改隐藏属性chattr
) 使用chattr修改
+增加,-减少,=设置仅有 ) 相关参数如下
a 只允许向文件中增加内容(包含root用户)例:chattr +a a.txt
i 不允许修改文件内容(包含root用户) 例:chattr +i a.txt
A 文件或目录每次被访问不会修改atime。可避免I/O过度访问磁盘
s 若删除,则从磁盘空间删除
c 对文件自动压缩,读取是自动解压
u 若删除,还在磁盘中,可以恢复文件
a:让文件或目录仅可追加内容
i:不得任意更动文件或目录 //创建文件并设置属性
[root@xuliangwei ~]# touch file_a file_i
[root@xuliangwei ~]# lsattr file_a file_i
---------------- file_a
---------------- file_i //设置属性
[root@xuliangwei ~]# chattr +a file_a
[root@xuliangwei ~]# chattr +i file_i
[root@xuliangwei ~]# lsattr file_a file_i
-----a---------- file_a
----i----------- file_i //a权限, 无法覆盖写入和删除文件
[root@xuliangwei ~]# echo "aa" > file_a
bash: file_a: Operation not permitted
[root@xuliangwei ~]# rm -f file_a
rm: cannot remove ‘file_a’: Operation not permitted //a权限, 只能追加, 适用于日志文件
[root@xuliangwei ~]# echo "aa" >> file_a //i权限, 无法写入, 无法删除
[root@xuliangwei ~]# echo "i" > file_i
bash: file_i: Permission denied
[root@xuliangwei ~]# echo "i" >> file_i
bash: file_i: Permission denied
[root@xuliangwei ~]# rm -f file_i
rm: cannot remove ‘file_i’: Operation not permitted //解除限制
[root@tianyun ~]# chattr -a file100
[root@tianyun ~]# chattr -i file200
进程掩码umask
umask
用于控制系统权限, 默认系统权限较大, 需要靠Umask来变更权限
默认新建文件,系统默认最大权限为666
默认新建目录,系统默认最大权限是777
我们在新建文件和目录的默认权限会受到umask
的影响, umask
表示要减掉的权限。
创建目录权限值为777-umask
创建普通文件权限值为644-umask
umask
涉及到的相关文件/etc/bashrc /etc/profile ~/.bashrc ~/.bash_profile
注意umask影响的范围
shell (vim,touch) --umask--> 新文件或目录权限
vsftpd --umask--> 新文件或目录权限
samba --umask--> 新文件或目录权限
useradd --umask--> 用户 HOME
.假设umask值为:(所有位为偶数)
//文件的起始权限值
- = .假设umask值为:(其他用户组位为奇数)
//计算出来的权限。由于umask的最后一位数字是5,所以,在其他用户组位再加1。
- = .默认目录权限计算方法
- = umask //umask所有位全为偶数时
示例:mkdir d044 //目录733
示例:touch f044 //文件622 umask //umask值的部分或全部位为奇数时
示例:mkdir d023 //目录754
示例:touch f023 //文件644 umask //umask值的所有位为奇数时
示例:mkdir d035 //目录742
示例:touch f035 //文件642
示例1: 在shell进程中创建文件
//查看当前用户的umask权限
[root@xuliangwei ~]# umask [root@xuliangwei ~]# touch file0022
[root@xuliangwei ~]# mkdir dir0022
[root@xuliangwei ~]# ll -d file0022 dir0022/
drwxr-xr-x root root Jan : dir0022/
-rw-r--r-- root root Jan : file0022
示例2: 修改shell umask值(临时生效)
[root@xuliangwei ~]# umask
[root@xuliangwei ~]# mkdir dir000
[root@xuliangwei ~]# touch file000
[root@xuliangwei ~]# ll -d dir000 file000
drwxrwxrwx root root Jan : dir000
-rw-rw-rw- root root Jan : file000
示例3: 修改shell umask值(永久生效, 强烈不建议修改)
[root@xuliangwei ~]# vim /etc/profile
if [ $UID -gt ] && [ "`id -gn`" = "`id -un`" ]; then
umask
else
umask
fi //立即在当前 shell 中生效
[root@xuliangwei ~]# source /etc/profile
示例4: 通过umask决定新建用户HOME目录的权限
[root@xuliangwei ~]# vim /etc/login.defs
UMASK
[root@xuliangwei ~]# useradd dba
[root@xuliangwei ~]# ll -d /home/dba/
drwx------. dba dba 月 : /home/dba/ [root@tianyun ~]# vim /etc/login.defs
UMASK
[root@xuliangwei ~]# useradd sa
[root@xuliangwei ~]# ll -d /home/sa/
drwxrwxrwx. sa sa 月 : /home/sa/
特殊权限练习题
创建三个用户, 分别为curly
larry
moe
这些用户都是stooges
组的成员。
这些用户帐号密码都为password
1.要求以上用户和组可以在/home/stooges
目录里访问,创建,删除文件
2.其他用户一律不允许访问该目录
3.在该目录下新建的文件会自动属于stooges
组拥有
//创建用户,组
useradd curly
useradd larry
useradd moe
groupadd stooges //创建密码
echo "password" |passwd --stdin moe
echo "password" |passwd --stdin larry
echo "password" |passwd --stdin curry //将用户加组
gpasswd -a larry stooges
gpasswd -a moe stooges
gpasswd -a curly stooges //创建目录并配置权限
mkdir /home/stooges
chmod /home/stooges
chown .stooges /home/stooges
chmod g+s /home/stooges
linux用户权限 -> 系统特殊权限的更多相关文章
- Linux - 用户管理与文件权限
目录 Linux - 用户管理与文件权限 创建普通用户 切换用户 userdel删除用户 sudo 命令 文件与目录权限 Linux权限的解读 目录权限 查看用户权限的命令 文件权限 修改权限的命令 ...
- Linux 用户管理 与 文件权限
Linux 用户管理 与 文件权限 用户组操作 1.groupadd命令 groupadd [-g -o] gid group 各个选项具体含义如下: -g:指定新建用户组的GID号,该GID号必须唯 ...
- linux用户管理和文件权限
linux用户管理和文件权限 新建用户:useradd ftpuser useradd -g gxx userxx修改密码:passwd ftpuser新增用户组:# groupadd gr ...
- linux用户权限 -> 系统基本权限
比如rwxr-xr-x linux中正是这9个权限位来控制文件属主(User).属组(Group).其他用户(Other)基础权限. 用户对资源来说, 有三种角色 User(u): 属主用户(文件所有 ...
- Linux用户体系和文件权限总结
一. Linux系统用户和用户组相关文件 1. /etc/passwd文件 这个passwd文件是Linux用户信息文件.文件格式说明如下: root:x:0:0:root:/r ...
- linux用户身份和文件权限
1.用户身份与能力 root管理员是linux 的超级用户,他拥有系统的所有权,能够管理系统的各项功能,如添加/删除用户,启动/关闭服务进程,开启/禁用硬件设备…… "Linux系统中的管理 ...
- Linux 用户身份与进程权限
在学习 Linux 系统权限相关的主题时,我们首先关注的基本都是文件的 ugo 权限.ugo 权限信息是文件的属性,它指明了用户与文件之间的关系.但是真正操作文件的却是进程,也就是说用户所拥有的文件访 ...
- 笔记:Linux用户管理(补充)、权限管理、内存管理、网络管理、渗透常用命令
一.用户管理(补充) 添加用户:useradd [选项] 用户名 useradd -u 5000 -g demogroup -G root -d /home/demo -s /bin/bash dem ...
- Linux用户身份与文件权限学习笔记
用户身份 管理员UID为0:系统的管理员用户 系统用户UID为1~999:服务程序会有独立的系统用户负责运行:防止被黑客入侵进行提权,并有效控制被破坏的范围 普通用户UID从1000开始:是由管理员创 ...
随机推荐
- python中使用%与.format格式化文本
初学python,看来零零碎碎的格式化文本的方法,总结一下python中格式化文本的方法.使用不当的地欢迎指出谢谢. 1.首先看使用%格式化文本 常见的占位符: 常见的占位符有: %d 整数 %f 浮 ...
- MT【156】特例$a_n=\dfrac{6}{\pi n^2}$
设无穷非负数列$\{a_n\}$满足$a_n+a_{n+2}\ge2 a_{n+1},\sum\limits_{i=1}^{n}{a_i}\le1$,证明:$0\le a_n-a_{n+1}\le\d ...
- Alpha 冲刺 —— 十分之八
队名 火箭少男100 组长博客 林燊大哥 作业博客 Alpha 冲鸭鸭鸭鸭鸭鸭鸭鸭! 成员冲刺阶段情况 林燊(组长) 过去两天完成了哪些任务 协调各成员之间的工作 多次测试软件运行 学习OPENMP ...
- 【bzoj4084】【sdoi2015】双旋转字符串
题解 首先题中说了$n>=m$; 分成的循环串左右两边为本质相同的单循环串循环串,分别长为$l = \frac{n + m}{2} $; 所以$S$串的前$l$位为双循环串的一半$S1$,后一半 ...
- jquery如何实现点击LI标签和下面的LI互换顺序? 超简单代码
转: jquery如何实现点击LI标签和下面的LI互换顺序? 上面的效果涉及jquery的两个方法: next() : 获得匹配元素集合中每个元素紧邻的下一个同胞元素. after() :在被选元 ...
- ribbion的负载均衡之端口的切换
可以说在这里被坑了很久,终于今天在大神的指导下,成功实现了负载均衡,切换不同的端口,这里来记录下,首先来看下效果图吧: 到底是怎么实现的呢?到底是如何切换的呢? 具体来讲: 几个步骤,启动服务注册中心 ...
- Long与long的区别
Java的数据类型分两种:1.基本类型:long,int,byte,float,double,char2. 对象类型(类): Long,Integer,Byte,Float,Double,Char,S ...
- PHP_EOL 写入字符串换行 , php获取毫秒 microtime
private function miclog($t1,$t2,$name){ $lasttime = ($t2 - $t1).'ms'; $content = date('Y-m-d H:i:s', ...
- 在Ubuntu16.04上安装virtualbox后无法装载vboxdrv模块
首先按照:http://blog.csdn.net/ipsecvpn/article/details/52175279 这个网址上的教程安装, 安装完成后报错:大体意思就是vboxdrv没有被内核装载 ...
- Lvs+Keepalived实现MySQL高可用
LVS+Keepalived+MySQL高可用配置 本文所有配置前提是已实现MySQL双主备份(MySQL双主) 安装前的准备: VIP:192.168.0.201 Keepalived: Keepa ...