云计算实战系列五(Linux文件权限II)

一. 高级权限

高级权限 suid,sgid,sticky

问题1: 为什么会失败!

[root@newrain ~]# ll /root/file1.txt  -rw-r--r-- 1 root root 4 7月  27 14:14 /root/file1.txt

[alice@newrain ~]$ cat /root/file1.txt 
cat: /root/file1.txt: 权限不够

分析: root /usr/bin/cat (root) /root/file1.txt OK

​ alice /usr/bin/cat (alice) /root/file1.txt

普通用户修改密码: alice /usr/bin/passwd (root) /etc/shadow

1.1.高级权限的类型

suid 4

sgid 2

sticky 1 粘滞位

1.2.设置特殊权限

a、字符

chmod u+s file

chmod g+s dir

chmod o+t dir

b、数字

chmod 4777 file

chmod 7777 file

chmod 2770 dir

chmod 3770 dir

示例1:suid 普通用户通过suid提权 <针对文件>

在进程文件(二进制,可执行)上增加suid权限

[root@newrain ~]# chmod u+s /usr/bin/cat

[root@newrain ~]# chmod u+s /usr/bin/rm

[alice@newrain ~]$ cat /root/file1.txt

==================================================

1.3.普通用户可以修改密码:

alice /usr/bin/passwd /etc/shadow

[alice@newrain ~]$ ll /etc/shadow

 ---------- 1 root root 1487 6月   4 13:43 /etc/shadow  [alice@newrain ~]$ ll /usr/bin/passwd 

-rwsr-xr-x. 1 root root 30768 2月  17 2012 /usr/bin/passwd

[alice@newrain ~]$ passwd

更改用户 alice 的密码 。

为 alice 更改 STRESS 密码。

(当前)UNIX 密码:

[root@newrain ~]# ps aux |grep passwd root 3674 0.0 0.0 165764 1884 pts/1 S+ 14:34 0:00 passwd

=======================================================

1.4.目前两种给普通用户提权手段:

sudo: 了解,有针对性,例如针对某个用户以能够以root的身份执行某些命令。

suid: 基本针对所有用户,任何用户在执行有suid权限的程序时(例如/usr/bin/rm),都是以root身份在执行。

示例2:sticky 用户只能删除自己的文件 <针对目录>

[root@newrain ~]# mkdir /home/dir1
[root@newrain ~]# chmod 777 /home/dir1
测试:user1在/home/dir1建立文件, user2尝试删除!

[root@newrain ~]# chmod o+t /home/dir1
[root@newrain ~]# ll -d /home/dir1
rwxrwxrwt 2 root root 4096 09-02 02:26 /home/dir1

谁可以删除:

root

文件的所有者

目录的所有者

示例3:sgid 新建文件继承目录属组 <针对目录>

[root@newrain ~]# mkdir /home/hr
[root@newrain ~]# chgrp hr /home/hr/
[root@newrain ~]# chmod g+s /home/hr
[root@newrain ~]# ll -d /home/hr/
drwxr-sr-x. 2 root hr 4096 Dec  5 16:03 /home/hr/

[root@newrain ~]# touch /home/hr/file9
[root@newrain ~]# ll /home/hr/
-rw-r--r--. 1 root hr   0 Dec  5 16:03 file9

====================================================

小知识:注意以下目录的正确权限,否则会导致程序不能正常运行

[root@newrain ~]# 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/HTML>

====================================================

二.文件属性 chattr【拓展】

文件权限管理之: 文件属性

2.1. 文件属性添加与查看

注:设置文件属性(权限),针对所有用户,包括root

[root@newrain ~]# touch file100 file200 file300 

[root@newrain ~]# lsattr file100 file200 file300

-------------e- file100

-------------e- file200

-------------e- file300

[root@newrain ~]# man chattr

[root@newrain ~]# chattr +a file100   
[root@newrain ~]# chattr +i file200 
[root@newrain ~]# chattr +A file300

[root@newrain ~]# lsattr file100 file200 file300

  -----a-------e- file100

 ----i--------e- file200

 -------A-----e- file300
[root@newrain ~]# echo 111 > file100                 //以覆盖的方式写入

bash: file100: Operation not permitted
[root@newrain ~]# rm -rf file100 
rm: cannot remove `file100': Operation not permitted
[root@newrain ~]# echo 111 >> file100               //以追加的方式写入,例如日志文件
[root@newrain ~]# echo 111 > file200
bash: file200: Permission denied
[root@instructor ~]# echo 111 >> file200
bash: file200: Permission denied
[root@newrain ~]# rm -rf file200 
rm: cannot remove `file200': Operation not permitted

[root@newrain ~]# chattr -a file100
[root@newrain ~]# chattr -i file200
[root@newrain ~]# chattr -A file300
[root@newrain ~]# lsattr

=====================================================

三.进程掩码umask[拓展]

文件权限管理之: 进程umask

进程 新建文件、目录的默认权限会受到umask的影响,umask表示要减掉的权限

shell (vim,touch) =======umask======> 新文件或目录权限 vsftpd =======umask======> 新文件或目录权限 samba =======umask======> 新文件或目录权限 useradd =======umask======> 用户HOME

示例1: 在shell进程中创建文件

[root@newrain ~]# umask                                     //查看当前用户的umask权限
0022
[root@newrain ~]# touch file800
[root@newrain ~]# mkdir dir800
[root@newrain ~]# 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:修改shell umask值(临时)

oot@newrain ~]# umask 000
[root@newrain ~]# mkdir dir900
[root@newrain ~]# touch file900
[root@newrain ~]# 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值(永久 建议不要)
[root@newrain ~]# vim /etc/profile   
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
    umask 002
else
    umask 022
fi
[root@newrain ~]# source /etc/profile       //立即在当前shell中生效

示例4:通过umask决定新建用户HOME目录的权限

[root@newrain ~]# vim /etc/login.defs 
UMASK           077
[root@newrain ~]# useradd gougou
[root@newrain ~]# ll -d /home/gougou/
drwx------. 4 gougou gougou 4096 3月  11 19:50 /home/gougou/

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

示例5:例如vsftpd进程 /etc/vsftpd/vsftpd.conf 【了解】

[root@newrain ~]# yum -y install vsftpd
[root@newrain ~]# man vsftpd.conf
anon_umask
local_umask
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值