用户账户及权限控制
场景一:A用户是开发组成员,B用户也是开发组成员,C用户,D用户是测试组成员;E用户自己一个人负责架构组
该场景下,开发组成员,每个人都有主机的私有权限,也有组内共享权限
测试组成员每个人都有自己的私有权限,也有组内共享权限
A用户的代码,C用户要测试,这时候组内共享权限不能满足要求,需要公共共享权限
E用户只需要自己的私有权限,此时不需要放在别的组中
用户管理:
与用户对应的几个文件:/etc/passwd(用户信息)、/etc/shadow(已加密密码信息)、/etc/groups(用户组信息)、/etc/default/useradd(useradd命令执行时所使用的默认值的文件)
useradd 用户名 -g 组名 -e 有效期 用户不存在时
usermod 用户名 -g 组名 -e 有效期 用户已经存在时
userdel用户名
users查看当前用户
groups查看当前用户所属组
id查看当前用户的用户id、组id等信息
设置密码有效期:
chage -l 用户名 查看用户密码过期信息
-m 最小过期时间、-M 最大过期时间(和密码的下一次失效时间有关)
-l 失效后停留时间(与账户失效时间有关)、-E 账户失效时间 -d 修改账户密码过期时间(已经过期时修改)
userdel删除用户:
(默认不删除用户文件夹,如果是-g指定组/组内还有其他用户,默认也不删除组)
正常情况下删除用户应该讲用户目录一起删除,如果用户目录中有有用的信息,请先备份至其他目录
userdel -r 用户名
su命令:切换用户
su test 从当前用户切换至test用户,一般情况下,诽谤root用户执行该指令,需要输入密码
用exit可以退出当前的切换(连接)
用root用户切换至其他用户,不需要输入密码;如果两个用户间已经添加互信,则不需要再次输入密码
私钥和公钥:
私钥是用户自己访问自己的机器,所需的秘钥
公钥是其他用户访问自己的机器,所需的密钥
将自己的私钥复制到其他用户的公钥处保存,即为互信的主要步骤
互信的过程:
1.建公钥和私钥:ssh-keygen 一路回车可以创建一个最简单的私钥和公钥,如果有额外秘钥要求,可以在第二步和第三步中写入秘钥
2.把公钥发送到要连接的用户@主机,ssh-copy-id-i ~/.ssh/id_rsa.pub用户@主机;此时需要输入一次密码
3.此时再连接时,就不需要再次输入密码(公钥被存储到authorized_keys中)
4.互信不能随便配置,一般是在公司内部,不同虚拟机之间有非人为的通信需求,此时需要添加互信
文件及文件夹在查看详细信息时,前十位是类型及权限限定
首位:-代表普通文件,d代表普通文件夹,l代表软链接;其他还有一些不常用的包括b、c等后9位是rwx及-组成的权限限定,可以分成三个部分
第一组三位,rwx代表读写执行,任意一位变成-,代表该位的权限秘钥;第一组三位是所属用户的权限
第二组三位,代表所属组的用户权限;第三组三位代表其他组内其他成员的权限
用二进制编码描述权限限定:rwx r-xr-x 对应的 111 101 101 文件夹的默认权限为755
文件的默认权限为:rw-r--r-- 对应的 110 100 100 文件夹的默认权限为644
常见的文件夹权限:755,700,777(公共文件夹);文件权限:644,755,700,600,666,777,655,611
修改权限:u代表所属用户,g代表所属组,o代表其他组
chmod u+x 文件名 chmod g-w 文件名 chmod o+rx 文件名 chmod+rw 文件名
源文件是660的权限,要集合上面前三种操作
chmod 745 文件名
修改所属:
Chown 所属用户:所属组 文件名
工作中常见的场景:
一个技术研发组中,有一个架构师,3个开发人员,2个测试,1个运维
开发组
测试组
运维架构组
研发组
先建立范围最大的组,其次范围小一些的组,然后私有组
最大的组可以共享所有人的共同的文件