zoukankan      html  css  js  c++  java
  • Linux 组群账户管理

    一.Linux组群账户配置文件

    1./etc/group文件

    /etc/group文件是用户组群的配置文件,内容包括用户和用户组群,并且能显示出用户是归属哪个用户组群或哪几个用户组群。一个用户可以归属一个或多个不同的用户组群,同一用户组群的用户之间具有相似的特征。比如把某一用户加入到root用户组群,那么这个用户就可以浏览root用户主目录的文件,如果root用户把某个文件的读写执行权限放开,root用户组群的所有用户都可以修改此文件;如果是可执行的文件,root用户组群的用户也是可以执行的。

      (1)./etc/group文件内容

    /etc/group文件的内容包括用户组群名、用户组群口令、GID及该用户组群所包含的用户,每个用户组群都有一条记录。一行有4个段位,每个段位用":"分隔,下面是/etc/group文件的部分内容的示例。

    [root@redhat2 home]# cat /etc/group

    root:x:0:

    bin:x:1:bin,daemon

    daemon:x:2:bin,daemon

    sys:x:3:bin,adm

    adm:x:4:adm,daemon

    tty:x:5:

    disk:x:6:

    表8-3所示为/etc/passwd文件中各字段的含义。

    字段

    含义

    组群名

    用户组群名称,如组群名root

    组群口令

    存放加密的密码,在上面示例中我们看到的是一个x,其实口令已被映射到/etc/gshadow文件中

    组群标识号

    在系统内用一个整数标识组群GID,每个组群的GID都是唯一的,默认普通组群的GID从500开始,如root组群GID是0

    组群成员

    属于这个组群的成员,如root组群的成员有root用户

    (2)./etc/gshadow文件

     /etc/gshadow是/etc/group的加密文件,比如用户组群管理密口令就是存放在这个文件中。/etc/gshadow和/etc/group是互补的两个文件;

    /etc/gshadow文件中每个用户组群都有一条记录。一行有4个段位,每个段位用":"分割,下面是/etc/gshadow文件的部分内容的示例:

    [root@redhat2 home]# cat /etc/gshadow

    root:::

    bin:::bin,daemon

    daemon:::bin,daemon

    sys:::bin,adm

    adm:::adm,daemon

    tty:::

    disk:::

    lp:::daemon

    mem:::

    kmem:::

    wheel:::

    mail:::mail,postfix

    uucp:::

    man:::

    games:::

    表4-1 所示为/etc/gshadow文件中各字段的含义。

    字段

    含义

    组群名

    组群名称,如组群名root

    组群口令

    口令已经加密,如果这些组群在这里显示的是"!",表示这个组群没有口令。上面示例中组群shanghai没有口令,组群beijing已设置口令。

    组群管理者

    组群的管理者,有权在该组群中添加、删除用户

    组群成员

    属于该组群的用户成员列表,如有多个用户用","分隔。上面示例中beijing组群的成员是ou

    二.字符界面下组群账户的设置

      在Linux系统字符界面下创建、修改以及删除组群账户主要使用groupadd,groupmod和groupdel这3个命令,其结果与使用“用户管理器”工具一样。

    1.创建组群账户

      使用groupadd命令可以在Linux系统下创建组群账户。

    命令语法:

    [root@redhat2 ~]# groupadd

    Usage: groupadd [options] GROUP

    Options:

      -f, --force                   exit successfully if the group already exists,

                                    and cancel -g if the GID is already used

      -g, --gid GID                 use GID for the new group

      -h, --help                    display this help message and exit

      -K, --key KEY=VALUE           override /etc/login.defs defaults

      -o, --non-unique              allow to create groups with duplicate

                                    (non-unique) GID

      -p, --password PASSWORD       use this encrypted password for the new group

      -r, --system                  create a system account

    [root@redhat2 ~]#

    2.创建名为china的组群。

    [root@redhat2 ~]# groupadd -g 800 ou

    [root@redhat2 ~]# cat /etc/group |grep ou

    dialout:x:18:

    ou:x:800:

    [root@redhat2 ~]#

    //查看文件/etc/group,可以看到已经创建了组群ou,组群GID是800。

    3.创建名为chineses的系统组群。

    [root@redhat2 ~]# groupadd -r chineses

    [root@redhat2 ~]# cat /etc/group |grep chinese

    chineses:x:493:

    [root@redhat2 ~]#

    4.创建名为chinese的系统组群。

    [root@redhat2 ~]# groupadd -r chineses

    [root@redhat2 ~]# cat /etc/group |grep chinese

    chineses:x:493:

    [root@redhat2 ~]#

    //查看/etc/group文件,可以看到系统组群chinese的GID是493,是小于500的。

    三.修改组群账户

      使用groupmod命令可以在Linux系统下修改组群账户,如组群名称、GID等。

     命令语法:

    [root@redhat2 ~]# groupmod

    Usage: groupmod [options] GROUP

    Options:

      -g, --gid GID                 change the group ID to GID

      -h, --help                    display this help message and exit

      -n, --new-name NEW_GROUP      change the name to NEW_GROUP

      -o, --non-unique              allow to use a duplicate (non-unique) GID

      -p, --password PASSWORD       change the password to this (encrypted)

                                    PASSWORD

    [root@redhat2 ~]#

    例1:将组群ou的GID修改为900。

    [root@redhat2 ~]# groupmod -g 900 ou

    [root@redhat2 ~]# cat /etc/group |grep ou

    dialout:x:18:

    ou:x:900:

    [root@redhat2 ~]#

    //查看文件/etc/group,可以看到组群ou的GID已经更改为900。

    例2:修改组群ou的新组群名称为shanghai。

    [root@redhat2 ~]# groupmod -n shanghai ou

    [root@redhat2 ~]# cat /etc/group|grep shanghai

    shanghai:x:900:

    [root@redhat2 ~]#

    //查看/etc/group文件,可以看到当前组群shanghai已经存在。

    四.账户相关文件或目录

        在创建、修改和删除账户时,涉及到众多的相关文件和目录,如/etc/skel目录、/etc/login.defs文件和/etc/default/useradd文件。

    1. /etc/skel目录

    /etc/skel目录是存放用户启动文件的目录,这个目录由root用户管理,当管理员创建新用户时,这个目录下的文件会自动复制到新创建的用户的主目录下。/etc/skel目录下的文件都是隐藏文件,也就是类似".file"格式的,可以通过添加、修改和删除/etc/skel目录下的文件,来为用户提供一个统一、标准和默认的用户环境。

         使用如下命令查看/etc/skel目录内包含的文件信息。

        [root@redhat2 ~]# ls -al /etc/skel

          total 40

          drwxr-xr-x.   4 root root  4096 Jun  4  2014 .

          drwxr-xr-x. 100 root root 12288 Jan 11 05:24 ..

         -rw-r--r--.   1 root root    18 Apr 23  2012 .bash_logout

         -rw-r--r--.   1 root root   176 Apr 23  2012 .bash_profile

         -rw-r--r--.   1 root root   124 Apr 23  2012 .bashrc

         drwxr-xr-x.   2 root root  4096 Jul 14  2010 .gnome2

         -rw-r--r--.   1 root root   121 Apr 11  2012 .kshrc

        drwxr-xr-x.   4 root root  4096 Jun  2  2014 .mozilla

     [root@redhat2 ~]#

      当用户useradd命令创建新用户时,/etc/skel目录下的文件会自动复制到新创建用户的主目录下。另外一种方法也可以达到同样效果,管理员通过修改/etc/passwd文件创建新用户时,设置用户的主目录,然后把/etc/skel下的文件复制到用户的主目录下,最后用chown命令改变新用户主目录的属主。

    2./etc/login.defs配置文件

      /etc/login.defs文件规定了创建新用户时的一些默认设置,比如创建用户时是否需要主目录、UID和GID的范围、用户账户口令的期限等,这个文件可以通过root用户来修改。

      MAIL_DIR   /var/spool/mail  //创建用户时,要在目录/var/spool/mail中创建一个用户邮箱文件

      PASS_MAX_DAYS   99999   //用户必须更改口令的天数

      PASS_MIN_DAYS   0             //用户可以更改口令的天数

     PASS_MIN_LEN    5                //口令最小长度

     PASS_WARN_AGE   7           //在用户口令过期之前的警告时间

      UID_MIN                   500     //创建新用户时用户的UID从500开始

      UID_MAX                 60000  //用户最大UID职为60000

     GID_MIN                   500      //创建新组群时组群的GID从500开始

     GID_MAX                 60000   //组群最大GID值为60000

     CREATE_HOME     yes   //是否要求创建用户主目录,yes表示要求创建

     ENCRYPT_METHOD MD5  //启用MD5加密口令

    3./etc/default/useradd文件

    /etc/default/useradd文件是在使用useradd命令创建用户账户时的规则文件。

    [root@redhat2 ~]# cat /etc/default/useradd

    # useradd defaults file

    GROUP=100 

    HOME=/home        //把用户的主目录创建在/home目录中

    INACTIVE=-1          //是否启用账户过期,-1表示不启用

    EXPIRE=                   //账户终止日期,不设置表示不启用

    SHELL=/bin/bash  //用户账户所用shell类型

    SKEL=/etc/skel     //创建新用户时从/etc/skel目录下复制文件到用户主目录

    CREATE_MAIL_SPOOL=yes  //创建新用户时在/var/spool/mail目录下创建该用户邮箱目录。

    五.用户和组群维护命令

     1.账户维护命令

      在平时的工作中对账户进行维护主要用到passwd,gpasswd,chfn,chsh,su,pwck以及newgrp等众多命令。

    (1).passwd命令

      使用passwd命令可以设置或修改用户的口令,普通用户和超级权限用户都可以运行passwd。

    普通用户只能更改自己的用户口令,root用户可以设置或修改任何用户的口令。

    如果passwd命令后面不接任何选项或用户名,则表示修改当前用户的口令。

    命令语法:

    [root@redhat2 ~]# passwd --help

    Usage: passwd [OPTION...] <accountName>

      -k, --keep-tokens       keep non-expired authentication tokens

      -d, --delete            delete the password for the named account (root only)

      -l, --lock              lock the password for the named account (root only)

      -u, --unlock            unlock the password for the named account (root only)

      -e, --expire            expire the password for the named account (root only)

      -f, --force             force operation

      -x, --maximum=DAYS      maximum password lifetime (root only)

      -n, --minimum=DAYS      minimum password lifetime (root only)

      -w, --warning=DAYS      number of days warning users receives before  password expiration (root only)

      -i, --inactive=DAYS     number of days after password expiration when an

                              account becomes disabled (root only)

      -S, --status            report password status on the named account (root only)

      --stdin                 read new tokens from stdin (root only)

    Help options:

      -?, --help              Show this help message

      --usage                 Display brief usage message

    例1:设置用户zhaoliu的口令

     [root@redhat2 home]# passwd zhaoliu

     Changing password for user zhaoliu.

     New password:

     BAD PASSWORD: it is WAY too short

     BAD PASSWORD: is too simple

     Retype new password:

     passwd: all authentication tokens updated successfully.

     [root@redhat2 home]#

    例2:设置当前用户的口令

     [root@redhat2 home]# passwd

    Changing password for user root.

    New password:

    BAD PASSWORD: it is WAY too short

    BAD PASSWORD: is too simple

    Retype new password:

    passwd: all authentication tokens updated successfully.

    [root@redhat2 home]#

    例3:锁住用户zhaoliu的口令。

    [root@redhat2 home]# passwd -l zhaoliu

    Locking password for user zhaoliu.

    passwd: Success

    [root@redhat2 home]#

    //用户zhaoliu锁住以后不能登录到系统,但是可以用su命令从其他用户切换到用户zhaoliu

    [root@redhat2 home]# passwd -S zhaoliu

    zhaoliu LK 2015-01-12 0 99999 7 -1 (Password locked.)

    [root@redhat2 home]#

    //查看用户口令状态,可以看到用户zhaoliu的口令是锁住的。

    [root@redhat2 home]# cat /etc/shadow|grep zhaoliu

    zhaoliu:!!$1$fMvAUpfG$yIGyFEzLVkZflgi78rCkJ/:16448:0:99999:7:::

    [root@redhat2 home]#

    //查看/etc/shadow文件,可以看到用户zhaoliu口令锁住以后在口令字段前有"!!"

    例4:解锁用户zhaoliu口令。

    [root@redhat2 home]# passwd -u zhaoliu

    Unlocking password for user zhaoliu.

    passwd: Success

    [root@redhat2 home]#

    例5:删除用户zhaoliu的口令。

    [root@redhat2 home]# cat /etc/shadow|grep zhaoliu

    zhaoliu:!!$1$fMvAUpfG$yIGyFEzLVkZflgi78rCkJ/:16448:0:99999:7:::

    //查看/etc/shadow文件,可以看到用户zhaoliu设置过口令。

    [root@redhat2 home]# passwd -u zhaoliu

    Unlocking password for user zhaoliu.

    passwd: Success

    [root@redhat2 home]# cat /etc/shadow|grep zhaoliu

    zhaoliu:$1$fMvAUpfG$yIGyFEzLVkZflgi78rCkJ/:16448:0:99999:7:::

    [root@redhat2 home]# passwd -d zhaoliu

    Removing password for user zhaoliu.

    passwd: Success

    [root@redhat2 home]# cat /etc/shadow |grep zhaoliu

    zhaoliu::16448:0:99999:7:::

    [root@redhat2 home]#

    //查看/etc/shadow文件,可以看到用户zhaoliu的口令已经没有了.

    (2).gpasswd

        使用gpasswd命令可以设置一个组群的组群密码,或是在组群中添加、删除用户。

       [root@redhat2 home]# gpasswd

       Usage: gpasswd [option] GROUP

      Options:

      -a, --add USER                add USER to GROUP

      -d, --delete USER             remove USER from GROUP

      -r, --remove-password         remove the GROUP's password

      -R, --restrict                restrict access to GROUP to its members

      -M, --members USER,...        set the list of members of GROUP

      -A, --administrators ADMIN,...

                                    set the list of administrators for GROUP

    Except for the -A and -M options, the options cannot be combined.

    例1:把用户zhaoliu添加到zhang组群中。

    [root@redhat2 home]# gpasswd -a zhaoliu zhang

    Adding user zhaoliu to group zhang

    //正在将用户"zhaoliu"加入到'zhang'组群中。

    [root@redhat2 home]# cat /etc/group |grep zhaoliu

    zhang:x:513:zhaoliu

    [root@redhat2 home]#

    //在/etc/group文件中可以看到zhang组群中有用户zhaoliu。

    例2:从zhang组群中删除用户zhaoliu。

    [root@redhat2 home]# gpasswd -d zhaoliu zhang

    Removing user zhaoliu from group zhang

    [root@redhat2 home]# cat /etc/group |grep zhang

    zhangsan:x:501:

    zhang:x:513:

    [root@redhat2 home]#

    //在/etc/group文件中可以看到zhang组群中已经没有用户zhaoliu了。

    例3:设置zhang组群的口令。

    [root@redhat2 home]# gpasswd zhang

    Changing the password for group zhang

    New Password:

    Re-enter new password:

    [root@redhat2 home]#

    //在/etc/gshadow文件中可以看到组群zhang已经设置口令。

    例4:取消zhang组群密码。

    [root@redhat2 home]# gpasswd -r zhang

    [root@redhat2 home]# cat /etc/gshadow |grep zhang

    zhangsan:!::

    zhang:::

    [root@redhat2 home]#

    //在/etc/gshadow文件中可以看到组群zhang已经不存在了。

    (3).chsh命令

      使用chsh命令可以更改用户账户的shell类型。

    [root@redhat2 home]# chsh --help

    Usage: chsh [ -s shell ] [ --list-shells ] [ --help ] [ --version ]

           [ username ]

    [root@redhat2 home]#

    例1.列出当前系统中所有支持的shell类型。

    [root@redhat2 home]# chsh -l

    /bin/sh

    /bin/bash

    /sbin/nologin

    /bin/tcsh

    /bin/csh

    /bin/ksh

    [root@redhat2 home]#

    例2:更改用户wangwu所用的shell类型为/bin/sh.

    [root@redhat2 home]# cat /etc/passwd |grep wangwu

    wangwu:x:514:514::/home/wangwu:/bin/bash

    //查看/etc/passwd文件,可以看到用户wangwu的shell类型为/bin/bash

    [root@redhat2 home]# chsh -s /bin/sh wangwu

    Changing shell for wangwu.

    Shell changed.

    [root@redhat2 home]#

    [root@redhat2 home]# cat /etc/passwd |grep wangwu

    wangwu:x:514:514::/home/wangwu:/bin/sh

    [root@redhat2 home]#

    //查看/etc/passwd文件,可以看到用户wangwu的shell类型已经更改为/bin/sh

    例3:更改当前用户wangwu 的shell类型为/bin/bash。

    [root@redhat2 home]# chsh wangwu

    Changing shell for wangwu.

    New shell [/bin/sh]: /bin/bash      //在此输入shell类型,比如/bin/bash

    Shell changed.

    [root@redhat2 home]#

    (3).pwck命令

     使用pwck命令可以检验用户配置文件/etc/passwd和/etc/shadow内容是否合法和完整。

    [root@redhat2 home]# pwck

    user 'adm': directory '/var/adm' does not exist

    user 'uucp': directory '/var/spool/uucp' does not exist

    user 'gopher': directory '/var/gopher' does not exist

    user 'ftp': directory '/var/ftp' does not exist

    user 'avahi-autoipd': directory '/var/lib/avahi-autoipd' does not exist

    user 'saslauth': directory '/var/empty/saslauth' does not exist

    user 'pulse': directory '/var/run/pulse' does not exist

    user 'wangwu': directory '/home/wangwu' does not exist

    pwck: no changes

    [root@redhat2 home]#

    //可以看到用户wangwu的主目录/home/wangwu不存在。

    (4).newgrp命令

    使用newgrp命令可以让用户账户以另一个组群的身份进行登录。

    说明:newgrp指令类似于login指令,是以相同的账号名,不同的组群身份登录系统。如果要使用newgrp指令切换组群,用户必须是该组群的用户,否则将无法登陆指定的组群。单一用户如果要同时隶属多个组群,需利用交替用户的设置。如果不指定组群名称,则newgrp指令会登录该用户名称的预设组群。

    例:将用户zhang以组群zhangsan的身份登录系统。

    [root@redhat2 home]# su zhang

    [zhang@redhat2 home]$ newgrp zhangsan

    [zhang@redhat2 home]$ id

    uid=513(zhang) gid=513(zhang) groups=513(zhang),501(zhangsan)

    [zhang@redhat2 home]$

    一.Linux组群账户配置文件

    1./etc/group文件

    /etc/group文件是用户组群的配置文件,内容包括用户和用户组群,并且能显示出用户是归属哪个用户组群或哪几个用户组群。一个用户可以归属一个或多个不同的用户组群,同一用户组群的用户之间具有相似的特征。比如把某一用户加入到root用户组群,那么这个用户就可以浏览root用户主目录的文件,如果root用户把某个文件的读写执行权限放开,root用户组群的所有用户都可以修改此文件;如果是可执行的文件,root用户组群的用户也是可以执行的。

      (1)./etc/group文件内容

    /etc/group文件的内容包括用户组群名、用户组群口令、GID及该用户组群所包含的用户,每个用户组群都有一条记录。一行有4个段位,每个段位用":"分隔,下面是/etc/group文件的部分内容的示例。

    [root@redhat2 home]# cat /etc/group

    root:x:0:

    bin:x:1:bin,daemon

    daemon:x:2:bin,daemon

    sys:x:3:bin,adm

    adm:x:4:adm,daemon

    tty:x:5:

    disk:x:6:

    表8-3所示为/etc/passwd文件中各字段的含义。

    字段

    含义

    组群名

    用户组群名称,如组群名root

    组群口令

    存放加密的密码,在上面示例中我们看到的是一个x,其实口令已被映射到/etc/gshadow文件中

    组群标识号

    在系统内用一个整数标识组群GID,每个组群的GID都是唯一的,默认普通组群的GID从500开始,如root组群GID是0

    组群成员

    属于这个组群的成员,如root组群的成员有root用户

    (2)./etc/gshadow文件

     /etc/gshadow是/etc/group的加密文件,比如用户组群管理密口令就是存放在这个文件中。/etc/gshadow和/etc/group是互补的两个文件;

    /etc/gshadow文件中每个用户组群都有一条记录。一行有4个段位,每个段位用":"分割,下面是/etc/gshadow文件的部分内容的示例:

    [root@redhat2 home]# cat /etc/gshadow

    root:::

    bin:::bin,daemon

    daemon:::bin,daemon

    sys:::bin,adm

    adm:::adm,daemon

    tty:::

    disk:::

    lp:::daemon

    mem:::

    kmem:::

    wheel:::

    mail:::mail,postfix

    uucp:::

    man:::

    games:::

    表4-1 所示为/etc/gshadow文件中各字段的含义。

    字段

    含义

    组群名

    组群名称,如组群名root

    组群口令

    口令已经加密,如果这些组群在这里显示的是"!",表示这个组群没有口令。上面示例中组群shanghai没有口令,组群beijing已设置口令。

    组群管理者

    组群的管理者,有权在该组群中添加、删除用户

    组群成员

    属于该组群的用户成员列表,如有多个用户用","分隔。上面示例中beijing组群的成员是ou

    二.字符界面下组群账户的设置

      在Linux系统字符界面下创建、修改以及删除组群账户主要使用groupadd,groupmod和groupdel这3个命令,其结果与使用“用户管理器”工具一样。

    1.创建组群账户

      使用groupadd命令可以在Linux系统下创建组群账户。

    命令语法:

    [root@redhat2 ~]# groupadd

    Usage: groupadd [options] GROUP

    Options:

      -f, --force                   exit successfully if the group already exists,

                                    and cancel -g if the GID is already used

      -g, --gid GID                 use GID for the new group

      -h, --help                    display this help message and exit

      -K, --key KEY=VALUE           override /etc/login.defs defaults

      -o, --non-unique              allow to create groups with duplicate

                                    (non-unique) GID

      -p, --password PASSWORD       use this encrypted password for the new group

      -r, --system                  create a system account

    [root@redhat2 ~]#

    2.创建名为china的组群。

    [root@redhat2 ~]# groupadd -g 800 ou

    [root@redhat2 ~]# cat /etc/group |grep ou

    dialout:x:18:

    ou:x:800:

    [root@redhat2 ~]#

    //查看文件/etc/group,可以看到已经创建了组群ou,组群GID是800。

    3.创建名为chineses的系统组群。

    [root@redhat2 ~]# groupadd -r chineses

    [root@redhat2 ~]# cat /etc/group |grep chinese

    chineses:x:493:

    [root@redhat2 ~]#

    4.创建名为chinese的系统组群。

    [root@redhat2 ~]# groupadd -r chineses

    [root@redhat2 ~]# cat /etc/group |grep chinese

    chineses:x:493:

    [root@redhat2 ~]#

    //查看/etc/group文件,可以看到系统组群chinese的GID是493,是小于500的。

    三.修改组群账户

      使用groupmod命令可以在Linux系统下修改组群账户,如组群名称、GID等。

     命令语法:

    [root@redhat2 ~]# groupmod

    Usage: groupmod [options] GROUP

    Options:

      -g, --gid GID                 change the group ID to GID

      -h, --help                    display this help message and exit

      -n, --new-name NEW_GROUP      change the name to NEW_GROUP

      -o, --non-unique              allow to use a duplicate (non-unique) GID

      -p, --password PASSWORD       change the password to this (encrypted)

                                    PASSWORD

    [root@redhat2 ~]#

    例1:将组群ou的GID修改为900。

    [root@redhat2 ~]# groupmod -g 900 ou

    [root@redhat2 ~]# cat /etc/group |grep ou

    dialout:x:18:

    ou:x:900:

    [root@redhat2 ~]#

    //查看文件/etc/group,可以看到组群ou的GID已经更改为900。

    例2:修改组群ou的新组群名称为shanghai。

    [root@redhat2 ~]# groupmod -n shanghai ou

    [root@redhat2 ~]# cat /etc/group|grep shanghai

    shanghai:x:900:

    [root@redhat2 ~]#

    //查看/etc/group文件,可以看到当前组群shanghai已经存在。

    四.账户相关文件或目录

        在创建、修改和删除账户时,涉及到众多的相关文件和目录,如/etc/skel目录、/etc/login.defs文件和/etc/default/useradd文件。

    1. /etc/skel目录

    /etc/skel目录是存放用户启动文件的目录,这个目录由root用户管理,当管理员创建新用户时,这个目录下的文件会自动复制到新创建的用户的主目录下。/etc/skel目录下的文件都是隐藏文件,也就是类似".file"格式的,可以通过添加、修改和删除/etc/skel目录下的文件,来为用户提供一个统一、标准和默认的用户环境。

         使用如下命令查看/etc/skel目录内包含的文件信息。

        [root@redhat2 ~]# ls -al /etc/skel

          total 40

          drwxr-xr-x.   4 root root  4096 Jun  4  2014 .

          drwxr-xr-x. 100 root root 12288 Jan 11 05:24 ..

         -rw-r--r--.   1 root root    18 Apr 23  2012 .bash_logout

         -rw-r--r--.   1 root root   176 Apr 23  2012 .bash_profile

         -rw-r--r--.   1 root root   124 Apr 23  2012 .bashrc

         drwxr-xr-x.   2 root root  4096 Jul 14  2010 .gnome2

         -rw-r--r--.   1 root root   121 Apr 11  2012 .kshrc

        drwxr-xr-x.   4 root root  4096 Jun  2  2014 .mozilla

     [root@redhat2 ~]#

      当用户useradd命令创建新用户时,/etc/skel目录下的文件会自动复制到新创建用户的主目录下。另外一种方法也可以达到同样效果,管理员通过修改/etc/passwd文件创建新用户时,设置用户的主目录,然后把/etc/skel下的文件复制到用户的主目录下,最后用chown命令改变新用户主目录的属主。

    2./etc/login.defs配置文件

      /etc/login.defs文件规定了创建新用户时的一些默认设置,比如创建用户时是否需要主目录、UID和GID的范围、用户账户口令的期限等,这个文件可以通过root用户来修改。

      MAIL_DIR   /var/spool/mail  //创建用户时,要在目录/var/spool/mail中创建一个用户邮箱文件

      PASS_MAX_DAYS   99999   //用户必须更改口令的天数

      PASS_MIN_DAYS   0             //用户可以更改口令的天数

     PASS_MIN_LEN    5                //口令最小长度

     PASS_WARN_AGE   7           //在用户口令过期之前的警告时间

      UID_MIN                   500     //创建新用户时用户的UID从500开始

      UID_MAX                 60000  //用户最大UID职为60000

     GID_MIN                   500      //创建新组群时组群的GID从500开始

     GID_MAX                 60000   //组群最大GID值为60000

     CREATE_HOME     yes   //是否要求创建用户主目录,yes表示要求创建

     ENCRYPT_METHOD MD5  //启用MD5加密口令

    3./etc/default/useradd文件

    /etc/default/useradd文件是在使用useradd命令创建用户账户时的规则文件。

    [root@redhat2 ~]# cat /etc/default/useradd

    # useradd defaults file

    GROUP=100 

    HOME=/home        //把用户的主目录创建在/home目录中

    INACTIVE=-1          //是否启用账户过期,-1表示不启用

    EXPIRE=                   //账户终止日期,不设置表示不启用

    SHELL=/bin/bash  //用户账户所用shell类型

    SKEL=/etc/skel     //创建新用户时从/etc/skel目录下复制文件到用户主目录

    CREATE_MAIL_SPOOL=yes  //创建新用户时在/var/spool/mail目录下创建该用户邮箱目录。

    五.用户和组群维护命令

     1.账户维护命令

      在平时的工作中对账户进行维护主要用到passwd,gpasswd,chfn,chsh,su,pwck以及newgrp等众多命令。

    (1).passwd命令

      使用passwd命令可以设置或修改用户的口令,普通用户和超级权限用户都可以运行passwd。

    普通用户只能更改自己的用户口令,root用户可以设置或修改任何用户的口令。

    如果passwd命令后面不接任何选项或用户名,则表示修改当前用户的口令。

    命令语法:

    [root@redhat2 ~]# passwd --help

    Usage: passwd [OPTION...] <accountName>

      -k, --keep-tokens       keep non-expired authentication tokens

      -d, --delete            delete the password for the named account (root only)

      -l, --lock              lock the password for the named account (root only)

      -u, --unlock            unlock the password for the named account (root only)

      -e, --expire            expire the password for the named account (root only)

      -f, --force             force operation

      -x, --maximum=DAYS      maximum password lifetime (root only)

      -n, --minimum=DAYS      minimum password lifetime (root only)

      -w, --warning=DAYS      number of days warning users receives before  password expiration (root only)

      -i, --inactive=DAYS     number of days after password expiration when an

                              account becomes disabled (root only)

      -S, --status            report password status on the named account (root only)

      --stdin                 read new tokens from stdin (root only)

    Help options:

      -?, --help              Show this help message

      --usage                 Display brief usage message

    例1:设置用户zhaoliu的口令

     [root@redhat2 home]# passwd zhaoliu

     Changing password for user zhaoliu.

     New password:

     BAD PASSWORD: it is WAY too short

     BAD PASSWORD: is too simple

     Retype new password:

     passwd: all authentication tokens updated successfully.

     [root@redhat2 home]#

    例2:设置当前用户的口令

     [root@redhat2 home]# passwd

    Changing password for user root.

    New password:

    BAD PASSWORD: it is WAY too short

    BAD PASSWORD: is too simple

    Retype new password:

    passwd: all authentication tokens updated successfully.

    [root@redhat2 home]#

    例3:锁住用户zhaoliu的口令。

    [root@redhat2 home]# passwd -l zhaoliu

    Locking password for user zhaoliu.

    passwd: Success

    [root@redhat2 home]#

    //用户zhaoliu锁住以后不能登录到系统,但是可以用su命令从其他用户切换到用户zhaoliu

    [root@redhat2 home]# passwd -S zhaoliu

    zhaoliu LK 2015-01-12 0 99999 7 -1 (Password locked.)

    [root@redhat2 home]#

    //查看用户口令状态,可以看到用户zhaoliu的口令是锁住的。

    [root@redhat2 home]# cat /etc/shadow|grep zhaoliu

    zhaoliu:!!$1$fMvAUpfG$yIGyFEzLVkZflgi78rCkJ/:16448:0:99999:7:::

    [root@redhat2 home]#

    //查看/etc/shadow文件,可以看到用户zhaoliu口令锁住以后在口令字段前有"!!"

    例4:解锁用户zhaoliu口令。

    [root@redhat2 home]# passwd -u zhaoliu

    Unlocking password for user zhaoliu.

    passwd: Success

    [root@redhat2 home]#

    例5:删除用户zhaoliu的口令。

    [root@redhat2 home]# cat /etc/shadow|grep zhaoliu

    zhaoliu:!!$1$fMvAUpfG$yIGyFEzLVkZflgi78rCkJ/:16448:0:99999:7:::

    //查看/etc/shadow文件,可以看到用户zhaoliu设置过口令。

    [root@redhat2 home]# passwd -u zhaoliu

    Unlocking password for user zhaoliu.

    passwd: Success

    [root@redhat2 home]# cat /etc/shadow|grep zhaoliu

    zhaoliu:$1$fMvAUpfG$yIGyFEzLVkZflgi78rCkJ/:16448:0:99999:7:::

    [root@redhat2 home]# passwd -d zhaoliu

    Removing password for user zhaoliu.

    passwd: Success

    [root@redhat2 home]# cat /etc/shadow |grep zhaoliu

    zhaoliu::16448:0:99999:7:::

    [root@redhat2 home]#

    //查看/etc/shadow文件,可以看到用户zhaoliu的口令已经没有了.

    (2).gpasswd

        使用gpasswd命令可以设置一个组群的组群密码,或是在组群中添加、删除用户。

       [root@redhat2 home]# gpasswd

       Usage: gpasswd [option] GROUP

      Options:

      -a, --add USER                add USER to GROUP

      -d, --delete USER             remove USER from GROUP

      -r, --remove-password         remove the GROUP's password

      -R, --restrict                restrict access to GROUP to its members

      -M, --members USER,...        set the list of members of GROUP

      -A, --administrators ADMIN,...

                                    set the list of administrators for GROUP

    Except for the -A and -M options, the options cannot be combined.

    例1:把用户zhaoliu添加到zhang组群中。

    [root@redhat2 home]# gpasswd -a zhaoliu zhang

    Adding user zhaoliu to group zhang

    //正在将用户"zhaoliu"加入到'zhang'组群中。

    [root@redhat2 home]# cat /etc/group |grep zhaoliu

    zhang:x:513:zhaoliu

    [root@redhat2 home]#

    //在/etc/group文件中可以看到zhang组群中有用户zhaoliu。

    例2:从zhang组群中删除用户zhaoliu。

    [root@redhat2 home]# gpasswd -d zhaoliu zhang

    Removing user zhaoliu from group zhang

    [root@redhat2 home]# cat /etc/group |grep zhang

    zhangsan:x:501:

    zhang:x:513:

    [root@redhat2 home]#

    //在/etc/group文件中可以看到zhang组群中已经没有用户zhaoliu了。

    例3:设置zhang组群的口令。

    [root@redhat2 home]# gpasswd zhang

    Changing the password for group zhang

    New Password:

    Re-enter new password:

    [root@redhat2 home]#

    //在/etc/gshadow文件中可以看到组群zhang已经设置口令。

    例4:取消zhang组群密码。

    [root@redhat2 home]# gpasswd -r zhang

    [root@redhat2 home]# cat /etc/gshadow |grep zhang

    zhangsan:!::

    zhang:::

    [root@redhat2 home]#

    //在/etc/gshadow文件中可以看到组群zhang已经不存在了。

    (3).chsh命令

      使用chsh命令可以更改用户账户的shell类型。

    [root@redhat2 home]# chsh --help

    Usage: chsh [ -s shell ] [ --list-shells ] [ --help ] [ --version ]

           [ username ]

    [root@redhat2 home]#

    例1.列出当前系统中所有支持的shell类型。

    [root@redhat2 home]# chsh -l

    /bin/sh

    /bin/bash

    /sbin/nologin

    /bin/tcsh

    /bin/csh

    /bin/ksh

    [root@redhat2 home]#

    例2:更改用户wangwu所用的shell类型为/bin/sh.

    [root@redhat2 home]# cat /etc/passwd |grep wangwu

    wangwu:x:514:514::/home/wangwu:/bin/bash

    //查看/etc/passwd文件,可以看到用户wangwu的shell类型为/bin/bash

    [root@redhat2 home]# chsh -s /bin/sh wangwu

    Changing shell for wangwu.

    Shell changed.

    [root@redhat2 home]#

    [root@redhat2 home]# cat /etc/passwd |grep wangwu

    wangwu:x:514:514::/home/wangwu:/bin/sh

    [root@redhat2 home]#

    //查看/etc/passwd文件,可以看到用户wangwu的shell类型已经更改为/bin/sh

    例3:更改当前用户wangwu 的shell类型为/bin/bash。

    [root@redhat2 home]# chsh wangwu

    Changing shell for wangwu.

    New shell [/bin/sh]: /bin/bash      //在此输入shell类型,比如/bin/bash

    Shell changed.

    [root@redhat2 home]#

    (3).pwck命令

     使用pwck命令可以检验用户配置文件/etc/passwd和/etc/shadow内容是否合法和完整。

    [root@redhat2 home]# pwck

    user 'adm': directory '/var/adm' does not exist

    user 'uucp': directory '/var/spool/uucp' does not exist

    user 'gopher': directory '/var/gopher' does not exist

    user 'ftp': directory '/var/ftp' does not exist

    user 'avahi-autoipd': directory '/var/lib/avahi-autoipd' does not exist

    user 'saslauth': directory '/var/empty/saslauth' does not exist

    user 'pulse': directory '/var/run/pulse' does not exist

    user 'wangwu': directory '/home/wangwu' does not exist

    pwck: no changes

    [root@redhat2 home]#

    //可以看到用户wangwu的主目录/home/wangwu不存在。

    (4).newgrp命令

    使用newgrp命令可以让用户账户以另一个组群的身份进行登录。

    说明:newgrp指令类似于login指令,是以相同的账号名,不同的组群身份登录系统。如果要使用newgrp指令切换组群,用户必须是该组群的用户,否则将无法登陆指定的组群。单一用户如果要同时隶属多个组群,需利用交替用户的设置。如果不指定组群名称,则newgrp指令会登录该用户名称的预设组群。

    例:将用户zhang以组群zhangsan的身份登录系统。

    [root@redhat2 home]# su zhang

    [zhang@redhat2 home]$ newgrp zhangsan

    [zhang@redhat2 home]$ id

    uid=513(zhang) gid=513(zhang) groups=513(zhang),501(zhangsan)

    [zhang@redhat2 home]$

     

     

  • 相关阅读:
    OA常见问题和解决方案
    如何用Visio画venn(维恩)图
    小谈SQL表的连接
    记一次视图的应用
    常用sql语句备份
    EF中关系映射问题
    .net core 2.0的一次奇特经历
    .net core 下的Area注册
    win 10+ iis 10 部署.net core 1.1 web api
    AutoMapper差异内容备份
  • 原文地址:https://www.cnblogs.com/numberone/p/4224936.html
Copyright © 2011-2022 走看看