• 用户及用户管理


    用户管理:

    为什么需要有用户?

     

    1. linux是一个多用户系统

    2. 权限管理(权限最小化)

     

    用户:存在的目录是为了对系统中的资源做归属

    密码:存在的目的是为了对用户做身份认证

     

     

    用户和用户组

    用户组,在用户组中可以包含一个或者多个用户

    方便对多个用户进行授权操作

     

    用户管理相关文件

    /etc/passwd:用户基本信息

    /etc/shadow:用户密码信息、过期时间等

    /etc/group:用户组信息

    /etc/gshadow:用户组密码

    /etc/default/useradd:创建用户的默认配置信息

    /etc/skel/:用户家目录模板

    /etc/login.defs:全局用户设定信息

    /etc/passwd: 每行是一个用户,用来记录用户的基本信息,每行的格式

    account:password:UID:GID:GECOS:directory:shell

     

    accout:用户名

    password:用户密码,密码位置默认是x

    UID:用户身份id,用来唯一的标识一个用户

    GID:用户组id,用来在系统中唯一的标识一个用户组(这里指的是其基本组的组ID)

    GECOS:用户描述信息,可以空白,也可以随意写(useradd -c )

    directory:用户家目录

    shell:用户所使用的shell类型

    /bin/bash-->可以登录系统

    /sbin/nologin-->该用户一定无法登录系统

    Home :用户家目录,保存当前用户的相关信息

    Linux中的用户类别

        可以登录系统的用户

    管理员用户:uid为0的用户

    普通用户:就是可以登录系统,但是没有管理员权限的用户

    不能登录系统的用户:

    系统用户:用来运行一个程序,而不是用来登录系统

       各类用户的id

    管理员用户:0

    系统用户:1-999

    普通用户:1000-60000(自定义uid最大4294967294)

     

       系统用户的特点

    1. 因为不需要登录,所以shell类型通常为/sbin/nologin

    2. 系统用户没有家目录

    3. 系统用户id通常是小于1000

     

    Useradd命令

    -g, --gid GROUP:指的用户的基本组的组id

    -G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:指的用户的附加组列表

    -u,--uid UID:指的用户的uid

    -r, --system:创建一个系统用户

    -s, --shell SHELL:在创建用户的时候,指定用户的shell类型

    /bin/bash/,/sbin/nologin)

    创建一个系统用户:useradd -s /sbin/nologin -M-r ken

     

    passwd命令

    passwd [[options] username]

    (如果不指定用户名,那么就是修改当前用户的密码)

    options:

    --stdin

    -l:锁定用户

    -u:解锁用户

    -d:删除用户密码

    -e:让用户密码过期

    重要 echo “ 123“ | passwd  --stdin ken

    表示给ken用户设置密码123 (ken用户必须存在)

    设置密码的原则

    1. 长度要够

    2. 密码复杂度(数字+字母+特殊符号)

     

    userdel命令

    删除用户 userdel

    userdel [options] username

    options:

    -r:在删除用户的时候,连同用户数据一并删除

     

    创建用户组 groupadd

    groupadd [options] groupname

    options:

     

    删除用户组 groupdel

    groupdel groupname

     

    shadow文件详解

     zxhk:  $6$dgnPoZ0s$6xNKEWz : 17729 : 0 : 99999 :  7  :   :   :  

     

    第一段:用户名: 

    第二段:加密后的密码   

    第三段:上次修改密码举例元年经过的天数1970年1月1日(如果该字段空,意味着该用户密码被禁用)

    第四段:密码最短使用时间(0表示不限制)

    第五段:密码最长有效期(99999表示不限制)(如果第5的值小于第四段,那么用户无法修改自己的密码)

    第六段:密码到期前几天开始发送告警,提示密码即将过去,请立即修改

    第七段:非活动期间,密码到期后的宽限时间(登录系统的时候必须先修改密码,才能登录)

    第八段:密码过期时间(也是举例计算机元年经过的天数)(这里和前面的几个时间没有联系)

    第九段:保留字段

    常常听到:我的密码忘记或者被更动了?怎么办?

          有的时候会发生这样的情况,就是说,你的 root 密码忘记了!要怎么办?重新安装吗?另外, 有的时候是被入侵了, root 的密码被更动过,该如何是好?

          这个时候就必须要使用到 /etc/shadow 这个资料了!我们刚刚知道密码是存在这个档案中的, 所以只要你能够以各种可行的方法开机进入 Linux ,例如单人维护模式,或者是以 live CD (KNOPPIX) 来进入 Linux 系统。之后,将硬碟顺利挂载,然后进入 /etc/shadow 这个档案中,将 root 的密码这一栏全部清空!然后再登入 Linux 一次,这个时候 root 将不需要密码 (有的时候需要输入空白字元) 就可以登入了!这个时候请赶快以 passwd 设定 root 密码即可。

     

    usermod命令

    usermod

     

    options

    -g, --gid GROUP: 更 新 使 用 者 新 的 起 始 登 入 群 组 。 群 组 名 须 已 存 在 。

    -G, --groups GROUP1[,GROUP2,...[,GROUPN]]]: 定  义  使 用 者 为 一 堆 groups 的 成 员 。 每 个 群 组 使 用 ,区 格 开 来

    -u, --uid UID: 用 者 ID 值 。必 须 为 唯 一 的 ID 值

    -s, --shell SHELL: 指 定 新 登 入 shell 。 如 此 栏 留 白 , 系 统 将 选 用 系 统 预 设 shell 。

    -L, --lock: 锁定用户的密码

    -U : 解锁用户的密码

    -l, --login NEW_LOGIN : 变 更 使 用 者 login 时 的 名 称 为 login_name 。

    -e, --expiredate EXPIRE_DATE:加 上 使 用 者 帐 号 停 止 日 期 。 日 期 格 式 为 MM/DD/YY.

     

     

    -d, --home HOME_DIR:更 新 使 用 者 新 的 登 入 目 录 。

    -m, --move-home:移动用户家目录至新的位置

     

    id命令

    作用:用来查看指定的用户的信息(或判断用户是否存在)

     

     

    su命令(switch user

    作用:进行切换用户

    格式:su - 目标用户

     

    su命令和su -命令最大的本质区别就是:

    前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;而后者连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。

     

     

    错误案例

    [ root@ken — 
anaconda-ks . cfg a. out file kenl test2 test . txt 
[ root@ken 
ken8 
Last login: 
Thu Apr 4 16:15:54 CST 2019 on pts/l 
[ken8@ken —1$ 
[ken8@ken —1$ 
[ken8@ken —1$ 
[ken8@ken —1$ 
[ ken8@ken 
exit 
logout 
[ root@ken 
rm -rf /home/ken8 
[ root@ken 
ken8 
su - 
Last login: 
Thu Apr 4 16:16:23 CST 2019 on pts/l 
-4.2$ 
-4.2$ 
4.2$ 
-4.2$ 
-4.2$ 
-4.2$ 
-4.2$ 
su: warning: cannot change directory to /home/ken8: 
No such file or directory 
-bash 
-bash 
-bash- 
-bash 
-bash 
-bash 
- bash 
-4.2$ 
- bash 
1

    bash 。。。。。这个信息表示的是用户家目录被删除了。

    total 
logout 
[ root@ken 
drwxr-xr-x. 
drwxr-xr-x. 
24 
Is /etc/skel/ -la 
2 root root 
62 Apr 
77 root root 8192 Apr 
1 root root 
18 Apr 
1 root root 193 Apr 
1 root root 231 Apr 
mkdir /home/ken8 
cp /etc/skel/ .bash* 
su - kenl 
11 
4 
11 
11 
11 
2018 
16: 18 
2018 
2018 
2018 
. bash _ logout 
. bash_p rofile 
. bash rc 
[ root@ken 
[ root@ken 
[ root@ken 
/home/ken8

    解决这个问题需要将用户的家目录恢复,先在/home/ken8创建一个家目录(跟用户名相同),然后将bash的文件都复制到创建的家目录中。

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    总结
    设置导航栏上面的内容
    统一所有控制器导航栏左上角和右上角内容
    直接设置UIView的x,y,width,height...
    block浅析
    const浅析
    - (BOOL)isEqual:(id)object
    数据存入沙盒
    swift感悟2
    swift自学感悟1
  • 原文地址:https://www.cnblogs.com/liangzb310/p/11024932.html
Copyright © 2020-2023  润新知