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

      1、用户信息文件:/etc/passwd

    [root@bogon ~]# cat /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
    operator:x:11:0:operator:/root:/sbin/nologin
    games:x:12:100:games:/usr/games:/sbin/nologin
    gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
    ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    nobody:x:99:99:Nobody:/:/sbin/nologin
    dbus:x:81:81:System message bus:/:/sbin/nologin
    vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
    ntp:x:38:38::/etc/ntp:/sbin/nologin
    apache:x:48:48:Apache:/var/www:/sbin/nologin
    saslauth:x:499:76:"Saslauthd user":/var/empty/saslauth:/sbin/nologin
    postfix:x:89:89::/var/spool/postfix:/sbin/nologin
    haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
    abrt:x:173:173::/etc/abrt:/sbin/nologin
    avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
    tomcat:x:91:91:Apache Tomcat:/usr/share/tomcat6:/sbin/nologin
    sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
    webalizer:x:67:67:Webalizer:/var/www/usage:/sbin/nologin
    tcpdump:x:72:72::/:/sbin/nologin
    [root@bogon ~]# 

        1)想知道系统有多少个用户,可以直接使用wc -l /etc/passwd

    [root@bogon ~]# wc -l /etc/passwd
    28 /etc/passwd
    [root@bogon ~]#

        2)格式

    root:x:0:0:root:/root:/bin/bash

     

         1:用户名,用户登录系统时使用的用户名

        2:密码位

        3:UID,用户标识号

        4:GID,缺省组标识号

        5:注释性描述

        6:宿主目录,用户登录系统后的缺省目录

        7:用户使用的shell,默认为bash

        3)用户类型

          Linux用户分三种:

          超级用户(root,UID=0)

            就是说UID为0的用户都是超级用户,只要把/etc/passwd相应的用户的UID改为0,该用户就变成超级用户了

          普通用户(UID 500-60000)

          伪用户(UID 1-499)

            伪用户与系统和程序服务相关,如bin、daemon、shutdown、halt等,任何Linux系统都默认有这些伪用户;mail、ftp、sshd等,与Linux系统的进程相关;

            伪用户通常不需要或无法登录系统;

            伪用户可以没有宿主目录

        4)用户组

          每个用户都至少属于一个用户组

          每个用户组都可以包含多个用户

          同一用户组的用户享有该组共有的权限

        5)为什么密码不放在/etc/passwd中

          在早期的Linux系统中,密码是存放在/etc/passwd文件中的,但是每个用户对该文件都有读的权限,这是比较危险的,后来就不存放在这个文件了

    [root@bogon ~]# ls -l /etc/passwd
    -rw-r--r--. 1 root root 1296 12月  5 04:50 /etc/passwd
    [root@bogon ~]# 

      2、密码文件 /etc/shadow

    [root@bogon ~]# cat /etc/shadow
    root:$6$Ri9bO1RH$Tsp2w6VXiZwb1vnTPuF7vxwVhLdYp9E7nHCPHxxaeouaITbBHAZ4d214wACpfBhNgNRxqw/24ph7uSHTiNMIK.:15686:0:99999:7:::
    bin:*:15513:0:99999:7:::
    daemon:*:15513:0:99999:7:::
    adm:*:15513:0:99999:7:::
    lp:*:15513:0:99999:7:::
    sync:*:15513:0:99999:7:::
    shutdown:*:15513:0:99999:7:::
    halt:*:15513:0:99999:7:::
    mail:*:15513:0:99999:7:::
    uucp:*:15513:0:99999:7:::
    operator:*:15513:0:99999:7:::
    games:*:15513:0:99999:7:::
    gopher:*:15513:0:99999:7:::
    ftp:*:15513:0:99999:7:::
    nobody:*:15513:0:99999:7:::
    dbus:!!:15678::::::
    vcsa:!!:15678::::::
    ntp:!!:15678::::::
    apache:!!:15678::::::
    saslauth:!!:15678::::::
    postfix:!!:15678::::::
    haldaemon:!!:15678::::::
    abrt:!!:15678::::::
    avahi:!!:15678::::::
    tomcat:!!:15678::::::
    sshd:!!:15678::::::
    webalizer:!!:15678::::::
    tcpdump:!!:15678::::::
    [root@bogon ~]# 

        1)如果把/etc/shadow文件中的相应的加密密码删除,那么用户不需要密码就可以登陆系统了

        2)格式

    root:$6$Ri9bO1RH$Tsp2w6VXiZwb1vnTPuF7vxwVhLdYp9E7nHCPHxxaeouaITbBHAZ4d214wACpfBhNgNRxqw/24ph7uSHTiNMIK.:15686:0:99999:7:::

      

        1:用户名

        2:加密密码

        3:最有一次修改时间,以天位单位,从1970年1月1日为参考点

        4:最小时间间隔,两次修改密码之间的最小天数,为0表示不限制,如改为3,表示间隔3天以上才能修改密码

        5:最大时间间隔,密码保持有效的最多天数,超过天数不过密码,则用户无法登录

        6:警告时间:从系统开始警告到密码失效的天数

        7:账号闲置时间

        8:失效时间,密码失效的绝对天数

        9:标志,一般不使用

      3)其实在设置密码或修改密码时,是先把密码写到/etc/passwd文件中,然后再转化到/etc/shadow文件中

        使用密码回显命令可以把密码写回到/etc/passwd文件中

    [root@bogon ~]# pwunconv
    [root@bogon ~]# grep root /etc/passwd /etc/shadow
    /etc/passwd:root:$6$Ri9bO1RH$Tsp2w6VXiZwb1vnTPuF7vxwVhLdYp9E7nHCPHxxaeouaITbBHAZ4d214wACpfBhNgNRxqw/24ph7uSHTiNMIK.:0:0:root:/root:/bin/bash
    /etc/passwd:operator:*:11:0:operator:/root:/sbin/nologin
    grep: /etc/shadow: 没有那个文件或目录
    [root@bogon ~]#

        使用pwconv命令将密码转化到/etc/shadow文件中

    [root@bogon ~]# pwconv
    [root@bogon ~]# grep root /etc/passwd /etc/shadow
    /etc/passwd:root:x:0:0:root:/root:/bin/bash
    /etc/passwd:operator:x:11:0:operator:/root:/sbin/nologin
    /etc/shadow:root:$6$Ri9bO1RH$Tsp2w6VXiZwb1vnTPuF7vxwVhLdYp9E7nHCPHxxaeouaITbBHAZ4d214wACpfBhNgNRxqw/24ph7uSHTiNMIK.:15694:0:99999:7:::
    [root@bogon ~]# 

        4)/etc/shadow文件只有root用户有读权限,当然root用户也可以用vi修改后使用wq!强制保存

      3、了解了用户信息文件,可以不使用useradd命令就可以添加用户

        1)使用vi编辑/etc/passwd文件,在最后面添加一个用户

        2)手工创建登录后的宿主目录

    [root@bogon ~]# mkdir /home/luxh

        3)改变宿主目录的所有者为luxh

    [root@bogon ~]# chown luxh /home/luxh

        4)使用vi编辑/etc/shadow文件,添加用户luxh的信息

    luxh::15694:0:99999:7:::

        5)可以用luxh用户登录了

        我们看到登录的提示符和普通用户不一样,是因为我们还没有把用户的环境变量和配置复制到宿主目录  

    [root@bogon ~]# ls -a /etc/skel
    .  ..  .bash_logout  .bash_profile  .bashrc  .gnome2  .mozilla
    [root@bogon ~]# cd /etc/skel
    [root@bogon skel]# cp -rf .* /home/luxh
    cp: 不会创建指向目录"/home/luxh/." 的硬链接"/home/luxh/skel"
    cp:是否覆盖"/home/luxh/.bash_logout"? 
    cp:是否覆盖"/home/luxh/.bash_profile"? 
    cp:是否覆盖"/home/luxh/.bashrc"? 
    [root@bogon skel]# 

        再重新用luxh登录,如下:

        提示组group ID 501没有找到,是因为刚才手工创建用户的时候,指定的组id并不存在,创建这个组或者指定一个存在的组即可

       4、用户配置文件

        1)/etc/login.defs,一些用户信息缺省配置

    [root@bogon ~]# cat /etc/login.defs
    #
    # Please note that the parameters in this configuration file control the
    # behavior of the tools from the shadow-utils component. None of these
    # tools uses the PAM mechanism, and the utilities that use PAM (such as the
    # passwd command) should therefore be configured elsewhere. Refer to
    # /etc/pam.d/system-auth for more information.
    #
    
    # *REQUIRED*
    #   Directory where mailboxes reside, _or_ name of file, relative to the
    #   home directory.  If you _do_ define both, MAIL_DIR takes precedence.
    #   QMAIL_DIR is for Qmail
    #
    #QMAIL_DIR      Maildir
    MAIL_DIR        /var/spool/mail
    #MAIL_FILE      .mail
    
    # Password aging controls:
    #
    #       PASS_MAX_DAYS   Maximum number of days a password may be used.
    #       PASS_MIN_DAYS   Minimum number of days allowed between password changes.
    #       PASS_MIN_LEN    Minimum acceptable password length.
    #       PASS_WARN_AGE   Number of days warning given before a password expires.
    #
    PASS_MAX_DAYS   99999
    PASS_MIN_DAYS   0
    PASS_MIN_LEN    5
    PASS_WARN_AGE   7
    
    #
    # Min/max values for automatic uid selection in useradd
    #
    UID_MIN                   500
    UID_MAX                 60000
    
    #
    # Min/max values for automatic gid selection in groupadd
    #
    GID_MIN                   500
    GID_MAX                 60000
    
    #
    # If defined, this command is run when removing a user.
    # It should remove any at/cron/print jobs etc. owned by
    # the user to be removed (passed as the first argument).
    #
    #USERDEL_CMD    /usr/sbin/userdel_local
    
    #
    # If useradd should create home directories for users by default
    # On RH systems, we do. This option is overridden with the -m flag on
    # useradd command line.
    #
    CREATE_HOME     yes
    
    # The permission mask is initialized to this value. If not specified, 
    # the permission mask will be initialized to 022.
    UMASK           077
    
    # This enables userdel to remove user groups if no members exist.
    #
    USERGROUPS_ENAB yes
    
    # Use SHA512 to encrypt password.
    ENCRYPT_METHOD SHA512 
    
    [root@bogon ~]# 

        2)/etc/default/useradd

    [root@bogon ~]# cat /etc/default/useradd
    # useradd defaults file
    GROUP=100
    HOME=/home
    INACTIVE=-1
    EXPIRE=
    SHELL=/bin/bash
    SKEL=/etc/skel
    CREATE_MAIL_SPOOL=yes
    
    [root@bogon ~]# 

      5、登录信息 /etc/motd  /etc/issue

        1)/etc/issue 登录前的提示信息,修改如下:

    Welcome to www.luxh.cnblogs.com
    Kernel \r on an \m

        

        2)/etc/modt 登录后的提示信息,修改如下

    Hello,man

        

       6、用户组文件 /etc/group

    sys:x:3:bin,adm

        sys:组名

        x:组密码位,一般不使用

        GID:组标识号

        bin,adm:组内用户列表

      7、用户组密码文件 /etc/gshadow  

      8、用户组管理命令

        1)添加用户组 groupadd

        创建用户组webadmin

    [root@localhost ~]# groupadd webadmin
    [root@localhost ~]# grep webadmin /etc/group
    webadmin:x:500:
    [root@localhost ~]#

        2)设置组密码及管理组内成员 gpasswd

           -a 添加用户到用户组

          把lihuai添加到root组

    [root@localhost ~]# gpasswd -a lihuai root
    Adding user lihuai to group root
    [root@localhost ~]# grep root /etc/group
    root:x:0:lihuai
    [root@localhost ~]

          -d 把用户从用户组删除

          把lihuai从root组删除

    [root@localhost ~]# gpasswd -d lihuai root
    Removing user lihuai from group root
    [root@localhost ~]# grep root /etc/group
    root:x:0:
    [root@localhost ~]#

          -A设置用户组管理员

    [root@localhost ~]# grep webadmin /etc/group
    webadmin:x:500:lihuai,luxiaofeng
    [root@localhost ~]#

         把lihuai提升为组管理员,lihuai就可以对组中的用户进行管理

    [root@localhost ~]# gpasswd -A lihuai webadmin
    [root@localhost ~]#

        -r 删除用户组密码

        -R 禁止用户切换位该组

        3)删除用户组 groupdel 组名

        4)修改用户组信息 groupmod

          修改webadmin组名为nginx

    [root@localhost ~]# groupmod -n nginx webadmin

        5)newgrp  切换用户组

        6)grpck  用户组配置文件检测

        7)chgrp  修改文件所属组

        8)vigr 编辑/etc/group文件

      9、用户管理命令

        1)添加用户:useradd 选项 用户名

          u:UID

          g:缺省所属用户组GID

          G:指定用户所属多个组

          d:宿主目录

          s:命令解释器Shell

          c:描述信息

          e:指定用户失效时间

    [root@localhost ~]# useradd -g webadmin -c "a man" yekai
    [root@localhost ~]# grep yekai /etc/passwd
    yekai:x:502:500:a man:/home/yekai:/bin/bash
    [root@localhost ~]#

        2)给用户指定密码 passwd 用户名

    [root@localhost ~]# passwd yekai
    更改用户 yekai 的密码 。
    新的 密码:
    重新输入新的 密码:
    passwd: 所有的身份验证令牌已经成功更新。
    [root@localhost ~]#

        3)修改用户信息 usermod

          修改yekai的登录名为lihuai

    [root@localhost ~]# usermod -l lihuai yekai
    [root@localhost ~]# grep lihuai /etc/passwd
    lihuai:x:502:500:a man:/home/yekai:/bin/bash
    [root@localhost ~]# 

        4)把用户添加到一个组中

        把lihuai添加到sys组

    [root@localhost ~]# usermod -g sys lihuai
    [root@localhost ~]# grep sys /etc/group
    sys:x:3:bin,adm,lihuai
    [root@localhost ~]# 

        5)groups 查看用户属于哪些组

    [root@localhost ~]# groups lihuai
    lihuai : sys webadmin
    [root@localhost ~]#

        6)pwck 检测/etc/passwd文件

    [root@localhost ~]# 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 'saslauth': directory '/var/empty/saslauth' does not exist
    user luxh has an entry in /etc/shadow, but its password field in /etc/passwd is not set to 'x'
    pwck:无改变
    [root@localhost ~]#

        7)vipw 编辑/etc/passwd文件

        8)id 查看用户id和组信息

    [root@localhost ~]# id
    uid=0(root) gid=0(root) 组=0(root)
    [root@localhost ~]# 

        9)su 切换用户(su - 用户名 ,会切换环境变量)

        10)passwd -S 查看用户密码状态

    [root@localhost ~]# passwd -S luxh
    luxh NP 2012-12-20 0 99999 7 -1 (密码为空。)
    [root@localhost ~]# passwd -S lihuai
    lihuai PS 2012-12-22 0 99999 7 -1 (密码已设置,使用 SHA512 加密。)
    [root@localhost ~]# 

        11)who、w 查看当前登录用户信息

    [root@localhost ~]# who
    root     tty1         2012-12-22 20:02
    root     pts/0        2012-12-22 20:32 (192.168.1.65)
    [root@localhost ~]# w
     21:12:15 up  1:11,  2 users,  load average: 0.00, 0.00, 0.00
    USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
    root     tty1     -                20:02    1:09m  0.04s  0.04s -bash
    root     pts/0    192.168.1.65     20:32    0.00s  0.42s  0.01s w
    [root@localhost ~]# 

        12)锁定用户 usermod -L 用户名 或者 passwd -l 用户名

    [root@localhost ~]# grep lihuai /etc/shadow
    lihuai:$6$vrCyuC4j$2L2SSGpmT3vVXIRSbm9HqSOGiMw8EQzlCMYi7COQIoLGU2dqS8YvP9FNoGur.qq4k9kj417r7BxFa1zCfbVgk/:15696:0:99999:7:::
    [root@localhost ~]# usermod -L lihuai
    [root@localhost ~]# passwd -S lihuai
    lihuai LK 2012-12-22 0 99999 7 -1 (密码已被锁定。)
    [root@localhost ~]# grep lihuai /etc/shadow
    lihuai:!$6$vrCyuC4j$2L2SSGpmT3vVXIRSbm9HqSOGiMw8EQzlCMYi7COQIoLGU2dqS8YvP9FNoGur.qq4k9kj417r7BxFa1zCfbVgk/:15696:0:99999:7:::
    [root@localhost ~]# 

        锁定的原理非常简单,就是在密码前加上一个!

        13)恢复用户 usermod -U 用户名 或者 passwd -u 用户名

    [root@localhost ~]# passwd -u lihuai
    解锁用户 lihuai 的密码 。
    passwd: 操作成功
    [root@localhost ~]# grep lihuai /etc/shadow
    lihuai:$6$vrCyuC4j$2L2SSGpmT3vVXIRSbm9HqSOGiMw8EQzlCMYi7COQIoLGU2dqS8YvP9FNoGur.qq4k9kj417r7BxFa1zCfbVgk/:15696:0:99999:7:::
    [root@localhost ~]#

        恢复的原理就是把密码前的!去掉

        14)删除用户 userdel -r 用户名

          -r 删除用户目录

        15)chage 设置密码

          -l 查看用户密码设置

    [root@localhost ~]# chage -l lihuai
    Last password change                                    : Dec 22, 2012
    Password expires                                        : never
    Password inactive                                       : never
    Account expires                                         : never
    Minimum number of days between password change          : 0
    Maximum number of days between password change          : 99999
    Number of days of warning before password expires       : 7
    [root@localhost ~]# 

          -m 密码修改最小天数

          -M 密码修改最大天数

          -d 密码最后修改日期

          -I 密码过期后,锁定账户的天数

          -E 设置密码的过期日期,如果为0代表密码立即过期,如果为1,表示永不过期

          -W 设置密码过期前,开始提醒的天数

       10、用户组授权

        授权用户lihuai和luxiaofeng对目录/software有写权限

        1)创建目录

    [root@localhost ~]# mkdir /software
    [root@localhost ~]# ls -ld /software
    drwxr-xr-x 2 root root 4096 12月 22 20:36 /software
    [root@localhost ~]#

        可以看到普通用户对该目录是没有写权限的

        2)添加组softadm

    [root@localhost ~]# groupadd softadm
    [root@localhost ~]# grep softadm /etc/group
    softadm:x:501:
    [root@localhost ~]#

        3)把用户lihuai和luxiaofeng添加到组softadm中,可以使用useradd或者gpasswd命令

    [root@localhost ~]# usermod -G softadm lihuai
    [root@localhost ~]# gpasswd -a luxiaofeng softadm
    Adding user luxiaofeng to group softadm
    [root@localhost ~]# grep softadm /etc/group
    softadm:x:501:lihuai,luxiaofeng
    [root@localhost ~]#

        4)改变目录/software的所属组

    [root@localhost ~]# chgrp softadm /software
    [root@localhost ~]# ls -ld /software
    drwxr-xr-x 2 root softadm 4096 12月 22 20:36 /software
    [root@localhost ~]#

        5)对目录所属组授予写权限

    [root@localhost ~]# chmod g+w  /software
    [root@localhost ~]# ls -ld /software
    drwxrwxr-x 2 root softadm 4096 12月 22 20:36 /software
    [root@localhost ~]# 

        这样,属于softadm组的用户对software目录就有写权限了

       11、批量添加用户

        1)编写用户信息文件users.info,格式必须按照/etc/passwd文件的格式

    luxh01::1001:500::/home/luxh01:/bin/bash
    luxh02::1002:500::/home/luxh02:/bin/bash
    luxh03::1003:500::/home/luxh03:/bin/bash
    luxh04::1004:500::/home/luxh04:/bin/bash
    luxh05::1005:500::/home/luxh05:/bin/bash

        2)使用newusers命令生成用户信息到/etc/passwd中

    [root@bogon ~]# newusers < users.info

        再看看/etc/passwd文件,已经生成了5个用户信息

    [root@bogon ~]# tail -5 /etc/passwd
    luxh01:x:1001:500::/home/luxh01:/bin/bash
    luxh02:x:1002:500::/home/luxh02:/bin/bash
    luxh03:x:1003:500::/home/luxh03:/bin/bash
    luxh04:x:1004:500::/home/luxh04:/bin/bash
    luxh05:x:1005:500::/home/luxh05:/bin/bash
    [root@bogon ~]#

        宿主也自动建好了

    [root@bogon ~]# ls /home
    lixunxuan   luixaofeng  luxh01  luxh03  luxh05      yekai
    lost+found  luxh        luxh02  luxh04  luxiaofeng
    [root@bogon ~]# 

        3)取消shadow password功能

    [root@bogon ~]# pwunconv

        4)编写各个用户的密码信息pass.info

    luxh01:luxh2012
    luxh02:luxh2012
    luxh03:luxh2012
    luxh04:luxh2012
    luxh05:luxh2012

        5)使用chpasswd命令导入密码

    [root@bogon ~]# chpasswd < pass.info

        再看看/etc/passwd文件,已经导入了每个用户的加密密码

    [root@bogon ~]# tail -5 /etc/passwd
    luxh01:$6$HNISZ/NCfik$1SU2SlFVEV8EyATp8TnyZuEI8/IepIsT.C4VLy3lYAp3mxWbNMv/AnD8Pg6r19yiawEDgauR0RPZ631muPmin.:1001:500::/home/luxh01:/bin/bash
    luxh02:$6$u/Xkb/cPPGadi9Sr$XonmMaF5YPi0Xv5TCtevsy7J1HKm0LjTzsz7fW13W4bGypeu5cnsCEilt8H0aNPEOyJaQaEQm7f.i.MzY8ddp.:1002:500::/home/luxh02:/bin/bash
    luxh03:$6$uWA0qe.Xl17pM$bfpsOQGrPCye8k28GeQDShS9aLCOHbTHQE.sz0QGDftwJwA2iz8nGJIBgSup2PEUFe.R/.hL7zamdH2876MCj0:1003:500::/home/luxh03:/bin/bash
    luxh04:$6$LySSjubg1Y$MNAlyP0VLO9ayp2.9Tzjm/Jc8a.CNqPqUa066XX0qd1aaqDeuOu.z6oaqEhUXUS9UZHPLCX8ACfM.esUmYJf1/:1004:500::/home/luxh04:/bin/bash
    luxh05:$6$tbC1ns.7KJVc$kg28HA8bM.JwqHsvbweqFmBpYPRaCqMyW/3Y9wo3YnSYWLTCx9a2Vo1gdMVsLAkKI8iU86bM7vF4e6wyA/r.e.:1005:500::/home/luxh05:/bin/bash
    [root@bogon ~]# 

        6)开启shadow password功能,把密码转换到/etc/shadow文件中

    [root@bogon ~]# pwconv

        再查看/etc/passwd文件,

    [root@bogon ~]# tail -5 /etc/passwd
    luxh01:x:1001:500::/home/luxh01:/bin/bash
    luxh02:x:1002:500::/home/luxh02:/bin/bash
    luxh03:x:1003:500::/home/luxh03:/bin/bash
    luxh04:x:1004:500::/home/luxh04:/bin/bash
    luxh05:x:1005:500::/home/luxh05:/bin/bash
    [root@bogon ~]# 

        查看/etc/shadow文件

    [root@bogon ~]# tail -5 /etc/shadow
    luxh01:$6$HNISZ/NCfik$1SU2SlFVEV8EyATp8TnyZuEI8/IepIsT.C4VLy3lYAp3mxWbNMv/AnD8Pg6r19yiawEDgauR0RPZ631muPmin.:15697:0:99999:7:::
    luxh02:$6$u/Xkb/cPPGadi9Sr$XonmMaF5YPi0Xv5TCtevsy7J1HKm0LjTzsz7fW13W4bGypeu5cnsCEilt8H0aNPEOyJaQaEQm7f.i.MzY8ddp.:15697:0:99999:7:::
    luxh03:$6$uWA0qe.Xl17pM$bfpsOQGrPCye8k28GeQDShS9aLCOHbTHQE.sz0QGDftwJwA2iz8nGJIBgSup2PEUFe.R/.hL7zamdH2876MCj0:15697:0:99999:7:::
    luxh04:$6$LySSjubg1Y$MNAlyP0VLO9ayp2.9Tzjm/Jc8a.CNqPqUa066XX0qd1aaqDeuOu.z6oaqEhUXUS9UZHPLCX8ACfM.esUmYJf1/:15697:0:99999:7:::
    luxh05:$6$tbC1ns.7KJVc$kg28HA8bM.JwqHsvbweqFmBpYPRaCqMyW/3Y9wo3YnSYWLTCx9a2Vo1gdMVsLAkKI8iU86bM7vF4e6wyA/r.e.:15697:0:99999:7:::
    [root@bogon ~]#

        真正批量添加用户其实可以用shell脚本来做。上面的步骤只是可以更加清晰的理解添加用户的过程。

      12、限制特定用户才可以使用su命令

        1)添加组sugroup

    [root@bogon ~]# groupadd sugroup

        2)去掉su命令的其他人的可执行权限

    [root@bogon ~]# ls -l /bin/su
    -rwsr-xr-x. 1 root root 30092 6月  22 2012 /bin/su
    [root@bogon ~]# 

        去掉其他人的可执行权限,只让所有者和所属组有可执行权限 

    [root@bogon ~]# chmod 4550 /bin/su
    [root@bogon ~]# ls -l /bin/su
    -r-sr-x---. 1 root root 30092 6月  22 2012 /bin/su
    [root@bogon ~]# 

        3)把su命令的所属组改成sugroup

    [root@bogon ~]# chgrp sugroup /bin/su
    [root@bogon ~]# ls -l /bin/su
    -r-xr-x---. 1 root sugroup 30092 6月  22 2012 /bin/su
    [root@bogon ~]#

        4)把允许使用su命令的用户添加到sugroup组中

    [root@bogon ~]# usermod -G sugroup luxh01
    [root@bogon ~]# usermod -G sugroup luxh02
    [root@bogon ~]# 

      13、用sudo替代su

        在执行sudo命令时,临时成为root

        不会泄露root口令

        仅向用户提供有限的命令使用权限

        1)配置文件: /etc/sudoers,编辑配置文件命令:visudo

        普通用户使用命令sudo

        格式:用户名(组名) 主机地址=命令(绝对路径)

        2)现在想让用户lihuai有添加、删除用户的权限

          2.1)确定useradd命令的绝对路径

    [root@bogon ~]# which useradd
    /usr/sbin/useradd
    [root@bogon ~]#
    [root@bogon ~]# which userdel
    /usr/sbin/userdel
    [root@bogon ~]# 

          2.2)使用visudo编辑,添加下面的内容,bogon是我的计算机名

    lihuai bogon=/usr/sbin/useradd,/usr/sbin/userdel

          2.3)切换到lihuai,添加用户

    [root@bogon ~]# su - lihuai
    [lihuai@bogon ~]$ 
    [lihuai@bogon ~]$ sudo /usr/sbin/useradd cnblogs001
    [lihuai@bogon ~]$ grep cnblogs /etc/passwd
    cnblogs001:x:1006:1006::/home/cnblogs001:/bin/bash
    [lihuai@bogon ~]$

          2.4)查看可以使用sudo执行哪些命令

    [lihuai@bogon ~]$ sudo -l
    Matching Defaults entries for lihuai on this host:
        requiretty, !visiblepw, always_set_home, env_reset, env_keep="COLORS
        DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS", env_keep+="MAIL PS1
        PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE
        LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY
        LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL
        LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
        secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
    
    User lihuai may run the following commands on this host:
        (root) /usr/sbin/useradd, (root) /usr/sbin/userdel
    [lihuai@bogon ~]$ 

        3)现在想让一个普通用户完全管理Apache服务器

          a、编辑Apache配置文件

          b、使用Apache启动脚本

          c、更新网页

          3.1)要让普通实现a功能,可以有以下三种方式

    [root@bogon ~]# ls -l /etc/httpd/conf/httpd.conf
    -rw-r--r--. 1 root root 34418 2月   7 2012 /etc/httpd/conf/httpd.conf
    [root@bogon ~]# 

            改变配置文件的所有者

            改变配置文件的所属组,把用户加入组中,授予组写(w)权限

            使用visudo: 用户  地址=/bin/vi /etc/httpd/conf/httpd.conf

          这里使用sudo

    lihuai bogon=/bin/vi /etc/httpd/conf/httpd.conf

          这样用户lihuai就可以编辑Apache的配置文件了

          3.2)使用Apache启动脚本

    [root@bogon ~]# /etc/rc.d/init.d/httpd
    Usage: httpd {start|stop|restart|condrestart|try-restart|force-reload|reload|status|fullstatus|graceful|help|configtest}
    [root@bogon ~]# 

          只允许用户使用start、reload、fullstatus、configtest  

    lihuai bogon=/etc/rc.d/init.d/httpd start,/etc/rc.d/init.d/httpd reload,/etc/rc.d/init.d/httpd fullstatus,/etc/rc.d/init.d/httpd configtest

          可以看到,使用sudo,使得权限分配可以非常的精细化。

    [root@bogon ~]# su - lihuai
    [lihuai@bogon ~]$ sudo /etc/rc.d/init.d/httpd start
    [sudo] password for lihuai: 
    正在启动 httpd:httpd: apr_sockaddr_info_get() failed for bogon
    httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
    [确定]
    [lihuai@bogon ~]$ sudo /etc/rc.d/init.d/httpd stop
    Sorry, user lihuai is not allowed to execute '/etc/rc.d/init.d/httpd stop' as root on bogon.
    [lihuai@bogon ~]$ 

          3.3)更新网页

            让普通用户对/var/www/html目录有写权限即可:

            改变该目录所有者

            改变该目录的所属组,把用户加入组中,授予组写(w)权限

  • 相关阅读:
    ecshop ajax请求验证captcha(验证码)
    ecshop ajax内置函数Ajax.call
    Execl中函数使用总结
    php应用篇 PHPMailer使用
    Jquery中的选择器
    你的水桶有多满
    在纸上写todo list还是用APP?
    absolute居中
    搬家租房总结
    编译器的作用:将汇编语言翻译成机器语言
  • 原文地址:https://www.cnblogs.com/luxh/p/2827151.html
Copyright © 2011-2022 走看看