• Linux用户及用户组管理


    1.   用户管理

    linux是一个多用户系统,多用户进行权限管理(权限最小化)。

    用户:存在的目录是为了对系统中的资源做归属;

    密码:存在的目的是为了对用户做身份认证;

    用户组:在用户组中可以包含一个或者多个用户,方便对多个用户进行授权操作。

    1>用户管理相关文件:

    /etc/passwd:用户基本信息;

    /etc/shadow:用户密码信息、过期时间等;

    /etc/group:用户组信息;

    /etc/gshadow:用户组密码;

    /etc/default/useradd:创建用户的默认配置信息;

    /etc/skel/:用户家目录模板;

    /etc/login.defs:全局用户设定信息;

    /etc/passwd: 每行是一个用户,用来记录用户的基本信息,每行的格式:

    account : password : UiD : GiD : GECOS : directory : shell

    accout:用户名;

    password:用户密码,密码位置默认是x;

    UiD:用户身份id,用来唯一的标识一个用户;

    GiD:用户组id,用来在系统中唯一的标识一个用户组(这里指的是其基本组的组iD);

    GECOS:用户描述信息,可以空白,也可以随意写(useradd -c );

    directory:用户家目录;

    shell:用户所使用的shell类型;

    /bin/bash-->可以登录系统;

    /sbin/nologin-->该用户一定无法登录系统。

    比如:

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

    用户名    密 码    用户id   用户所在组的id  描述信息    家目录    shell类型   

    2>  /etc/group:用户组信息;

    linux,用户一定是属于一个组的;

    在linux中,创建用户的时候,会自动创建一个组,组名和组id都和所创建的用户相同,而且,该用户会自动加入到这个组中。

    如:

    c     :   x    : 1007 :

    groupname : password : GiD : [user1, user2.....]

    groupname:组名;

    password:组密码;

    GiD:组id;

    [user1, user2.....]:该组中的用户列表;

    3>  概念

    用户的基本组(主组):当前用户具有哪个组的权限;

    用户的附加组:用户额外属于的组。

    主组:gp02

    附加组:gp01、gp03

     4>

    /etc/default/useradd:定义创建用户默认选项的文件;

    # useradd defaults file      :useradd默认文件;

    GROUP=100               :表示可创建普通组;

    HOME=/home             :用户的家目录建在/home中;用户家目录的默认创建地;

    iNaCTiVE=-1             :是否启用帐号过期停权,-1表示不启用;宽限天数,0及以下数皆为无效数字;

    EXPiRE=                 :帐号终止日期,不设置表示不启用;帐号失效日期(20081212);

    SHEll=/bin/bash        :所用SHEll的类型;登录后执行的程序;

    SKEl=/etc/skel            :用户家目录中的环境文件,默认添加用户的目录默认文件存放位置;也就是说,当我们用adduser添加用户时,用户家目录下的文件,都是从这个目录中复制过去的;

    CREATE_MAIL_SPOOl=yes    :是否创建用户邮件缓冲,yes表示创建。

    5> linux中的用户类别

    1) 可以登录系统的用户:

    管理员用户:uid为0的用户,root;

    普通用户:可以登录系统,但是没有管理员权限的用户;

    2) 不能登录系统的用户:

    系统用户:用来运行一个程序,而不是用来登录系统;

    3) 各类用户的id:

    管理员用户:0

    系统用户:1-999

    普通用户:1000-60000(自定义uid最大4294967294)

    4) 系统用户的特点:

    1因为不需要登录,所以shell类型通常为/sbin/nologin;

    2 系统用户没有家目录;

    3. 系统用户id通常是小于1000;

    2. Useradd命令

    格式 :useradd  [options]  username

    options:

    -d:home HOME_DiR,指定用户家目录;

    -c:comment COMMENT,用户说明信息;

    -e:expiredate EXPIRE_DATE,指的账号的过期时间,时间格式: YYYY/MM/DD

    -g,:gid GROUP:指的用户的基本组的组id;

    -G:groups GROUP1[,GROUP2,...[,GROUPN]]],指的用户的附加组列表;

    -u:uid UiD,指的用户的uid;

    -m:create-home,创建用户的时候自动创建用户家目录(默认就已经使用);

    -M:不自动创建用户家目录;

    -o:non-unique,通常和-u一起使用,用来让两个用户使用相同的uid;

    -r:system,创建一个系统用户;

    -s:shell SHEll,在创建用户的时候,指定用户的shell类型

    (/bin/bash/,/sbin/nlogin) 

    创建一个系统用户:

    useradd  -s  /sbin/nologin  -M  -r  ken

    查看用户:

    id ken

    3. passwd命令

    格式: passwd  [ [options]  username:(如果不指定用户名,那么就是修改当前用户的密码)。

    options:

    -stdin:接受标准化输入;

    -l:锁定用户;

    -u:解锁用户;

    -d:删除用户密码;

    -e:让用户密码过期;

    如:echo “ 123“ | passwd --stdin ken,表示给ken用户设置密码123 (ken用户必须存在)

    设置密码的原则:

    1)长度要够;

    2)密码复杂度(数字+字母+特殊符号)。

    4. Userdel命令

    删除用户 userdel

    格式:userdel [options] username

    options:

    -r:在删除用户的时候,连同用户数据一并删除,

    5. 创建和删除用户组

    1> 创建用户组  groupadd

    格式:groupadd [options] groupname

    options:

    -g GID:

    -o:

    2> 删除用户组 groupdel

    groupdel groupname

    6. Shadow文件详解  

      zxhk :  $6$dgnPoZ0s$6xNKEWz : 17729 : 0 : 99999 :  7  :   :   :   

    第一段:用户名;  

    第二段:加密后的密码      ;

    第三段:上次修改密码举例元年经过的天数1970年1月1日(如果该字段空,意味着该用户密码被禁用);

    第四段:密码最短使用时间(0表示不限制);

    第五段:密码最长有效期(99999表示不限制)(如果第5的值小于第四段,那么用户无法修改自己的密码);

    第六段:密码到期前几天开始发送告警,提示密码即将过去,请立即修改;

    第七段:非活动期间,密码到期后的宽限时间(登录系统的时候必须先修改密码,才能登录);

    第八段:密码过期时间(也是举例计算机元年经过的天数)(这里和前面的几个时间没有联系);

    第九段:保留字段。

    忘记密码可进入/etc/shadow 档案中,将 root 的密码这一栏全部清空,然后再登入 linux 一次,这个时候 root 将不需要密码 (有的时候需要输入空白字元) 就可以登入了,此时再将以 passwd 设定 root 密码即可。 

    7.Usermod命令

    格式:usermod [options]  username

    options

    -g:id  GROUP,更新使用者新的起始登入群组,群名必须已存在;

    -G:groups GROUP1[,GROUP2,...[,GROUPN]]]:定义使用者为一堆group的成员,每个群组使用逗号(,)来区隔;

    -u:uid UID,使用者ID值,必须为唯一的ID值;

    -s:shell SHELL:指定新登入shell,默认系统预定shell; 

    -l:lock,锁定用户的密码;

    -U:解锁用户的密码;

    -l:login NEW_LOGIN:变更使用者login时的名称为login name;

    -e:expiredate EXPiRE_DaTE,使用者账号停止日期,日期格式为MM/DD/YY;

    -d:ome HOME_DiR,更新使用者新的登入目录;

    -m:move-home,移动用户家目录至新的位置。

     

    8.其他命令

    1> id命令 

    作用:用来查看指定的用户的信息(或判断用户是否存在);

    格式:

    id [-u|-g|-G] username;

    -u:仅仅显示用户uid;

    -g:仅仅显示用户gid;

    -G:仅仅显示用户全部组id;

    2> su命令(switch user)

    作用:进行切换用户;

    格式:su  -  目标用户;

    su命令和su -命令的区别:

    前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;而后者连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PaTH环境变量错误。su切换成root用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;而用su -命令切换以后,工作目录变成root的工作目录了。用echo $PaTH命令看一下su和su -以后的环境变量有何不同。

  • 相关阅读:
    在线免费学习全世界的课程
    【安卓】imageView.scaleType取centerCrop后,再用padding时显示异常?
    win8+VS2012搭建OpenGL超级宝典的环境
    leetcode第一刷_Plus One
    HASH JION AND NESTED JION
    Hive创建外部表以及分区
    Android数字签名解析(一)
    Alex 的 Hadoop 菜鸟教程: 第3课 Hadoop 安装教程
    用C#生成不反复的随机数
    Swift数据类型及数据类型转换
  • 原文地址:https://www.cnblogs.com/ajunyu/p/10875300.html
Copyright © 2020-2023  润新知