linux用户,组管理

linux用户,组管理

用户的登陆过程:

用户要使用linux系统,必须先进行登陆,linux的登陆过程和Windows登陆过程类似,登陆的过程包括以下几个步骤

1.当linux系统正常引导启动完成后,系统就可以正常接纳用户登陆,用户界面会显示“login:”提示符。如果是图形界面就会显示用户登陆窗口

2.用户输入用户后系统会检查/etc/passwd是否有该用户,存在则进入下一步,不存在则退出

3.首先读取/etc/passwd中的用户id和组id,同时该用户的其他信息也会一并读取出来

4.用户输入密码以后,系统通过检查/etc/shadow来判断用户密码是否正确,如果密码校验正确则显示用户的默认shell完成登陆。用户shell的类型由?/etc/passwd文件来决定。

用户的类型

linux系统的用户类型分为三类

系统用户:正常运行系统所使用的账户,比如某一个进程 系统用户是不能登陆的

管理员用户:root用户,拥有系统的一切权限

普通用户:普通的使用者,能使用linux的大部分资源

linux会给每个用户一个二进制数字来标识用户:0-65535

各个不同用户类型使用不同段的id来标识:管理员的为0 普通用户为1-65635,其中系统用户为1-499这是centos7以下的版本,centos为1-999;普通用户为500-60000 centos7则为1000-60000

linux系统用户的认证方式是事先存储然后登陆时进行比对信息是否一致.这里会分别对用户的id和密码在/etc/passwd和/etc/shadow文件

/etc/passwd

该文件为纯文本格式,只有root用户能读取 每个字符段用:号隔开。一共分七个字段

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

分别对应的是:用户名:密码:UID:GID: 相关注释:家目录:使用的shell

(如果用户第一行为*的话表示该用户为禁用)

/etc/shadow

该文件也为文本格式,也只有root用户能读取到;和/etc/passwd文件相似分为九个字段

root:$6$9zNMhBI08X3AD3wE$Urd3TwfeedV0IZI2hlyy54RRikcemVQ1z6lme1w7GQja9tb74DwGIgFwA5EUhQ0LJGDFBCIYK7S90CjQesrVc/::0:99999:7:::

每个字段分别对应的是:用户名:加密后的密码:上次修改密码的时间:密码最短使用天数:密码的最长使用天数:密码警告期:过期期限:保留字段

密码的使用策略:

1、使用随机密码;

2、最短长度不要低于8位;

3、应该使用大写字母、小写字母、数字和标点符号四类字符中至少三类;

4、定期更换;

用户组

用户组是用户的容器每个用户都有一个属于自己的私有组。

用户组的分类有三种

1.按权限:管理员组,普通用户组(包含有登陆组和系统组)

2.按组的类别:用户的基本组,用户的附加组(用户可以属于一个基本组和多个附加组)

3.类别:私有组(组名和用户名相同,且之包含一个用户),公共组(组内包含了多个用户)

用户组的文件也有两种:/etc/group,/etc/gshadow

/etc/group:

保存用户组的所有信息,格式同上,只有四个字段

root:x:0:

对应的是:用户组名:用户组密码:用户组标识:组内用户列表

密码的加密算法

linux用户的密码的加密算法是属于单向加密,只能加密不能解密,释以提取数据特征码的形式进行加密的。密码常见的算法有MD5,sha,sha224,sha256…..

linux用户和组的管理命令

用户管理命令

useradd:创建用户
    sueradd [选项]  登陆名
    -u:指定UID
    -g:指定GID
    -G:指明用户的附加组,多个附加组之间用逗号隔开
    -c:指明注释信息
    -d:以指定路径为用户的家目录,通过复制/etc/skel此目录并重命名实现,指定的家目录如果实现存在则不会为用户复制配置环境文件
    -s:为用户指定默认shell,可用的shell列表存储在/etc/shells文件中
    -r:创建系统用户
    -D:显示创建用户的默认配置
sueradd -D 选项:修改默认选项的值
注意:创建用户是的诸多默认设定配置文件为/etc/login.defs

usermod:修改用户属性
    usermod [选项] 登录名
    -u:修改用户id为此处指定的新id
    -g:修改用户所属的基本朱
    -G [GROUP1] [GROUP2]:修改用户所属的附加组,原来的附加组会被覆盖
    -a:与-G一同使用,表示为用户追加附加组
    -c:修改注释信息
    -d:自该用户的家目录,用户原有文件不会被转移覆盖
    -m:只能与-d一同使用,用于将原来的家目录移动为新的家目录
    -l:修改用户名
    -s:修改用户默认shell
    -L:锁定用户密码,即在用户原来的密码字符串之前添加一个!
    -U:锁定用户的密码

