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)
上一篇 2016-12-19 18:55
下一篇 2016-12-19 20:07

相关推荐

  • Linux 的shell脚本编程

    shell脚本编程 程序:指令+数据 程序编辑风格:             过程式:以指令为中心,数据服务于指令             对象式:以数据为中心,指令服务于数据 shell程序:提供了编程能力,解释执行 计算机:运行二进制指…

    Linux干货 2016-08-15
  • N21沉舟第七周作业

    1、创建一个10G分区,并格式为ext4文件系统;    (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;    (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; mke2fs -t ex…

    Linux干货 2016-08-22
  • 八.Linux博客-2016年8月8日sed、vim

    格式说明: 操作 概念 命令 说明及举例 八.sed、vim sed 文本编辑工具 行编辑器,每次取出一行在内存里处理,处理完成后屏幕打印。完成后再取出一行放到内存里处理,覆盖原来内存中的行,循环。。 sed -n '3d' f1 把文件f1中的第三行删掉并不在屏幕上显示 sed -n&n…

    Linux干货 2016-08-24
  • Linux基础之shell脚本编程(一)

    本文主要是shell脚本编程练习 1、写一个脚本    (1)、获取并列出当前系统上的所有磁盘设备;    (2)、显示每个磁盘设备上每个分区相关的空间使用信息;   1 #!/bin/bash   2 #author:BaoZhang  &nbsp…

    Linux干货 2016-11-11
  • 控制字体颜色的输出echo[转载]

    http://onlyzq.blog.51cto.com/1228/546459 echo显示带颜色,需要使用参数-e格式如下:echo -e "\033[字背景颜色;文字颜色m字符串\033[0m"例如: echo -e "\033[41;37m TonyZhang \033[0m"其中41的位置…

    Linux干货 2017-02-01
  • N25-第八周作业

    1、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态;      在线的主机使用绿色显示;      不在线的主使用红色显示; 2、如何给网络接口配置多个地址,有哪些方式?     ifconfig eth#:# &n…

    Linux干货 2017-02-01