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/

特殊权限练习题

创建三个用户, 分别为curlylarrymoe这些用户都是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用户权限 -> 系统特殊权限的更多相关文章

  1. Linux - 用户管理与文件权限

    目录 Linux - 用户管理与文件权限 创建普通用户 切换用户 userdel删除用户 sudo 命令 文件与目录权限 Linux权限的解读 目录权限 查看用户权限的命令 文件权限 修改权限的命令 ...

  2. Linux 用户管理 与 文件权限

    Linux 用户管理 与 文件权限 用户组操作 1.groupadd命令 groupadd [-g -o] gid group 各个选项具体含义如下: -g:指定新建用户组的GID号,该GID号必须唯 ...

  3. linux用户管理和文件权限

    linux用户管理和文件权限 新建用户:useradd ftpuser      useradd -g gxx userxx修改密码:passwd ftpuser新增用户组:# groupadd gr ...

  4. linux用户权限 -> 系统基本权限

    比如rwxr-xr-x linux中正是这9个权限位来控制文件属主(User).属组(Group).其他用户(Other)基础权限. 用户对资源来说, 有三种角色 User(u): 属主用户(文件所有 ...

  5. Linux用户体系和文件权限总结

    一.           Linux系统用户和用户组相关文件 1.  /etc/passwd文件 这个passwd文件是Linux用户信息文件.文件格式说明如下: root:x:0:0:root:/r ...

  6. linux用户身份和文件权限

    1.用户身份与能力 root管理员是linux 的超级用户,他拥有系统的所有权,能够管理系统的各项功能,如添加/删除用户,启动/关闭服务进程,开启/禁用硬件设备…… "Linux系统中的管理 ...

  7. Linux 用户身份与进程权限

    在学习 Linux 系统权限相关的主题时,我们首先关注的基本都是文件的 ugo 权限.ugo 权限信息是文件的属性,它指明了用户与文件之间的关系.但是真正操作文件的却是进程,也就是说用户所拥有的文件访 ...

  8. 笔记:Linux用户管理(补充)、权限管理、内存管理、网络管理、渗透常用命令

    一.用户管理(补充) 添加用户:useradd [选项] 用户名 useradd -u 5000 -g demogroup -G root -d /home/demo -s /bin/bash dem ...

  9. Linux用户身份与文件权限学习笔记

    用户身份 管理员UID为0:系统的管理员用户 系统用户UID为1~999:服务程序会有独立的系统用户负责运行:防止被黑客入侵进行提权,并有效控制被破坏的范围 普通用户UID从1000开始:是由管理员创 ...

随机推荐

  1. Tengine,轻量级Web服务器

    阿里妹导读:Tengine,轻量级Web服务器,基于Nginx进行开发,针对大访问量网站的需求,新增了很多高级功能和特性.比如,Tengine兼容Nginx的所有配置,并且增加了独立进程框架.页面优化 ...

  2. BZOJ 4454: C Language Practice

    4454: C Language Practice Time Limit: 20 Sec  Memory Limit: 24 MBSubmit: 501  Solved: 112[Submit][St ...

  3. 【BZOJ4903/UOJ300】【CTSC2017】吉夫特

    Description 传送门 ​ 简述题意:给一个序列,询问有多少子序列满足其中不会出现\(a\choose b\)是偶数的情况,其中\(a\)在\(b\)前面. Solution 首先探究组合数的 ...

  4. Java之Java程序与虚拟机

    Java为什么要在虚拟机中运行 简单的来说,Java作为一门高级程序语言,语法复杂,抽象度高,不能直接翻译为机器码在机器上运行,所以设计者就设计了虚拟机,通过编译器将Java程序转换成虚拟机所能识别的 ...

  5. Ubuntu中Android SDK Manager无法更新解决办法

    Ubuntu中Android SDK Manager无法更新解决办法http://hi.baidu.com/petercao2008/item/d7a64441f04668e81e19bc1a

  6. 用ladon框架封装Python为Webservice接口以及调用接口的方法

    一.用ladon框架封装Python为Webservice接口 功能实现的同时,希望将接口开放给别人,而封装python接口的一个再简单不过的框架Ladon,而且提供不同的协议,包括SOAP和Json ...

  7. PDF文档小技巧整理一览

    1.福昕阅读器文档背景修改为保护眼睛的颜色? 1)文件 -> 偏好设置 -> 访问 -> 勾选 "改变文档颜色" 2)选择 '自定义颜色'->'页面背景颜色 ...

  8. 静态常量整数成员在class内部直接初始化

    #include <vector> #include <deque> #include <algorithm> #include <iostream> ...

  9. ural 2029 Towers of Hanoi Strike Back (数学找规律)

    ural 2029 Towers of Hanoi Strike Back 链接:http://acm.timus.ru/problem.aspx?space=1&num=2029 题意:汉诺 ...

  10. 【Asp.net入门3-05】处理JSON数据