Linux高级管理

指令:


suid(chmod u+s)(4):普通用户通过suid提权
sgid(chmod g+s)(2):继承目录属组
sticky(chmod o+t)(1):只有root、文件、目录所有者可以删除
chatty +a :只能追加 chatty +i:不能更改重名删除 chatty +A:不能更改访问时间

umask:决定新建用户home目录的权限
*********************************************************************************************************************************************************************************************

 

特殊位 suid,sgid,sticky


高级权限的类型
suid=4
sgid=2
sticky=1

suid,(sgid)针对文件/程序时,具备临时提升权限。
sgid针对目录时,该目录具备继承属组的特性。
sticky针对目录设置,该目录中的内容只有root和属主能够删除。

请思考
问题1
问题1: 为什么会失败!
[root@localhost ~]# ll /root/file1.txt
-rw-r--r-- 1 root root 4 7月 27 14:14 /root/file1.txt
[alice@localhost ~]$ cat /root/file1.txt
cat: /root/file1.txt: 权限不够

分析:root运行是超管的权限,普通用户运行时是普通用户的权限。
root /usr/bin/cat (root) /root/file1.txt OK
alice /usr/bin/cat (alice) /root/file1.txt
示例1:suid 普通用户通过suid提权 <针对文件>
1.为cat程序添加上suid权限。
[root@tianyun ~]# chmod u+s /usr/bin/cat
2.使用普通用户运行cat。暂时获得root权限
[alice@tianyun ~]$ cat /root/file1.txt
请在试验后,将cat的suid权限除去。
示例2:suid(passwd)
1.观察passwd程序的suid位。
[alice@tianyun ~]$ ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 30768 2月 17 2012 /usr/bin/passwd
2.普通用户运行passwd
[alice@tianyun ~]$ passwd
更改用户 alice 的密码 。
为 alice 更改 STRESS 密码。
(当前)UNIX 密码:
3.其他终端查询,root身份运行passwd进程。(略)
[root@tianyun ~]# ps aux |grep passwd
root 3674 0.0 0.0 165764 1884 pts/1 S+ 14:34 0:00 passwd
示例3(sgid)
1.创建目录和组。设置目录的sgid位置。
[root@tianyun ~]# mkdir /home/hr
[root@tianyun ~]# groupadd hr
[root@tianyun ~]# chgrp hr /home/hr/
[root@tianyun ~]# chmod g+s /home/hr
[root@tianyun ~]# ll -d /home/hr/
drwxr-sr-x. 2 root hr 4096 Dec 5 16:03 /home/hr/
2.在目录中创建新文件。观察文件属组继承特性
[root@tianyun ~]# touch /home/hr/file9
[root@tianyun ~]# ll /home/hr/
-rw-r--r--. 1 root hr 0 Dec 5 16:03 file9
案例4(sticky)
1.创建一个公共权限(777)的目录/tmp/dir777
[root@tianyun ~]# mkdir /tmp/dir777
[root@tianyun ~]# chmod 777 /tmp/dir777
2.使用user1和user2在/tmp/dir777.创建文件,然后互相删除。
3.设置目录 /tmp/dir777 的sticky权限。
[root@tianyun ~]# chmod o+t /home/dir1
[root@tianyun ~]# ll -d /home/dir1
rwxrwxrwt 2 root root 4096 09-02 02:26 /home/dir1
4.重复第二步操作。发现失败。
谁可以删除该目录中的文件:

答:
root
文件的所有者
目录的所有者
=========================
小知识:注意以下目录的正确权限,否则会导致程序不能正常运行
[root@wangcy ~]# ll -d /tmp /var/tmp/
drwxrwxrwt 14 root root 4096 07-26 10:15 /tmp
drwxrwxrwt 2 root root 4096 07-24 19:02 /var/tmp/
=========================
设置特殊权限
字符
chmod u+s file
chmod g+s dir
chmod o+t dir
数字
chmod 4777 file
chmod 2770 dir
chmod 1770 dir
文件属性chattr
用途
常用于锁定某个文件,拒绝修改。
分类

