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

    一、用户相关文件

    1 /etc/passwd 用户信息文件
    root:x:0:0:root:/root:/bin/bash      
    

    第一列: 用户名
    第二列: 密码位
    第三列: 用户 ID

    • 0 超级用户 UID。如果用户 UID 为 0,代表这个账号是管理员账号。那 Linux 中 如何把普通用户升级成为管理员呢?就是把其他用户的 UID 修改为 0 就可以了。
    • 1-499 系统用户(伪用户)UID。这些 UID 账号是系统保留给系统用户的 UID,也就是 说 UID 是 1-499 范围内的用户是不能登录系统的,而是用来运行系统或服务的。其中 1-99 是系统保留的账号,系统自动创建。100-499 是预留给用户创建系统账号的。
    • 500-60000 普通用户 UID。建立的普通用户 UID 从 500 开始,最大到 60000。这些用户足够使用了,但是如果不够也不用害怕,2.6.x 内核以后的 Linux 系统用户 UID 已经 可以支持 2^32这么多了。

    第四列:组 ID GID 添加用户时,如果不指定用户所属的初始组,那么会建立和用户名相同的组
    第五列: 用户说明 第六列: 用户家目录 ~
    第七列: 登录 shell /bin/bash

    2 /etc/shadow 影子(密码)文件
    root:$1$KhnBfFyK$0G/sKHf50fT9fEHA9zr2f0::0:99999:7:::
    

    第一列: 用户名
    第二列: 加密密码 我们也可以在密码前人为的加入“!”或“”改变加密值让密码暂时失效,使这个用户无法登陆,达到暂时禁止用户登录的效果。注意所有伪用户的密码都是“!!”或“”,代表没有密码是不能登录的。当然我新创建的用户如果不设定密码,它的密码项也是“!!”,代表这个用户没有密码,不能登录。
    第三列: 密码最近更改时间, 从1970 年 1 月 1 日算起,按天来算,我的为空,代表创建后就没改过密码。
    第四列: 两次密码的修改间隔时间(和第 3 字段相比,为0代表没有限制。
    第五例: 密码有效期(和第 3 字段相比)
    第六列: 密码修改到期前的警告天数(和第 5 字段相比)
    第七列: 密码过期后的宽限天数(和第 5 字段相比)
    第八列: 密码失效时间,这里同样要写时间戳,也就是用 1970 年 1 月 1 日进行时间换算。如果超过了失效时间,就算密码没有过期,用户也就失效无法使用了
    第九列: 保留

    3 /etc/group 组信息文件
    root:x:0:root 
    

    第一列: 组名
    第二列: 组密码位
    第三列: GID
    第四列: 此组中支持的其他用户.附加组是此组的用户

    初始组:每个用户初始组只能有一个,初始组只能有一个,一般都是和用户名相同的组作为 初始组
    附加组:每个用户可以属于多个附加组。要把用户加入组,都是加入附加组

    组密码文件/etc/gshadow 如果我给用户组设定了组管理员,并给该用户组设定了组密码,组密码就保存在这个文件当中。 组管理员就可以利用这个密码管理这个用户组了。
    用户的家目录 root用户家目录为 /root 普通用户家目录为 /home/用户名
    用户邮箱目录 这个邮箱在/var/spool/mail 目录当中,例如 user1 用户的邮箱就是/var/spool/mail/user1 文 件
    用户模板目录 /etc/skel/,创建新用户时,用户家目录内容跟该文件夹内容一致。

    二、用户管理命令

    1 添加用户
    1.1 手工删除用户 手工删除用户试验:手工删除,如果可以正常建立用户,证明用户删除干净。
    /etc/passwd       
    /etc/shadow     
    /etc/group     
    /etc/gshadow     
    /home/user1     
    /var/spool/mail/user1 邮箱 
    
    1.2 useradd 命令

    useradd 选项 用户名
    选项:
    -u 550 指定 UID
    -g 组名 指定初始组 不要手工指定
    -G 组名 指定附加组,把当前用户添加到某一个用户的附加组中。
    -c 说明 添加说明
    -d 目录 手工指定家目录,目录不需要事先建立
    -s 指定shell,如 -s /bin/bash

    1.3 useradd 默认值

    useradd 添加用户时参考的默认值文件主要有两个,分别是/etc/default/useradd 和 /etc/login.defs
    1)/etc/default/useradd文件

    # useradd defaults file
    GROUP=100 #这个选项是建立用户的默认组,也就是说添加每个用户时,用户的初始组就是 GID 为 100 的这个用户组。
    HOME=/home #用户家目录
    INACTIVE=-1 #这个选项就是密码过期后的宽限天数,也就是/etc/shadow 文件的第七个字段。如果是天数,比 如 10 代表密码过期后 10 天后失效;如果是 0,代表密码过期后立即失效;如果是-1,则代表密码永远不会失效。
    EXPIRE=  #这个选项是密码失效时间,也就是/etc/shadow 文件的第八个字段。也就说用户到达这个日期后 就会直接失效。当然这里也是使用时间戳来表示日期的。默认值是空,所以所有新建用户没有失效时间,永久有效。
    SHELL=/bin/bash
    SKEL=/etc/skel
    CREATE_MAIL_SPOOL=yes
    

    2)/etc/login.defs

    # 这个文件有些注释,把注释 删除掉,文件内容就变成下面这个样子了 
    MAIL_DIR        /var/spool/mail 
     
    PASS_MAX_DAYS   99999    PASS_MIN_DAYS   0     PASS_MIN_LEN   5    PASS_WARN_AGE   7
    密码最长有效期            最小有效期               最小长度              最大长度
     
    UID_MIN        500        UID_MAX           60000 
    普通最小用户id             普通最大用户id
     
    GID_MIN        500        GID_MAX           60000 
    普通最小组id               普通最大组id
    
    CREATE_HOME     yes
    是否自动创建用户家目录 
     
    UMASK           077 
    这行指定的是建立的用户家目录的默认权限 
    
    USERGROUPS_ENAB yes 
    这行指定的是使用命令 userdel 删除用户时,是否删除用户的初始组,默认是删除
    
    ENCRYPT_METHOD SHA512
    密码加密方式
    
    2 设定密码
    2.1 修改自身密码

    直接执行passwd,再输入两次密码就行。

    2.2 修改其他用户密码(仅限root用户)
    root user1
    再输入两次密码就行
    
    3 用户信息修改
    [root@localhost ~]#usermod [选项] 用户名 
    选项:  
    -u UID:  修改用户的 UID  
    -d 家目录:  修改用户的家目录。家目录必须写绝对路径  
    -c 用户说明: 修改用户的说明信息,就是/etc/passwd 文件的第五个字段  
    -g 组名:  修改用户的初始组,就是/etc/passwd 文件的第四个字段  
    -G 组名:  修改用户的附加组,其实就是把用户加入其他用户组  
    -s shell:  修改用户的登录 Shell。默认是/bin/bash  
    -e 日期:  修改用户的失效日期,格式为“YYYY-MM-DD”。/etc/passwd文件的第八个字段  
    -L:   临时锁定用户(Lock)  
    -U:   解锁用户(Unlock)
    -l: 改名     格式    usermod -l newname oldname 
    
    4 删除用户
    [root@localhost ~]# userdel [-r] 用户名 
    选项:  
    -r: 在删除用户的同时删除用户的家目录 
    
    5 切换用户身份
    [root@localhost ~]# su [选项] 用户名 
    选项:  
    -:       选项只使用“-”代表连带用户的环境变量一起切换  
    -c 命令: 仅执行一次命令,而不切换用户身份
    

    三、组管理命令

    1 添加用户组:groupadd
    [root@localhost ~]# groupadd [选项] 组名 
    选项:  
    -g GID: 指定组 ID 
    
    2 删除用户组:groupdel
    [root@localhost ~]#groupdel 组名
    
    3 把用户添加进组或从组中删除:gpasswd
    [root@localhost ~]# gpasswd [选项] 组名 
    选项:  
    -a 用户名: 把用户加入组  
    -d 用户名: 把用户从组中删除
    例如:把用户love2添加到love1组中。
    [root@love2 test]# gpasswd -a love2 love1
    Adding user love2 to group love1
    
    4 改变有效组:newgrp

    更改当前用户的有效组

    • 举个例子,我们已经有了普通用户 user1,默认会建立 user1 用户组,user1 组是 user1 用户的初始组。我们再把 user1 用户加入 group1 组,那么 group1 组就是 user1 用户的附加组。当 user1 用 户创建文件test1时,test1文件的属组是user1组,因为user1组是user1用户的有效组。通过newgrp 命令就可以把 user1 用户的有效组变成 group1 组,当 user1 用户创建文件 test2 时,就会发现 test2 文件的属组就是 group1 组。
      如下
    [root@localhost ~]# groupadd group1 # 添加组 group1 
    [root@localhost ~]# gpasswd -a user1 group1 # 把 user1 用户加入 group1 组
    Adding user user1 to group group1  
    [root@localhost ~]# su – user1 # 切换成 user1 身份
    [user1@localhost ~]$ touch test1 # 创建文件 test1 
    [user1@localhost ~]$ ll test1 
    -rw-rw-r-- 1 user1 user1 0 1 月  14 05:43 test1 #test1 文件的默认属组是 user1 组 
    [user1@localhost ~]$ newgrp group1 # 切换 user1 用户的有效组为group1组 
    [user1@localhost ~]$ touch test2 # 创建文件 test2 
    [user1@localhost ~]$ ll test2 
    -rw-r--r-- 1 user1 group1 0 1 月  14 05:44 test2 #test2 文件的默认属组是 group1 组
    
    #其实 newgrp 就是切换用户的组身份。
    
  • 相关阅读:
    一个简单的aJax——后台用servlet技术
    js获取项目根路径
    在SpringMVC利用MockMvc进行单元测试
    java.lang.NoSuchMethodError: javaxservlet.http.HttpServletRequest.isAsyncStarted()Z
    保利威视点播集成
    微信登录后返回微信名等信息
    极光推送发送控制/别名/取值
    每天首次登陆记录设备信息
    获取APK签名
    权限管理AppOpsManager
  • 原文地址:https://www.cnblogs.com/hjnzs/p/11961737.html
Copyright © 2011-2022 走看看