day21权限补充-用户管理体系

文件访问过程

显示/oldboy/test.sh文件详细过程(inode block)
权限拒绝错误,与上级目录有关


文件访问过程(inode与bolck)

权限如何让系统安全

如何让系统安全

1.(最小化)
安装系统的时候
操作rm -f
开启服务

2.保护root
禁止root远程登录系统
修改远程连接(sshd)默认端口号

3.制作指纹认证
md5sum:制作一个指纹
格式:md5sum oldboy.txt

[root@yuyingqian ~]# md5sum oldboy.txt
3fe396c01f03425cb5e2da8186eb090d  oldboy.txt

把原指纹记录到一个地方

[root@yuyingqian ~]# md5sum oldboy.txt > /oldboy/police.md5

md5sum -c 对比指纹是否一致(一致时为ok 不一致为failed)

[root@yuyingqian ~]# md5sum -c /oldboy/police.md5 
oldboy.txt: OK
文件系统权限(隐藏属性)

chattr:修改隐藏属性
+a:只能追加(解锁-a)
+i:无敌的(解锁-i)
lsattr:查看隐藏属性

linux特殊权限

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

[root@yuyingqian ~]# chmod u+s /bin/rm
[oldboy@yuyingqian ~]$ ll /
total 10004
drwxr-xr-x.  80 root root     8192 Apr 24 08:31 etc
-rw-r--r--    1 root root 10213933 Apr 16 12:23 etc.bak
[oldboy@yuyingqian ~]$ rm -rf /etc.bak
rm: cannot remove ‘/etc.bak’: Permission denied
[root@yuyingqian ~]# chmod u+s /bin/rm
[oldboy@yuyingqian ~]$ rm -rf /etc.bak
[oldboy@yuyingqian ~]$ ll /
total 28
drwxr-xr-x.  80 root root 8192 Apr 24 08:31 etc

粘滞位 /tmp t
每个人都可以在这个目录下面创建文件
我们希望每个人只能管理自己的文件
1777 /tmp

用户管理

用户分类(通过UID区分)

root 普通用户 虚拟用户

核心文件和目录

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

虚拟用户在/etc/passwd中的命令解释器为/bin/nologin

目录:
/etc/skel :新用户家目录的样子
添加新用户的过程
1.useradd alex
2.系统创建家目录
3.权限所有者修改
4.把/etc/skel下面所有内容复制到家目录下

故障案例:命令提示符-bash-4.2$或者-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\]]\\$ "
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 

5.删根
rm -fr /* 

6.重新登录alex  

解决


解决

用户管理命令

操作用户

useradd 创建用户

-u 指定uid
-s 指定用户使用的命令解释器
-M 创建用户的不创建家目录
-c 指定用户的说明信息
-g 指定用户组
-G 指定多个用户组

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

[root@yuyingqian ~]# useradd -u 888 -s /bin/login -M oldboy999
[root@yuyingqian ~]# id oldboy999
uid=888(oldboy999) gid=1007(oldboy999) groups=1007(oldboy999)
[root@yuyingqian ~]# grep oldboy /etc/passwd
oldboy:x:1000:1000::/home/oldboy:/bin/bash
oldboy999:x:888:1007::/home/oldboy999:/bin/login
su (switch user) 切换

su - :切换用户时更新用户的环境变量
-c :切换到某个用户执行命令,执行命令后自动退出这个用户

passwd 设置密码

--stdin:从管道获取密码()非交互式设置密码
一般会跟清除历史命令记录一起使用(history -c)

userdel 删除用户

默认不删除家目录
-r 删除用户和用户的家目录
删除用户替代方法:在/etc/passwd中给用户前面加上#

usermod修改用户信息

-u 指定uid
-s 指定用户使用的命令解释器
-M 创建用户的不创建家目录
-c 指定用户的说明信息
-g 指定用户组
-G 指定多个用户组

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