• Linux学习之十六-Linux用户管理


    Linux用户管理

    Linux系统跟Windows系统一样,可以创建不同的用户,不同的用户组。在不同用户下使用系统具有相应的权限

    1. 创建一个普通用户时,会修改几个文件,拷贝一些初始文件到用户家目录中

    修改的文件路径为

    /etc/passwd

    /etc/shadow

    /etc/group

    /etc/gshadow

    拷贝到用户家目录下的文件为

    .bash_logout .bash_profile .bashrc

    如果错误的把root用户下的这三个文件删除,再切换回root用户时会不成功,解决办法为:

    这三个文件的原始存放路径为/etc/skel/,

    只需将其拷贝回root家目录中即可:cp /etc/skel/.bash* .

    最后执行命令source .bash_profile解决问题

     

    2、/etc/passwd的详细介绍

    saslauth:x:499:76:Saslauthd user:/var/empty/saslauth:/sbin/nologin

    postfix:x:89:89::/var/spool/postfix:/sbin/nologin

    sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

    tcpdump:x:72:72::/:/sbin/nologin

    localhost:x:500:500::/home/oldboy:/bin/bash

    cat /etc/passwd截取部分内容

    第一列:用户名

    第二列:x代表有密码

    第三列:UID(每个用户唯一的编号)

    第四列:GID(每个组唯一的编号)

    第五列:备注(在创建用户时输入useradd -c 用户名 就能指定备注)

    第六列:家目录

    第七列:指定登陆之后使用的shell解释器shell的作用:把用户的命令解析之后传给内核来执行

    执行命令cat /etc/shells查看shell解释器的类别

    [root@localhost ~]# cat /etc/shells

    /bin/sh

    /bin/bash

    /sbin/nologin

    /bin/dash

    /bin/tcsh

    /bin/csh

     

    3、/etc/shadow的详细介绍

    saslauth:!!:17613::::::

    postfix:!!:17613::::::

    sshd:!!:17613::::::

    tcpdump:!!:17613::::::

    localhost:$6$k3Vi5V8s$yf1LQdFvK0nX5UvndAqYJe9vOUFHadvK5Og7N3kOLw4ayG.za/Ft2KmU4Uhe1w8ejN1iL.tRBeMyDwdb7qT66.:17624:0:99999:7:::

    cat /etc/shadow截取部分内容,可以通过命令man 5 shadow查看说明

    第一列:用户名

    第二列:加密之后的密码(没有密码时是两个!号)

    第三列:上一次密码改变的时间(距离1970年的天数)

    第四列:密码最少使用时间,0表示不限制(不能频繁改密码)

    第五列:密码最多使用时间(限定改密码的周期)

    第六列:密码警告周期(提前提醒密码到期的时间)

    第七列:密码禁用周期(密码到期后禁用用户的周期)

    第八列:指定密码到期的具体日期

    第九列:预留

     

    4、创建用户的原理

    cat /etc/default/useradd查看默认配置

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

    # useradd defaults file

    GROUP=100

    HOME=/home    家目录的基础目录

    INACTIVE=-1        密码过期后,账户被彻底禁用之前的天数

    EXPIRE=                过期时间

    SHELL=/bin/bash    指定默认的shell解释器

    SKEL=/etc/skel    指定骨架目录

    CREATE_MAIL_SPOOL=yes    是否创建邮箱

     

    5、UID的范围

    0-100        Linux系统预留

    101-499        系统账号(服务)

    500-60000    普通用户

     

    6、useradd命令

    参数及说明Options:

    -g    --gid GROUP name or ID of the primary group of the new account

    指定用户组 useradd -g 组id b5 或者useradd -g 组名 b5

    例子:

    useradd -g 814 b5 或者 useradd -g incahome b5

    -G    --groups GROUPS list of supplementary groups of the new account

    指定多个用户组,useradd -G 多个组名或组id 用户名

    例子:

    useradd -G test,incahome,a1 b6

    -m    --create-home create the user's home directory 创建家目录

    -M    --no-create-home do not create the user's home directory 不创建家目录        

    例子:

    useradd -M -s /sbin/nologin b8

    -p    --password PASSWORD encrypted password of the new account

    指定固定加密的密码

    例子:

    useradd -p 'ezNHdD48mHkGw' c1

            生成加密密码的方式openssl passwd 123456

    -s        --shell SHELL login shell of the new account

    不登录

    例子:

    useradd -M -s /sbin/nologin b9

    -u        --uid UID user ID of the new account

    指定用户uid,方便多台机器同步共享文件

    例:

    [root@localhost ~]# useradd -u 608 web

    [root@localhost ~]# id web

    uid=608(web) gid=608(web) groups=608(web)

    不常用的参数

    -b     指定基础目录

    -c     指定备注信息

    -d     指定用户的家目录

    -e    过期时间

    -f     禁用时间

     

    7、chage命令

    该命令用于密码时效管理。它可以修改账号和密码的有效期

    [root@localhost ~]# chage

    用法:chage [选项] 登录

    选项:

    -d, --lastday 最近日期     将最近一次密码设置时间设为"最近日期"

    -E, --expiredate 过期日期     将帐户过期时间设为"过期日期"

    -h, --help     显示此帮助信息并推出

    -I, --inactive INACITVE     过期 INACTIVE 天数后,设定密码为失效状态

    -l, --list     显示帐户年龄信息

    -m, --mindays 最小天数 将两次改变密码之间相距的最小天数设为"最小天数"

    -M, --maxdays 最大天数 将两次改变密码之间相距的最大天数设为"最大天数"

    -R, --root CHROOT_DIR chroot 到的目录

    -W, --warndays 警告天数 将过期警告天数设为"警告天数"

     

    8、其他相关命令

    usermod    修改用户参数

    groups        查看用户所在的组

    newgrp        切换用户组,如果切换到其他用户的用户组,需要输入group组密码

    gpasswd     设置组密码

     

    博主原创文章,转载请务必注明出处

  • 相关阅读:
    报错:Failed to create BuildConfig class
    emulator control无法使用问题
    the import android cannot be resolved
    报错:init: Could not find wglGetExtensionsStringARB!
    Android SDK升级后报错error when loading the sdk 发现了元素 d:skin 开头无效内容
    Eclipse Android环境搭建
    android中导入低版本project可能会遇到的编译问题(转自: Victor@Beijing)
    22.9
    GIT文档
    机器学习的几个问题探讨
  • 原文地址:https://www.cnblogs.com/ssgeek/p/9220620.html
Copyright © 2020-2023  润新知