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

    一、与用户管理相关的配置文件;

    1、/etc/passwd有关账户的信息,包括UID、GID、用户名、用户目录及用户SHELL;
       /etc/shadow包含用户密码
       /etc/groups用户组的配置文件,内容包括用户和用户组,并且能显示出用户是归属哪个用户组或哪几个用户组。
    /etc/gshadow是/etc/group的加密资讯文件,比如用户组(Group)管理密码就是存放在这个文件。

    2、超级权限控制 sudo 的配置文件/etc/sudoers

    beinan  ALL=(root)    /bin/chown, /bin/chmod

    如果我们把第一个实例中的那行去掉,换成这行;表示的是beinan 可以在任何可能出现的主机名的主机中,可以切换到root下执行 /bin/chown ,可以切换到任何用户招执行/bin/chmod 命令,通过sudo -l 来查看beinan 在这台主机上允许和禁止运行的命令;

    beinan  ALL=(root)   NOPASSWD:    /bin/chown,/bin/chmod

    如果换成这个例子呢?表示的是beinan 可以在任何可能出现的主机名的主机中,可以切换到root下执行 /bin/chown ,不需要输入beinan用户的密码;并且可以切换到任何用户下执行/bin/chmod 命令,但执行chmod时需要beinan输入自己的密码;通过sudo -l 来查看beinan 在这台主机上允许和禁止运行的命令;

    3、添加用户规则文件 /etc/login.defs 和 /etc/default/useradd

    二、添加用户工具和方法

    1、添加用户工具有useradd和adduser ,这两个工具所达到的目的都是一样的。

    useradd 不加参数选项时,后面直接跟所添加的用户名时,系统时读取添加用户配置文件/etc/login.defs和/etc/default/useradd文件,然后读取/etc/login.defs和/etc/default/useradd中所定义的规则添加用户;并向/etc/passwd和/etc/groups文件添加用户和用户组记录;当然/etc/passwd和/etc/groups的加密资讯文件也同步生成记录;同时发生的还有系统会自动在/etc/add/default中所约定的目录中建用户的家目录,并复制/etc/skel中的文件(包括隐藏文件)到新用户的家目录中;

    如:useradd beinanlinux 通过more /etc/passwd | grep beinanlinux查询是否添加成功
    useradd  -c ChinaCpu  -d /opt/longcpu   -G linuxsir,root,beinan -s /bin/tcsh  longcpu 添加用户longcpu ,真实名是ChinaCpu ,家目录设置在 /opt/longcpu ,是linuxsir,root,beinan 用户组成员, SHELL是tcsh
     useradd  -e 11/04/2005 cooler  注:添加用户cooler,并设置其有效期为2005年11月04日;

    2、还可以通过修改/etc/passwd /etc/groups的办法来实现。

    在/etc/passwd 中,每一行都表示的是一个用户的信息;一行有7个段位;每个段位用:号分割,比如下面是我的系统中的/etc/passwd 的两行;

    beinan:x:500:500:beinan sun:/home/beinan:/bin/bash
    linuxsir:x:505:502:linuxsir open,linuxsir office,13898667715:/home/linuxsir:/bin/bash
    beinan:x:500:500:beinan sun:/home/beinan:/bin/bash
    linuxsir:x:501:502::/home/linuxsir:/bin/bash

    第一字段:用户名(也被称为登录名);在上面的例子中,我们看到这两个用户的用户名分别是 beinan 和linuxsir;
    第二字段:口令;在例子中我们看到的是一个x,其实密码已被映射到/etc/shadow 文件中;
    第三字段:UID ;请参看本文的UID的解说;
    第四字段:GID;请参看本文的GID的解说;
    第五字段:用户名全称,这是可选的,可以不设置,在beinan这个用户中,用户的全称是beinan sun ;而linuxsir 这个用户是没有设置全称;
    第六字段:用户的家目录所在位置;beinan 这个用户是/home/beinan ,而linuxsir 这个用户是/home/linuxsir ;
    第七字段:用户所用SHELL 的类型,beinan和linuxsir 都用的是 bash ;所以设置为/bin/bash ;

    3、添加用户组命令 groupadd

      groupadd -g 666 google

    三、passwd 设置或修改用户密码;

    1、passwd 简单说明

    passwd 命令后面不接任何参数或用户名,则表示修改当前用户的密码;请看下面的例子;

    [root@localhost ~]# passwd   注:没有加任何用户,我是用root用户来执行的passwd 表示修改root用户的密码;下面也有提示;
    Changing password for user root.
    New UNIX password:  注:请输入新密码;
    Retype new UNIX password:  注:验证新密码;
    passwd: all authentication tokens updated successfully.  注:修改root密码成功;

    如果是普通用户执行passwd 只能修改自己的密码;

    如果新建用户后,要为新用户创建密码,则用 passwd 用户名 ,注意要以root用户的权限来创建;

    [root@localhost ~]# passwd beinan  注:更改或创建beinan用户的密码;
    Changing password for user beinan.
    New UNIX password:  注:请输入新密码;
    Retype new UNIX password:  注:再输入一次;
    passwd: all authentication tokens updated successfully.  注:成功;

    2、chage 修改用户密码有效期限的命令

    chage [-l] [-m 最小天数] [-M 最大天数] [-W 警告] [-I 失效日] [-E 过期日] [-d 最后日] 用户

    四、删除用户和用户组的工具, userdel和 groupdel 介绍;

    1、userdel

    userdel很简单,只有一个参数可选 -r ;如果加参数-r ,表示在删除用户的同时,一并把用户的家目录及本地邮件存储的目录或文件也一同删除;比如我们现在有两个用户bnnb和lanhaitun,其家目录都位于/home目录中,现在我们来删除这两个用户;


    [root@localhost ~]# userdel bnnb  注:删除用户bnnb,但不删除其家目录及文件;
    [root@localhost ~]# ls -ld /home/bnnb  注:查看其家目录是否存在;
    drwxr-xr-x  14 501 501 4096  8月 29 16:33 /home/bnnb    注:存在;

    [root@localhost ~]# ls -ld /home/lanhaitun   注:查看lanhaitun家目录是否存在;
    drwx------  4 lanhaitun lanhaitun 4096 11月  5 14:50 /home/lanhaitun   注:存在;

    [root@localhost ~]# userdel -r  lanhaitun  注:删除用户lanhaitun,其家目录及文件一并删除;

    [root@localhost ~]# ls -ld /home/lanhaitun  注:查看是否在删除lanhaitun 用户的同时,也一并把其家目录和文件一同删除;
    ls: /home/lanhaitun: 没有那个文件或目录  注:已经删除;

    2、groupdel的用法:groupdel 用户组

    五、修改用户的工具介绍;

    1、chfn 修改用户信息工具

    chfn 用户名


    [root@localhost ~]# chfn beinanlinux  注:更改用户beinanlinux的信息;
    Changing finger information for beinanlinux.
    Name []: BeiNan.Linux  注:用户全名BeiNan.Linux ,随便写一个就行;
    Office []: ChinaDL
    Office Phone []: 66666666
    Home Phone []: 99999999

    Finger information changed.  注:更改完成;通过finger beinanlinux查看修改结果

    2、chsh 改变用户的SHELL类型;

    finger beinanlinux |grep Shell  注:查看用户beinanlinux 所用的SHELL类型;
    chsh -s /bin/ksh beinanlinux  注:更改beinanlinux所用的shell 为ksh

    3、usermod 用户修改工具(极其强大)

    usermod 不仅能改用户的SHELL类型,所归属的用户组,也能改用户密码的有效期,还能改登录名。usermod 如此看来就是能做到用户帐号大转移;比如我把用户A改为新用户B;

    警告: usermod 最好不要用它来改用户的密码,因为他在/etc/shadow中显示的是明口令;修改用户的口令最好用passwd ;

    4、userinfo 图形介面的修改工具;

    userinfo 系统普通用户都能调用,但都是修改当前操作用户的;还是点鼠标完成吧,多点几下就OK了。

    5、id工具 查看用户、用户所归属的用户组、UID 和GID 的查看
    6、finger 用户名、电话、家目录、登录SHELL类型、真实姓名、空闲时间等的查询
    7、goups 查询用户组
    8、su切换到超级用户:su (su - root)
         切换到普通用户:su - feisky

  • 相关阅读:
    qt.qpa.plugin Could not load the Qt platform plugin xcb
    深度学习模型在移动端的部署
    ccproxy
    Java版本
    第四篇 -- Go语言string转其他类型
    第三篇 -- Go语言其他类型转String方法
    第二篇 -- Go语言转义字符与变量声明
    第五十三篇 -- MFC美化界面2
    C++第五十二篇 -- 多线程之消息传递
    第一篇 -- Go环境的搭建以及Hello World程序编写
  • 原文地址:https://www.cnblogs.com/feisky/p/1607931.html
Copyright © 2011-2022 走看看