suerdel:删除用户
    userdel [选项] 登录名
    -r:删除用户时一并删除其家目录

passwd:修改密码
    passwd:修改用户自己的密码
    passwd USERNAME:修改指定用户的密码,只有root有此权限
    -l,-u:锁定和解锁用户
    -a:清楚用户密码串
    -e DAYS:过期期限
    -i DAYS:非活动期限
    -n DAYS:密码的最短使用期限
    -x DAYS:密码的最长使用期限
    -w DAYS:警告期限
    --stdin:echo “PASSWORD” | passwd --stdin USERNAME

gpasswd:修改组密码
    gpasswd [选项] GROUP
    -a USERNAME:向组中添加用户
    -d USERNAME:从组中移除用户

newgrp:临时切换到指定的组为基本组
    newgrp [-] [group]
    -:会模用户重新登录以实现初始化其工作环境

chage:更改用户密码过期信息
    cheage -[d E W m M] 登录名

id:显示用户的组和有效id
    id [OPTION] ....[USER]
    -u:仅显示有效的UID
    -g:仅显示有效的GID
    -G:仅显示用户所属的所有组ID
    -n:显示名字而非ID

su:用户切换
    登录式切换:会通过读取目标用户的配置文件来重新初始化
    su - USERNAME
    su -l USERNAME
    非登录式切换:不会读取用户配置信息进行初始化
    注:管理员可屋密码切换至任何用户
    -c ‘COMAND’:以指定用户的身份运行此处指定的命令

练习1:创建用户gentoo,UID为4001,基本组为gentoo,附加组为distro(GID为5000)和peguin(GID为5001);

groupadd -g 5000 distro

groupadd -g 5001 peguin

useradd -u 4001 -G distro,peguin

练习2:创建用户fedora,其注释信息为"Fedora Core",默认shell为/bin/tcsh;

useradd -c Fdeora -s tash

练习3:修改gentoo用户的家目录为/var/tmp/gentoo;要求其原有文件仍能被用户访问;

usermod -d /var/tmp/gentoo gentoo

练习4:为gentoo新增附加组netadmin;

usermod -Ga netadmin gentoo

原创文章,作者:N24-执念,如若转载,请注明出处:http://www.178linux.com/64216

赞 (0)
N24-执念N24-执念
上一篇 2016-12-19 18:55
下一篇 2016-12-19 20:07

相关推荐

  • nginx提供web服务——虚拟主机

    练习:定义四个虚拟主机,混合使用三种类型的虚拟主机;   仅开放给来自于本地网络中的主机访问; [root@node1 ~]# vim /etc/nginx/nginx.conf user           …

    Linux干货 2016-10-23
  • linux高级文件管理系统

    磁盘配额:    linux是一个多用户的系统,磁盘配额是分配给每个用户的磁盘可用空间的限制。每一用户只能使用最大配额范围内的磁盘空间。root是不受配额限制的,只有普通用户才受限制。   Quota是在RedHatlinux下实现linux磁盘配额的工具,它支持单独的挂载文件系统,而不是一个目录。quota默认是安装的,如果没…

    Linux干货 2016-09-02
  • Linux上bash的部分基础特性:

    命令补全: tab      shell程序在接收到用户执行命令的请求,分析完成后,最左侧的字符串会被当做命令 命令查找机制:     查找内部命令:     根据PATH环境变量中设定的目录,自左而右逐个搜索目录下的文件名 &n…

    Linux干货 2017-03-28
  • Shell脚本编程基础之一

      Linux为高效管理系统,提供了CLI命令行接口,供用户在命令提示符下输入命令,它有很多bash shell基础特,根据这些特性能够很灵活的使用命令,也支持使同时输入多个命令执行,命令之间用冒号分隔;但是要完成复杂多次重复性的操作,非常不便,系统管理工作变得很是繁忙,很难轻松完成工作任务;不过Linux的shell支持脚本编程,通过编写纯文本格…

    Linux干货 2016-08-15
  • 文本处理工具

    文本查看工具 less [les]  查看文件 功能比MORE更强大      -N  显示行号      查看时使用的命令      / OR ? 搜索的内容    搜索关键字 &nbsp…

    Linux干货 2017-04-13