Linux用户、组 管理
Linux安全模型
3A:
- Authentication:认证,验证用户身份
- Authorization:授权,不同的用户设置不同权限
- Accouting|Audition:审计
Linux用户:
管理员:
普通用户:
- 登录用户:用户id从1000开始
- 系统用户:id在1到999之间
用户类型的判断:根据UID来判断用户类别 可以通过id命令查看用户的uid
Linux组:
管理员组:
gid=0
普通组:
- 系统组:1-999
- 普通组:1000+
通过GID来进行唯一标识
用户和组的关系
- 主要组:有且只有一个,创建用户的时候默认创建一个同名的主要组(主要组必须要有)
- 附加组:可以有任意多个(可有可无)
安全上下文Context:
安全上下文: 系统安全相关的环境,比如访问系统中的文件能否被访问和工具(程序)无关,和访问的人有关。
用户和组的主要配置文件
- /etc/passwd:用户及其属性信息(名称、UID、主组ID等)
- /etc/shadow:用户密码及其相关属性
- /etc/group:组及其属性信息
- /etc/gshadow:组密码及其相关属性
linux用户管理命令
添加用户: useradd
选项:
- -s --- 指定shell类型
- -u --- 指定uid , 不指定默认从1000开始
- -r --- 参数 表示的是系统账号,会默认给一个1000以内的uid,默认不生成家目录和邮箱
- -d: 指定家目录
- -p: 指定用户的密码(需要的是加密的密码,明文密码不可以)
创建的用户如果是给服务用的 不要使用bash --- 设置 /sbin/nologin
创建会默认创建一个邮箱,邮箱的所在位置: /var/spool/mail
/etc/default/useradd --- 这个配置文件的作用是创建账号的时候默认添加的属性
/etc/login.defs --- 指定创建密码默认的一些属性信息,包括密码有效期、uid从多少开始、密码的加密算法等
用户属性修改:usermod
删除用户:userdel
默认只删除账号,不删除数据(家目录、邮箱等信息)
-r 删除用户的所有信息
用户密码修改: passwd
- echo xxx | passwd --stdin username --- Centos
- echo username:passed | chpasswd --- Ubuntu、centos都支持
修改密码就是修改的 /etc/shadow这个文件
用户切换
su: switch user 切换用户
不完全切换
su username --- 保留当前身份的一些环境信息(比如旧帐号家目录、环境变量这些没有改变)
完全切换
su - username
sudo: super user do
sudo:超级用户的方式执行命令
sudo su - 效果等于sudo -i 切换到root用户
案例: 多台服务器,给系统创建系统用户
1.先创建组 使用 -g指定gid
2.创建系统用户 使用-r表示创建系统用户 使用 -u指定uid 使用-g指定组
这样做的好处是多台服务器上创建的用户gid、uid保持一致