day22-权限体系补充和用户管理的知识

16952149-a664af87f25bfa77.png

column -t 对齐

补充、权限如何让系统安全

文件名存放在文件所在目录的block

16952149-2e9b6c02dbb66983.png

16952149-c9f0ea9dda6c4b13.png

※一、权限如何让系统安全

1.单台服务器

1.网站运行的时候使用www(虚拟用户)

2.网站站点目录/app/blog
文件
644 root root
目录
755 root root

3.用户上传的目录 如/uploads
文件
644 www www
目录
755 www www

4.程序代码限制 指定类型(图片或压缩包)
5.上传禁止运行(NFS)

2.、如何让系统安全

1.最小化
安装系统的时候
操作最小化
        rm -f 尽量别加r
        开启服务
2.保护root
禁止root远程登录系统
修改远程连接(sshd)默认端口号
制作指纹认证md5sum※
※md5sum指纹认证
1.大家拿到的东西是否一致
2.对比文件是否发生变化
16952149-84bda8ae361ce9dd.png
[16:48 root@oldboy ~]# find /oldboy/ -type f -name '*.txt'|xargs md5sum
d41d8cd98f00b204e9800998ecf8427e  /oldboy/old.txt
d41d8cd98f00b204e9800998ecf8427e  /oldboy/old1.txt
d41d8cd98f00b204e9800998ecf8427e  /oldboy/lidao/lidao01.txt
d41d8cd98f00b204e9800998ecf8427e  /oldboy/lidao/lidao02.txt
d41d8cd98f00b204e9800998ecf8427e  /oldboy/lidao/lidao03.txt
d41d8cd98f00b204e9800998ecf8427e  /oldboy/lidao/lidao04.txt
d41d8cd98f00b204e9800998ecf8427e  /oldboy/lidao/lidao05.txt
d41d8cd98f00b204e9800998ecf8427e  /oldboy/lidao01.txt
d41d8cd98f00b204e9800998ecf8427e  /oldboy/lidao02.txt
d41d8cd98f00b204e9800998ecf8427e  /oldboy/lidao03.txt
d41d8cd98f00b204e9800998ecf8427e  /oldboy/lidao04.txt
d41d8cd98f00b204e9800998ecf8427e  /oldboy/lidao05.txt
[16:49 root@oldboy ~]# find /oldboy/ -type f -name '*.txt'|xargs md5sum >/tmp/oldboy.md5
[16:49 root@oldboy ~]# md5sum -c /tmp/oldboy.md5 
/oldboy/old.txt: OK
/oldboy/old1.txt: OK
/oldboy/lidao/lidao01.txt: OK
/oldboy/lidao/lidao02.txt: OK
/oldboy/lidao/lidao03.txt: OK
/oldboy/lidao/lidao04.txt: OK
/oldboy/lidao/lidao05.txt: OK
/oldboy/lidao01.txt: OK
/oldboy/lidao02.txt: OK
/oldboy/lidao03.txt: OK
/oldboy/lidao04.txt: OK
/oldboy/lidao05.txt: OK

1.找出/oldboy目录下面 以.txt结尾的文件 制作md5 存放在/tmp/oldboy.md5
2.对比 md5sum -c


16952149-9c3cf38b3402ff1e.png

※二、文件系统权限(属性)

chattr --->修改隐藏属性
        chattr -i oldboy.txt 
        -----i---------- oldboy.txt
    参数:
      a  append 让文件或目录只能追加用途
      i  immutable  无敌的 不得任意更动文件或目录 只能查看
lsattr 查看文件隐藏属性
        lsattr oldboy.txt
        ----i----------- oldboy.txt
16952149-58cd77cf71b2c1a2.png

三、Linux特殊权限

suid (setuid) ---->s

    某个文件在所有者上有s,suid
    拥有suid的命令,任何用户执行的时候都相当于root (文件所有者的权限) 

※#chmod u+s /bin/ls或者chmod 4755 /bin/ls来添加特殊权限,除了/tmp/和/passwd是共享的

特殊权限-没有添加s权限
16952149-82070205c1f9969f.png

切换用户下使用 ls查看
16952149-0419d377d79a6f21.png

用chmod u+s给添加 s 权限后变红
16952149-23cf7a704aa37a82.png

去oldboy用户下ls就可以查看目录了
16952149-0ade2007e845cdb2.png

在oldboy下删除 rm -f /root/oldboy.txt 也就可以执行了

在添加特殊权限后,查看是否添加成功suid ll -d 看权限中是否有s

chmod u+s  /bin/ls
chmod 4755 /bin/ls  ----> stat /bin/passwd
chmod u-s /bin/ls
passwd

