zoukankan      html  css  js  c++  java
  • linux那点事儿(五)用户管理常用命令

         上一节,将的那内容有些复杂,如果是新手,又不想一下子对用户管理了解的那么深入,欢迎阅读本节内容。

         ps:其实,对前面两节内容做了大的调整,在方便自己查阅的同时,也希望方便别人的阅读。呵呵!

    用户组权限实例                                                                                                                                                     

    先直接抛一个需求出来吧!先步骤完成了,后面再分析。

    授权用户 chongshi 和 bugmaster 对目录/cnblogs有写权限

    创建目录
    [root@localhost hzh]# mkdir /cnblogs      创建目录
    [root@bogon hzh]# ls -ld /cnblogs     查看目录
    drwxr-xr-x 2 root root 4096 5月 10 23:20 /cnblogs


    添加两个用户并设置密码
    [root@bogon hzh]# useradd chongshi     创建用户
    [root@bogon hzh]# passwd chongshi      设置密码
    Changing password for user chongshi.
    New UNIX password:
    BAD PASSWORD: it is based on a dictionary word
    Retype new UNIX password:
    passwd: all authentication tokens updated successfully.

    [root@bogon hzh]# useradd bugmaster
    [root@bogon hzh]# passwd bugmaster
    Changing password for user bugmaster.
    New UNIX password:
    BAD PASSWORD: it is based on a dictionary word
    Retype new UNIX password:
    passwd: all authentication tokens updated successfully.

     

    添加一个组

    [root@bogon hzh]# groupadd testing                    创建组
    [root@bogon hzh]# grep testing /etc/group         查看组信息
    testing:x:506:

     

    将用户添加到组中

    [root@bogon hzh]# usermod -G testing chongshi        用户chongshi添加到组testing
    [root@bogon hzh]# gpasswd -a bugmaster testing     用户bugmaster添加到组testing
    Adding user bugmaster to group testing
    注意:上面两种方式不同,但作用是一样的,都是将用户添加到组中。
    [root@bogon hzh]# grep testing  /etc/group         查看组中成员
    testing:x:506:chongshi,bugmaster

     

    我们知道,组有什么样的权限,组中成员也有什么样的权限。

    设置cnblogs目录的所属组为testing

    [root@bogon hzh]# chgrp testing  /cnblogs            将/cnblogs目录的所属组改为testing

    [root@bogon hzh]# ls -ld /cnblogs         查看目录所属组
    drwxr-xr-x 2 root testing 4096 5月 10 23:20 /cnblogs

     

    对组加写权限

    [root@bogon hzh]# chmod g+w /cnblogs                 对组加写权限
    [root@bogon hzh]# ls -ld /cnblogs                            查看组对目录的权限
    drwxrwxr-x 2 root testing 4096 5月 10 23:20 /cnblogs

    现在用户chongshi和bugmaster已经对/cnbogs已经有写权限
    [root@bogon hzh]# su -- chongshi                    切换用户
    [chongshi@bogon hzh]$ touch /cnblogs/abc     创建文件,(可以成功在目录下创建文件,说明对本目录具有写权限)

    用户常用操作命令                                                                          

    添加一个用户
    添加用户稍微复杂一些,我们先来看一下,添加用户都有那些选项
    root@fnngj-virtual-machine:/# useradd -D
    GROUP=100
    HOME=/home
    INACTIVE=-1
    EXPIRE=
    SHELL=/bin/sh
    SKEL=/etc/skel
    CREATE_MAIL_SPOOL=no


    参数详解:
    -u:UID
    -g:缺省所属用户组GID
    -G:指定所属多个组
    -d:宿目录
    -s:命令解释器Shell
    -c:描述信息
    -e:指定用户失效时间
    例子:
    root@fnngj-virtual-machine:/# useradd -u 1888  -g webadmin -G sys,root -s /bin/bash  -c "market lisi"  -e 2012-12-12  jack

     

    添加用户到组

    usermod -G [组名]  [用户名]
    root@fnngj-virtual-machine:/# usermod -G webadmin tom
    root@fnngj-virtual-machine:/# grep webadmin /etc/group
    webadmin:x:1001:tom

     

    修改用户名

     usermod -l  [新用户名]  [旧用户名]
    修改用户与添加用户时的内容基本相同,但多了一个修改用户的选项。

    root@fnngj-virtual-machine:/# usermod -l tom jack                   把jack改为tom

     

    删除用户
    userdel -r [用户名]
    -r:删除用户组

    手工删除:
    使用find命令查找属于某个用户或用户组的文件
    find选项 -user、-uid、-group、-gid、
    1、对需要保留的文件进行移动和备份
    2、对不需要的文件进行删除
    3、清除用户文件中的相关表项
    4、清除用户宿主目录
    [root@bogon /]# find /home -user fnngj
    /home/fnngj
    /home/fnngj/.bashrc
    /home/fnngj/.bash_profile
    /home/fnngj/.gtkrc
    /home/fnngj/.bash_history
    /home/fnngj/.bash_logout
    可以对查找出来的用户信息判断需要干掉哪些。

    用户信息查看命令                                                           

    pwck   检测/etc/passwd文件
    检测用户的设置文件是否正常。直接输入命令,后面不用带参数

    vipw    编辑/etc/passwd文件
    这个命令与vi最大的区别就是编辑的时候锁定文件。如果多人对passwd文件
    都有编辑权限,那么多人同时编辑就会造成混乱。使用vipw编辑passwd文件时,别
    人就无法打开passwd文件。

    id        查看用户ID和组信息,直接输入命令,后面不用带参数
    [root@bogon fnngj]# id
    uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6
    (disk),10(wheel) context=root:system_r:unconfined_t


    finger      查看当前用户的登录信息
    finger [用户名]    查看某个用户的详细信息。
    [root@bogon fnngj]# finger
    Login Name Tty Idle Login Time Office Office Phone
    root root pts/1 May 13 14:57 (192.168.203.1)
    [root@bogon fnngj]# finger root
    Login: root Name: root
    Directory: /root Shell: /bin/bash
    On since 日 5月 13 14:57 (CST) on pts/1 from 192.168.203.1
    New mail received 日 5月 6 11:00 2012 (CST)
    Unread since 三 2月 22 20:40 2012 (CST)
    No Plan.


    su [用户名]      切换用户(su- 环境变量切换)
    su - [用户名]    切换的时候也会把环境的时候也会切换环境变量
    [root@bogon /]# su fnngj
    [fnngj@bogon /]$ echo $PATH
    /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/fnngj/bin
    [fnngj@bogon /]$ su root
    Password:
    [root@bogon /]# su - fnngj
    [fnngj@bogon ~]$ echo $PATH
    /usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/fnngj/bin


    passwd -S [用户名]    查看用户密码状态
    [root@bogon fnngj]# passwd -S fnngj
    Password set, MD5 crypt.


    who、w    查看当前登录用户信息
    [fnngj@bogon ~]$ who
    root pts/1 May 13 14:57 (192.168.203.1)
    [fnngj@bogon ~]$ w
    15:11:29 up 54 min, 1 user, load average: 0.00, 0.00, 0.00
    USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
    root pts/1 192.168.203.1 14:57 0.00s 0.84s 0.01s w

    用户禁用与恢复                                                                

    禁用和恢复用户
    当一个用户在操作的时候经常有违规操作或近期一段时间不用,我们可以对这
    个用户进行锁定。就像你的游戏账号发生异常被禁用一样。

    -----------------------------------

    禁用
    #usermod -L username
    #passwd -l username
    恢复
    #usermod -U username
    #passwd -u username

    ------------------------------------

    [root@bogon /]# passwd -l fnngj     禁用fnngj用户
    Locking password for user fnngj.
    passwd: Success
    [root@bogon /]# passwd -S fnngj
    Password locked.                   提示被禁用

    [root@bogon /]# passwd -u fnngj    密码解锁
    Unlocking password for user fnngj.
    passwd: Success.
    [root@bogon /]# passwd -S fnngj
    Password set, MD5 crypt.


    禁用原理:
    [root@bogon /]# grep fnngj /etc/shadow
    fnngj:$1$EudBseaZ$kw1S8ZS2dsvnJ83phhvQF0:15456:0:99999:7:::
    [root@bogon /]# passwd -l fnngj
    Locking password for user fnngj.
    passwd: Success
    [root@bogon /]# grep fnngj /etc/shadow
    fnngj:!!$1$EudBseaZ$kw1S8ZS2dsvnJ83phhvQF0:15456:0:99999:7:::

      看到上面的操作,相信你已经明白了,当我禁用你的密码后,密码在shadwo文件中依然存在,只是前面多了两个叹号(!!),这样你肯定登录不了了,因为验证端改变了密码。当然,解锁之后,密码前面的两个叹号会去掉。

      其实,我们知道了原理以后,完全可以不用通过命令,通过vi编辑文件,一样可以禁用用户。

    用户组常用操作命令                                                                        

      先看一下组配置文件里都存放了哪些内容

    [root@bogon /]# more /etc/group
    root:x:0:root
    bin:x:1:root,bin,daemon
    daemon:x:2:root,bin,daemon
    sys:x:3:root,bin,adm
    adm:x:4:root,adm,daemon
    tty:x:5:
    disk:x:6:root
    lp:x:7:daemon,lp
    mem:x:8:
    kmem:x:9:
    wheel:x:10:root
    mail:x:12:mail
    news:x:13:news
    uucp:x:14:uucp
    man:x:15:
    games:x:20:
    gopher:x:30:

    .................

    dialout:x:20:fnngj
    dialout    组名            用户登录时所在的组
              组密码         一般不用
    20          GID        组标识号  
    fnngj       组内用户列表   属于该组的所有用户列表

    添加用户组 

    groupadd  [用户组名]
    root@fnngj-virtual-machine:/# groupadd webadmin                添加一个组webadmin
    root@fnngj-virtual-machine:/# grep webadmin  /etc/group   查看组信息
    webadmin:x:1001:

    我们在添加组的时候也可以指定好组的id
    root@fnngj-virtual-machine:/# groupadd  -g 8888 webadmin
    root@fnngj-virtual-machine:/# grep webadmin  /etc/group  
    webadmin:x:8888:

     

    删除用户组
    groupdel [用户组名]
    [root@bogon /]# groupdel webadmin               删除组webadmin

    修改用户组信息

    groupmod -n  [新组名] [旧组名]
    [root@bogon /]# groupmod -n apache webadmin        修改组名webadmin为apache

    用户组信息查看命令                                                                  

     

    groups     查看用户隶属于哪些用户组

    [root@bogon /]# groups fnngj
    fnngj : fnngj

    newgrp    切换用户组
    [root@bogon /]# newgrp fnngj 不是组成员,知道组密码(如果有密码)一样可
    以切换。

    grpck       用户组配置文件检测

    chgrp       修改文件所属组

    vigr          编辑/etc/group文件(锁定文件)
    与vipw用法一样,在编辑group文件时,禁止其他人编辑。防止多人写操作,造成写混乱。

    用户组管理命令                                                                                

    gpasswd命令
    这个事所有linux都有的一个命令。先看一下都有哪些参数。
    root@fnngj-virtual-machine:/# gpasswd
    Usage: gpasswd [option] GROUP
    Options:
      -a, --add USER                add USER to GROUP
      -d, --delete USER             remove USER from GROUP
      -h, --help                    display this help message and exit
      -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.
    上面的参数信息虽然事英文的,不解释了,相信你懂的。
    用法非常简单:
    root@fnngj-virtual-machine:/# gpasswd -a tom webadmin     添加用户到组
    root@fnngj-virtual-machine:/# gpasswd -d tom webadmin     把用户从组中删除
    root@fnngj-virtual-machine:/# gpasswd webadmin                给用户组设置密码
    root@fnngj-virtual-machine:/# gpasswd -A tom webadmin    将tom提升为组管理员
    root@fnngj-virtual-machine:/# gpasswd -r webadmin        删除组密码
    root@fnngj-virtual-machine:/# gpasswd -R webadmin       禁止其他用户切换到该组

  • 相关阅读:
    tp5.1 多级控制器
    JS中三个点(...)是什么鬼?
    vue reqwest与fetch的使用
    new Vue({ render: h => h(App), }).$mount('#app')到底什么意思
    ant design vue 表格和国际化的使用
    JAVA日报
    JAVA日报
    JAVA日报
    JAVA日报
    JAVA日报
  • 原文地址:https://www.cnblogs.com/fnng/p/2498366.html
Copyright © 2011-2022 走看看