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保持一致