案例
1 先创建三个文件进行对比。查看默认权限。
[root@tianyun ~]# touch file100 file200 file300 file400
[root@tianyun ~]# lsattr file100 file200 file300
-------------- file100
-------------- file200
-------------- file300
2 加上不同属性。
[root@tianyun ~]# man chattr
[root@tianyun ~]# chattr +a file100 //只能追加
[root@tianyun ~]# chattr +i file200 //不能更改,重命名,删除
[root@tianyun ~]# chattr +A file300 //不能更改访问时间。

3 查看不同属性
[root@tianyun ~]# lsattr file100 file200 file300
-----a-------e- file100
----i--------e- file200
-------A-----e- file300
4 尝试追加,删除,更改。100不能覆盖,200不能删除,300改了不计时间。
[root@tianyun ~]# echo 111 > file100 //以覆盖的方式写入
bash: file100: Operation not permitted
[root@tianyun ~]# rm -rf file100
rm: cannot remove `file100': Operation not permitted
[root@tianyun ~]# echo 111 >> file100 //以追加的方式写入,例如日志文件

[root@tianyun ~]# echo 111 > file200
bash: file200: Permission denied
[root@instructor ~]# echo 111 >> file200
bash: file200: Permission denied
[root@tianyun ~]# rm -rf file200
rm: cannot remove `file200': Operation not permitted
5 记录file300 和file400 访问时间
[root@localhost ~]# stat file300 file400
观察两个文件的访问时间。截图
6 更改和访问文件。
[root@localhost ~]# date 06010000
2018年 06月 01日 星期五 00:00:00 CST
[root@localhost ~]# echo 111 >> file300
[root@localhost ~]# echo 111 >> file400
[root@localhost ~]# cat file300 file400
7 观察file300 和file400 访问变化时间
[root@localhost ~]# stat file300 file400
对比第五步文件访问的信息。300没有变化,400有变化。
理解-A锁定了访问时间。
6 将属性还原。
[root@tianyun ~]# chattr -a file100
[root@tianyun ~]# chattr -i file200
[root@tianyun ~]# chattr -A file300
注意
设置文件属性(权限),针对所有用户,包括root

进程掩码 mask umask
概述
新建文件、目录的默认权限会受到umask的影响,umask表示要减掉的权限
用途
shell (vim,touch) =======umask======> 新文件或目录权限
vsftpd =======umask======> 新文件或目录权限
samba =======umask======> 新文件或目录权限
useradd =======umask======> 用户HOME
示例1:观察系统默认掩码
示例1: 在shell进程中创建文件
[root@tianyun ~]# umask //查看当前用户的umask权限
0022
[root@tianyun ~]# touch file800
[root@tianyun ~]# mkdir dir800
[root@tianyun ~]# ll -d dir800 file800
drwxr-xr-x. 2 root root 4096 3月 11 19:40 dir800
-rw-r--r--. 1 root root 0 3月 11 19:40 file800
示例2:老铁,双击666
修改shell umask值(临时)
示例2:修改shell umask值(临时)
[root@tianyun ~]# umask 000
[root@tianyun ~]# mkdir dir900
[root@tianyun ~]# touch file900
[root@tianyun ~]# ll -d dir900 file900
drwxrwxrwx. 2 root root 4096 3月 11 19:44 dir900
-rw-rw-rw-. 1 root root 0 3月 11 19:44 file900
示例3:修改shell umask值(永久 建议不要)
示例3:修改shell umask值(永久 建议不要)
[root@tianyun ~]# vim /etc/profile
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
umask 002
else
umask 022
fi
[root@tianyun ~]# source /etc/profile //立即在当前shell中生效

示例4:通过umask决定新建用户HOME目录的权限
示例4:通过umask决定新建用户HOME目录的权限
[root@tianyun ~]# vim /etc/login.defs
UMASK 077
[root@tianyun ~]# useradd gougou
[root@tianyun ~]# ll -d /home/gougou/
drwx------. 4 gougou gougou 4096 3月 11 19:50 /home/gougou/

[root@tianyun ~]# vim /etc/login.defs
UMASK 000
[root@tianyun ~]# useradd yangyang
[root@tianyun ~]# ll -d /home/yangyang/
drwxrwxrwx. 4 yangyang yangyang 4096 3月 11 19:53 /home/yangyang/

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值