粘滞位 sticky

每个人都可以在这个目录下面创建文件或删除 /tmp
每个人只能管理自己的文件

/tmp权限: 1777/tmp/
16952149-f469cb3898cb419e.png

※四、用户管理

UID: 用户 id 号

用户分类
UID
 root
普通用户
虚拟用户(1-999)---->保证各种进程/服务正常运行

1.核心文件和目录

文件

查看以下的文件

[17:43 oldboy@oldboy ~]$ ll /etc/passwd /etc/shadow /etc/group /etc/shadow
-rw-r--r-- 1 root root  689 Apr 24 13:53 /etc/group
-rw-r--r-- 1 root root 1176 Apr 24 13:53 /etc/passwd    
---------- 1 root root  851 Apr 24 13:53 /etc/shadow
---------- 1 root root  851 Apr 24 13:53 /etc/shadow

核心文件
/etc/passwd 用户信息 ※※※※
/etc/shadow 存放密码信息
/etc/group 用户组信息
/etc/gshadow 用户组密码信息

※常用的命令解释器:

/bin/bash
※/sbin/nologin #虚拟用户的命令解释器

[18:09 oldboy@oldboy ~]$ cat /etc/shells 
/bin/sh  \\只是bash的软链接
/bin/bash
/usr/bin/sh
/usr/bin/bash
16952149-a228029ccdebc809.png

找出/etc/passwd中的虚拟用户,显示这个用户名的名字和uid
awk -F:'/nologin/{print 3,$NF}'/etc/passwd|column -t
column -t是用来对齐的#


16952149-e5c0a53f383aedbc.png

目录

/etc/skel/的作用

16952149-031d97477da7e8d6.png

解释:

.bash_prifile  和/etc/profile类似(PS1字体颜色 LANG字符集 PATH命令的位置)
.bash_logout    
.bashrc     /etc/bashrc

我们尝试还原一个故障模拟:

【企业故障案例】:命令行提示符-bash-4.1

1.修改/etc/profile 给PS1加上注释(测试完后记得改回来~)
[root@oldboyedu59 ~]# tail -1 /etc/profile
export PS1="[[\e[34;1m]\u@[\e[0m][\e[32;1m]\H[\e[0m] [\e[31;1m]\w[\e[0m]]$ "
source /etc/profile 让它生效

2.添加的用户useradd alex

3.切换用户
[root@oldboyedu59 ~]# useradd alex
useradd: user 'alex' already exists
[root@oldboyedu59 ~]# su - alex
[alex@oldboyedu59 ~]$

4.检查是否有suid

ls -l /bin/rm (如果有chmod u-s /bin/rm)
16952149-5960fd5253874b43.png

5.尝试下删根~

rm -fr /
16952149-7a8249eab6e8aaa3.png

6.重新登录alex
16952149-896aacdf0a6e2e1a.png

原因:

当前用户的环境变量的配置文件.bash_profile .bashrc 被删除

恢复办法
16952149-998719356966ed61.png

16952149-1f4dd85fa9612ca3.png

2.用户管理命令

操作用户:

①useradd 创建用户
※  -u  指定uid
※  -s  知道用户使用的命令解释器,创建虚拟用户  配合使用
※  -M  创建用户的 不创建家目录              配合使用

-c  指定用户的说明信息
-g  指定用户组
    主要组
-G  指定多个用户组
    附加组

例:添加用户oldboy888 指定uid为888 不可登录系统 不创建家目录

useradd oldboy888 -u 888 -s/sbin/nologin -M
16952149-8ee00c613ee1fb7a.png
②※su 和-su的区别
switch user
 - 
    切换用户的时候更新用户的环境变量
-c
    只能root用户可以使用,切换到某个用户执行命令,执行命令后自动退出这个用户
③passwd 修改密码

--stdin---->只能root用户使用

echo 123456|passwd --stdin oldboy   从前面获取到密码

从管道获取密码
非交互式设置密码

别人用history可以查看到历史,容易泄露,
所以 用history -c 用来清除历史命令记录

④userdel 删除用户

删除用户 默认不会删除家目录,目的是为了保护一些文件,安全一些。

删除用户替代方法:

在/etc/passwd中给用户签名加上#  井号把它注释掉

-r    删除用户和用户家目录(少用)
⑤usermod 修改用户信息(uid 命令解释器 组)

和useradd基本一样(可以命令干什么的就可以了)

    -g   添加到其他组
    -G  设置主要组
    -u  修改uid
    -s  修改命令解释器
16952149-046f2a1e8a5535f8.png

你可能感兴趣的:(day22-权限体系补充和用户管理的知识)