Linux 用户以及用户权限

一、用户管理

从用户的配置文件以及配置命令的方式来了解用户管理,命令也是将结果写入到配置文件

用户配置文件

不建议直接修改配置文件!!!

账号 /etc/passwd
内容解析
    root:x:0:0:root:/root:/bin/bash
    用户名:密码:UID:GID:账号解释:家目录:shell

注意事项:

        1、UID为0就是超级用户

        2、shell 设置为/sbin/nologin 时账号无法登录

密码 /etc/shadow
内容解析
    root:$6$M9G.0hEG...:18417:0:99999:7:::
    用户名:加密密码:最近更改时间:不可改动时间:密码过期时间:过期前提醒时间:过期延期时间:失效日期:保留

注意事项
    1、密码前加!或者*就是锁定密码,不要直接修改文件,会导致密码失效

    2、密码失效后,无法登录

用户组 /etc/group
内容解析
    sys:x:0:jog,bob
    组名:群组密码:GID:这个组内的用户名

注意事项:

        1、群组密码一般不用设置

        2、这里的群组用户指存在多个组中的用户,也就是额外的用户

用户默认初始化模板
创建用户参考文档 *
    /etc/default/useradd
    /etc/login.defs
    /etc/skel/*

注意:

        如果家目录被删了,登录显示~/.bashrc,可以从/etc/skel/.bashrc 拷贝再自定义恢复

特权用户配置 /etc/sudoers

可以针对用户或者用户组设置特定或者全部命令的权限,通常用来为普通用户授权root权限

常见用户查看命令

id
    id 显示当前用户信息
    id username 显示指定用户信息
groups
    groups 查看当前用户属组
        zhh : sysadmin root
        主用户群 : 次要用户群
    groups username 查看指定用户属组
w    Show who is logged on and what they are doing
who  show who is logged on
last show listing of last logged in users

常见密码相关命令

passwd 
man passwd

passwd 修改当前用户密码
passwd username 修改指定用户密码,需要提权
passwd -S username 用户状态
    root PS 2023-02-02 0 99999 7 -1 (Password set, SHA512 crypt.)
    用户名 状态 修改时间 不可修改时间 过期时间 过期警告时间 失效时间 解释信息
passwd -l username 锁定用户
passwd -uf username 强制解锁用户
passwd -e username  强制用户密码过期

echo "password" | sudo passwd --stdin myuser1 明文设置密码

注意:空密码会在一定时间后被锁定,不影响有指纹的免密链接,没有指纹的免密也会连接失败

状态:

locked password (LK)

has no password  (NP)

has  a  usable password (PS)

chage
man chage
chage - change user password expiry information

chage -l username 查看密码状态
chage -M -1 username 密码永不过期
chage -m 6 -M 90 -E -1 -I -1 -W 30
    -m 密码最小修改间隔,限制密码更新
    -M 密码有效时间,区间内未更新会提示修改密码
    -E 密码过期时间,过期会提示修改密码
    -I 密码失效时间,失效无法登录
    -W 密码过期前多少天提醒

账号管理

用户添加
id 查看当前用户的用户和组信息

useradd username 添加用户
useradd -u UID -g GID -G GID username
useradd -D 查看预设值

参数:
    -u :后面接的是 UID
    -g :后面接的那个组名就是主组
    -G :后面接的组名是次要组
    -M :强制!不要建立用户家目录!(系统账号默认值)
    -m :强制!要建立用户家目录!(一般账号默认值)
    -d :指定某个目录成为家目录,而不要使用默认值。务必使用绝对路径
    -s :后面接一个 shell ,若没有指定则预设是 /bin/bash
    -f :后面接失效时间,0 为立刻失效,-1 为永远不失效

注意:

创建用户以后, /etc/shadow 内仅会有密码参数而不会有加密过的密码数据,所以需要设置密码

用户删除
userdel
    userdel username
    userdel -r username 一同删除家目录
用户管理
usermod
    usermod username -g GID/groupname 设置主要用户组
    usermod username -G GID/groupname 设定次要用户组
    usermod username -aG GID/groupname 追加次要群组 
用户组管理

不常用,与用户管理差不错
groupadd
groupdel
groupmod

一些常见用户故障排查

用户无法登陆
1. shell 为/sbin/nologin
grep username /etc/passwd

2. 密码过期或者被锁定
chage -l username

3. sshd 设定root用户无法登陆
grep 'PermitRootLogin' /etc/ssh/sshd_config

4. vim /etc/security/access.conf 配置的pam 限定了用户登录
表现为:
    正确密码:Authentication failed.
    错误密码:Permission denied, please try again.

5. vim /etc/pam.d/login 中其他设置限定

6. vim /etc/pam.d/sshd 中其他设置限定

7. iptables对端口和IP做了限制
iptables --list

8. 这里限制了IP
/etc/hosts.allow
/etc/hosts.deny

还有很多其他的情况,比如有些机器经过ldap.conf文件,或者用户的环境变量配置里面写了脚本启动失败,或者ld.so.preload 库文件被修改,还有fs.nr_open fs.file-max 这些参数被改小了等等各种问题。后期整理一下,再写一篇记录登录失败的排查文章。

无法修改密码

报错token验证失败,无法修改密码

passwd: Authentication token manipulation error

经检查是根目录满了,/home目录没挂出来,也满了

你可能感兴趣的:(知识系列,#,知识系列,Linux-基础知识,linux,服务器,运维)