Linux用户和权限管理

这里学习过好多次了,不过还是有写知识点不清楚,再次记录一次吧!

用户组

Linux是多用户操作系统, 而一类用户又可以添加到一个组里方便统一管理.

常见命令

  1. 查看所有的组
    cat /etc/group

    此文件用于记录用户组信息,使用分隔符`:`分开

    • 组名: 位于第一列
    • 占位符: 位于第二列, 意思是组密码在`/etc/gshadow`
    • 组id:位于第三列
    • 用户列表:位于第四列, 表示该组包含的用户
  2. 查看用户所属的组
    groups
  3. 添加用户组
    groupadd 组名
  4. 删除用户组
    groupdel 组名

用户

常见命令

  1. 添加用户
    useradd 用户名
  2. 修改用户密码
    passwd 用户名
  3. 删除用户
    userdel 用户名
  4. 修改用户信息
    usermod 用户名
  5. 查看所有的用户
    cat /etc/passwd

    此文件用于记录用户组信息,使用分隔符`:`分开

    • 用户名: 位于第一列,
    •  x: 占位符,真正的密码摘要存储在`/etc/shadow`文件中
    • UID: 用户id, 位于第三列
    • GID: 用户组id, 位于第四列
    • 备注: 关于用户的一些描述(备注),位于第五列
    • 家目录: 用户的家目录,位于第六列
    • 默认shell: 用户登录后默认使用的shell,位于第七列
  6. 查询用户标识符
    id
  7. 查询当前主机的用户登录情况
    w
    who
  8. 查看当前在线的用户
    users
  9. 查看当前用户
    whoami
  10. 切换用户, 高权限用户切换到低权限用户不需要密码
    su 用户名

影子文件

密钥摘要记录在`/etc/shadow`文件中,也是有`:`分隔开

  • 用户名:位于第一列
  • 密码摘要:位于第二列
  • 最后修改密码的日期:位于第三列,是一个距离`1970年1月1日`的一个天数
  • 密码修改的最小天数:位于第四列
  • 密码的有效期:位于第五列,表示需要定期修改的天数
  • 警告期:位于第六列,表示密码过期前N天发出警告
  • 宽限期:位于第七列,表示密码过期后还能使用的天数
  • 密码过期时间:位于第八列,表示密码过期时间,也是一个距离`1970年1月1日`的一个天数
  • 保留字段

密码格式

一般密码又三部分组成,加密算法,盐值,摘要

案例
$<algorithm>$<salt>$<hashed_password>
  • `<algorithm>` 加密算法,1代表MD5 ,5代表sha-256, 6代表sha-512
  • `<salt>` 盐值
  • `<hashed_password>` 密码与盐值拼接后使用对应算法求的摘要值

计算

openssl passwd -算法对应的数字 -salt 盐值 密码

注意

 

这里是我使用 ,密码拼接盐值写入空文件 ,使用`md5sum`求得摘要,发现与存储的依然不同,甚至编码都不同,查阅资料发现需要使用openssl来计算

其实视频里讲过了,我没注意,,下次注意,浪费好多时间

sudo

有时候普通用户也需要临时使用root权限,此时sudo可以解决该问题,而`/etc/sudoers`文件可以配置与此相关的选项.
可以使用

visudo

vi /etc/sudoers

来编辑sudo相关配置. vi 编辑后需要使用`:wq!`强制写入并退出
一般配置成如下,`NOPASSWD`代表使用sudo时不需要输入用户的密码

用户名 ALL=(ALL) NOPASSWD:ALL

也可以配置用户或用户组可以使用root权限执行的命令

 

权限管理

权限管理是一个绕不开的内容,可以分为文件的权限和目录的权限,简单的区别如下

读(r)4 写(w)2 执行/进入(x)1
文件 可读 可修改文件 可执行
目录 可列出目录下的内容 可删除或添加文件 可进入目录

一般使用10个字符来表示文件的权限,分别是文件类别,所有者,所有组,其他人的权限
例如`drwxrwxrwx`,代表这是一个目录,权限都是`rwx`,也可以使用数字来表示权限

权限管理命令

可以使用 +,-来表示权限的添加或删除;可以使用u,g,o,a 分别表示所有者,所属组,其他人,任何人;可以使用数字快速设置权限

  1. 修改文件/目录的所有者
    chown -R 用户名:组名 文件或目录

    `-R` 参数代表递归,子文件和子目录,修改目录所有者或所属组时使用.

  2. 修改所属组
    chgrp 组名 文件名
  3. 设置所属组的权限为`rw`
    chown g=rw 文件名
  4. 设置所有人的权限为`rwx`
    chown 777 文件名
  5. 使用别的文件作为参考来修改文件权限
    chown --reference 参考的文件 待设置的文件

参考资料

阅读剩余
THE END