zoukankan      html  css  js  c++  java
  • Linux用户管理

    Linux中的用户管理,是多用户的一个系统

    为什么要有用户??

    对系统中的资源做归属

    为什么对应的用户要设置对应的密码??

    对用户的身份做认证

    在Linux中,存在着用户组跟用户,用户是属于用户组的,并且共享这个用户组的权限

    存放着用户基本信息

    /etc/passwd 

    比如

    root     :     x     :     0     :        0        :     newuser  :    /root  :     /bin/bash(可以登录我们系统)  sbin/nologin(运行服务的用户,我们一般都会设置为此,不能登录我们的系统)
    
    用户名        密 码        用户id       用户所在组的id        描述信息       家目录        shell类型

    存放着用户密码信息、过期时间等

    /etc/shadow 

    存放着用户组密码

    /etc/gshadow

    存放着用户组信息

    /etc/group
    mail    :        x    :      12    :     postfix
    
    用户组名称       密码        属组的id       显示哪些用户在我这个组里面

    创建用户的默认配置信息(当你使用useradd这个命令时,就会调用这个文件里的配置。使用useradd时,一般使用默认的,不需修改。)

    /etc/default/useradd

      用户家目录模板,存放着“-bash-4.2$”这个报错信息所需要的3个隐藏文件,这是用户的环境变量文件,创建用户时,这三个隐藏文件会自动复制到用户家目录下,有这三个隐藏问件,才可以正常登陆。

    /etc/skel/

    全局用户设定信息

    /etc/login.defs

    什么是shell,shell是一个用c语言编写的程序,Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。

    accout:用户名
    
    password:用户密码,密码位置默认是x
    
    UID:用户身份id,用来唯一的标识一个用户
    
    GID:用户组id,用来在系统中唯一的标识一个用户组(这里指的是其基本组的组ID)
    
    GECOS:用户描述信息,可以空白,也可以随意写(useradd -c )
    
    directory:用户家目录
    
    shell:用户所使用的shell类型
    
    /bin/bash-->可以登录系统
    
    /sbin/nologin-->该用户一定无法登录系统

    一个用户只能有一个主组(基本组),但是用户的附加组可以有多个。

    用户的gid为主组 groups为附加组。(要结合权限来理解)

    可以登录系统的用户

    管理员用户

    id为0的用户

    普通用户

    就是可以登录系统,但是没有管理员权限的用户,id为1000-6000

    不能登录系统的用户:

    系统用户

    用来运行一个程序,而不是用来登录系统,id为1-999

    系统用户的特点

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

    2. 系统用户没有家目录

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

    主四大块:useradd、userdel、groupadd、usermod 。副两小块:shadow影子文件,id

    useradd:要选定的参数 用户名

    指定用户价目录,但一般不用,因为创建的时候默认创建在/home下

    -d 

    用户信息,(在cat /etc/passwd中的root 就是描述信息)

    -c 

    指定主组id

    useradd -g 

    指定附加组id

    -G

    指定用户uid 

    -u

      创建系统用户,不能对系统做任何操作,只是用来运行一个程序,uid处于1至999,创建系统用户不需先创建主组,附加组,只需创建即可,在创建完成后他的主组与他的附加组自动与他用户名一致。

    -r 

    指定我的shell类型shell类型就两种:/bin/bash    /nbin/nologin

    -s

    groupadd:创建用户组

    创建主组或附加组,组名即为他的id 

    groupadd 组名:

    看组是否创建成功,即可查看组信息

    tail -1 /etc/group

    格式为: 组名:组密码:组id :属于这个组的用户有哪些

    删除用户组

    groupdel 组名

    passwd:修改用户密码

      我们刚创建用户是默认没有密码的,需要设置密码后才可以登录到系统当中,登录上去,有时但会出现“-bash-4.2$”这个错误,原因1:创建的不是系统用户,缺少以.bash开头任意结尾的3个隐藏文件,查看方法,ls -a /home/创建的用户名原因2:创建的用户是系统用户,系统用户就是默认不能登录:。解决方法,在家目录(/home)下创建与用户名相同的目录,而后将.bash开头任意结尾的3个隐藏文件复制到刚才创建的目录下(cp /etc/skel/.bash* /home/刚创建的目录),即可解决问题。

    即可设置密码,要输入两回

    passwd 用户名

    passwd --stdin

    此为一次成型设置用户密码,不需执行两次交互

    echo “123456” | passwd --stdin 用户名 

    锁定用户,使用户下次无法登陆

    -l 

    解锁用户

    -u

    删除密码

    -d

    强迫使用户下次登陆时修改密码

    -f

    usermod:修改用户信息

    shell类型 /bin/bash 之前被设定不能登录的用户名 即可改为可登录

    -s 

    修改主组(注这个组一定要存在)

    -g 

    修改附加组

    -G 

    指定id

    -u 

    修改用户名

    -l 

    id

    显示用户信息

    id用户名

    显示用户id

    id -u 用户名

    显示主组id

    id -g 用户名

    显示附加组id

    id -G 用户名

    su:切换用户

    root到普通用户不需要输入密码,但普通用户到root是需要密码

    切换用户(如果不加-,会切换不彻底,不能切换到切换的用户家目录)

    su -用户名

    userdel:删除用户

    只是删除了用户这个名字,但其资料还在(查看方法, ls /home 即可查看到与用户同名的目录,此为用户家目录)

    userdel 用户名

    删除用户信息,包括用户家目录所有文件

    userdel -r 

    shadow:影子文件

    怎么查看影子文件 cat(tail -n) /etc/shadow 即可查看

    影子文件

     tail -2 /etc/shadow

    格式为:

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

    第一段:用户名:  

    第二段:加密后的密码      

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

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

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

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

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

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

    第九段:保留字段

  • 相关阅读:
    iuplua test failure
    lua C++ wrapper
    lua
    Redux系列01:从一个简单例子了解action、store、reducer
    Meteor入门介绍
    Express入门介绍vs实例讲解
    React半科普文
    Express模版引擎hbs备忘
    Gulp:插件编写入门
    gulp.src()内部实现探究
  • 原文地址:https://www.cnblogs.com/shuaiyin/p/10869160.html
Copyright © 2011-2022 走看看