首页 > 代码库 > Linux_用户/用户组

Linux_用户/用户组

一、用户添加

  1.  账号添加

[root@hadoop09-linux tmp]# useradd eRrsr

  这时/etc/passwd文件中会追加该用户项,并且在/home文件夹下自动生成该属于该用户的文件夹,默认用户组为该用户名

  2.  密码设置

[eRrsr@hadoop09-linux ~]$ passwd eRrsrpasswd: Only root can specify a user name. #提示修改密码只能由root用户来完成[eRrsr@hadoop09-linux ~]$ su - rootPassword: [root@hadoop09-linux ~]# passwd eRrsrChanging password for user eRrsr.New password: Retype new password: passwd: all authentication tokens updated successfully.

  3.   用户组添加

[root@hadoop09-linux ~]# groupadd Learn

  4.   已有的用户,将其用户组改为Learn

[root@hadoop09-linux ~]# usermod -G Learn eRrsr #-g 修改用户所属的群组(/etc/passwd) -G 修改用户所属的附加群组(/etc/group) 
                            #-L 冻结用户,使密码无效 -U 解冻用户 -u 修改用户ID[root@hadoop09-linux ~]# gpasswd -a eRrsr Learn #第二种方式 -a 添加用户到组 -d 从组删除用户 -A 指定管理员 -r 删除密码

  5.  新建用户时同时设置其用户组

[root@hadoop09-linux ~]# useradd -g Learn eRrsr #-g(group) 代表用户组 -d(directory) 代表家目录 -s(shell) 新建用户后所用shell

二、 用户关闭与删除

  1.  关闭用户账号(暂停使用,注意root可直接切换到该用户继续操作)

[root@hadoop09-linux ~]# passwd peter -l #锁定账号Locking password for user peter.passwd: Success    [root@hadoop09-linux ~]# su - eRrsr[eRrsr@hadoop09-linux ~]$ su - peterPassword: su: incorrect password[eRrsr@hadoop09-linux ~]$ su -Password:[root@hadoop09-linux ~]# passwd peter -uUnlocking password for user peter.passwd: Success

  另一种方法(修改文件):在/etc/shadow文件中属于该用户的行的第二个字段(密码)前面加上*就可以了。想恢复该用户,去掉*即可

  2.  删除用户

[root@hadoop09-linux ~]# userdel -r eRrsr #-r 连同eRrsr用户组,家目录下的eRrsr(包括子文件,子文件夹)一并删除

    当然分开写如下

[root@hadoop09-linux ~]# userdel peter [root@hadoop09-linux ~]# groupdel peter [root@hadoop09-linux ~]# usermod –G peter peter #-G 代表强制删除家目录下的peter(包括文件,子文件夹)

  PS:有时会遇到这样的问题

userdel: user liuwenlong is currently logged in

  解决方法:

    a.  使用 lsof | grep eRrsr 查看eRrsr进程ID

    b. kill -9 进程ID 

  3.  若是仅仅想把该用户从用户组中去掉:编辑/etc/group 找到用户那一行,删除即可,另外

[root@hadoop09-linux ~]# gpasswd -d petter group_name

三、 查看用户详细信息

[root@hadoop09-linux ~]# id rootuid=0(root) gid=0(root) groups=0(root)

  或

[root@hadoop09-linux ~]# cat /etc/passwd | grep ^rootroot:x:0:0:root:/root:/bin/bash

四、相关概念知识

    a.  用户和用户组的对应关系是:一对一、多对一、一对多或多对多

      一对一:某个用户可以是某个组的唯一成员

      多对一:多个用户可以是某个唯一的组的成员,不归属其它用户组;比如beinan和linuxsir两个用户只归属于beinan用户组

      一对多:某个用户可以是多个用户组的成员;比如beinan可以是root组成员,也可以是linuxsir用户组成员,还可以是adm用户组成员

      多对多:多个用户对应多个用户组,并且几个用户可以是归属相同的组;其实多对多的关系是前面三条的扩展;理解了上面的三条,这条也能理解

    b.  与用户(user)相关的配置文件

      /etc/passwd 注:用户(user)的配置文件

      /etc/shadow 注:用户(user)影子口令文件

    c.  与用户组(group)相关的配置文件

      /etc/group 注:用户组(group)配置文件

      /etc/gshadow 注:用户组(group)的影子文件

    d.  管理用户(user)的工具或命令

      useradd    注:添加用户

      adduser    注:添加用户

      passwd     注:为用户设置密码

      usermod   注:修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等

      pwcov       注:同步用户从/etc/passwd 到/etc/shadow 

      pwck         注:pwck是校验用户配置文件/etc/passwd 和/etc/shadow 文件内容是否合法或完整

      pwunconv  注:是pwcov 的立逆向操作,是从/etc/shadow和 /etc/passwd 创建/etc/passwd ,然后会删除 /etc/shadow 文件

      finger        注:查看用户信息工具

      id              注:查看用户的UID、GID及所归属的用户组

      chfn          注:更改用户信息工具

      su             注:用户切换工具

      sudo         注:sudo 是通过另一个用户来执行命令(execute a command as another user),su 是用来切换用户,然后通过切换到的用户来完成相应的任务,

            但sudo 能后面直接执行命令,比如sudo 不需要root 密码就可以执行root 赋与的执行只有root才能执行相应的命令;

            但得通过visudo 来编辑/etc/sudoers来实现

      visudo      注:visodo 是编辑 /etc/sudoers 的命令;也可以不用这个命令,直接用vi 来编辑 /etc/sudoers 的效果是一样的

      sudoedit   注:和sudo 功能差不多

    e.  管理用户组(group)的工具或命令

      groupadd    注:添加用户组

      groupdel     注:删除用户组

      groupmod   注:修改用户组信息

      groups        注:显示用户所属的用户组

      grpck

      grpconv      注:通过/etc/group和/etc/gshadow 的文件内容来同步或创建/etc/gshadow ,如果/etc/gshadow 不存在则创建

      grpunconv   注:通过/etc/group 和/etc/gshadow 文件内容来同步或创建/etc/group ,然后删除gshadow文件

 

Linux_用户/用户组