一、与用户相关的几个文件

1./etc/passwd

储存用户名,格式为 用户名:密码(用密码代位符X代替):UID:GID:用户描述信息:家目录:shell

  • 用户名(login_name):是代表用户账号的字符串。通常长度不超过8个字符,并且由大小写字母和/或数字组成。登录名中不能有冒号(:),因为冒号在这里是分隔符。为了兼容起见,登录名中最好不要包含点字符(.),并且不使用连字符(-)和加号(+)打头。

  • 密码(passwd):一些系统中,存放着加密后的用户口令字。虽然这个字段存放的只是用户口令的加密串,不是明文,但是由于/etc/passwd文件对所有用户都可读,所以这仍是一个安全隐患。因此,现在许多Linux系统(如SVR4)都使用了shadow技术,把真正的加密后的用户口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一个特殊的字符,例如“x”或者“*”。

  • 用户标识号(UID):是一个整数,系统内部用它来标识用户。一般情况下它与用户名是一一对应的。如果几个用户名对应的用户标识号是一样的,系统内部将把它们视为同一个用户,但是它们可以有不同的口令、不同的主目录以及不同的登录Shell等。取值范围是0-65535。0是超级用户root的标识号,1-99由系统保留,作为管理账号,普通用户的标识号从100开始。在Linux系统中,这个界限是500。

  • 组标识号(GID):字段记录的是用户所属的用户组。它对应着/etc/group文件中的一条记录。

  • 注释性描述(users):字段记录着用户的一些个人情况,例如用户的真实姓名、电话、地址等,这个字段并没有什么实际的用途。在不同的Linux系统中,这个字段的格式并没有统一。在许多Linux系统中,这个字段存放的是一段任意的注释性描述文字,用做finger命令的输出。

  • 家目录(home_directory):也就是用户的起始工作目录,它是用户在登录到系统之后所处的目录。在大多数系统中,各用户的主目录都被组织在同一个特定的目录下,而用户主目录的名称就是该用户的登录名。各用户对自己的主目录有读、写、执行(搜索)权限,其他用户对此目录的访问权限则根据具体情况设置。

  • Shell:用户登录后,要启动一个进程,负责将用户的操作传给内核,这个进程是用户登录到系统后运行的命令解释器或某个特定的程序,即Shell。Shell是用户与Linux系统之间的接口。Linux的Shell有许多种,每种都有不同的特点。常用的有sh(BourneShell),csh(CShell),ksh(KornShell),tcsh(TENEX/TOPS-20typeCShell),bash(BourneAgainShell)等。系统管理员可以根据系统情况和用户习惯为用户指定某个Shell。如果不指定Shell,那么系统使用sh为默认的登录Shell,即这个字段的值为/bin/sh。

注意:

a)用户自己建立的账户的UID和GID都是从500开始的,500之前为系统的保留账户。

b)Root用户的UID是0,将UID改为0就是登陆的Root账户

c)Root账户的标识符为#,其他账户都为$

2./etc/shadow

密码文件,格式为 登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

  1. “登录名”是与/etc/passwd文件中的登录名相一致的用户账号

  2. “口令”字段存放的是加密后的用户口令字:
    1. 如果为空,则对应用户没有口令,登录时不需要口令;

    2. 星号代表帐号被锁定;

    3. 双叹号表示这个密码已经过期了;

    4. $6$开头的,表明是用SHA-512加密;

    5. $1$表明是用MD5加密;

    6. $2$ 是用Blowfish加密;

    7. $5$ 是用 SHA-256加密;

  3. “最后一次修改时间”表示的是从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。例如在SCOLinux中,这个时间起点是1970年1月1日。

  4. “最小时间间隔”指的是两次修改口令之间所需的最小天数。

  5. “最大时间间隔”指的是口令保持有效的最大天数。

  6. “警告时间”字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。

  7. “不活动时间”表示的是用户没有登录活动但账号仍能保持有效的最大天数。

  8. “失效时间”字段给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。

3./etc/group

用户组的所有信息都存放在/etc/group文件中,格式为 组名:密码:组标识号:组内用户列表

a)组名:组名是用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复。

b)密码:密码字段存放的是用户组加密后的密码,与用户文件中一样一般用密码代位符X代替。

c)组标识号:组标识号与用户标识号类似,也是一个整数,被系统内部用来标识组。别称GID.

d)组内用户列表:是属于这个组的所有用户的列表,不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。

4./etc/gshadow

组密码文件,格式为 组名:口令:组管理者:组内用户列表

a) 组名: 是用户组的名称,由字母或数字构成。  
b) 口令:用户组密码,这个段可以是空的或!,如果是空的或有!,表示没有密码。
c) 组管理者:这个字段也可为空,如果有多个用户组管理者,用,号分割。
d) 组内用户列表:如果有多个成员,用,号分割。

思考:创建一个系统用户需要涉及多少文件?

已知:1./etc/passwd 2./etc/shadow 3./etc/group

4./etc/gshadow 5./home 

扩展:

6./var/spool/mail

用户邮件目录,每创建一个用户就会在该目录下以用户名新建一个邮箱。

二、用户相关命令重认识

1.id查看用户

选项: -g或--group   显示用户所属群组的ID。

   -G或--groups   显示用户所属附加群组的ID。

   -n或--name    显示用户,所属群组或附加群组的名称。

   -r或--real    显示实际ID。

   -u或--user    显示用户ID。

   -help         显示帮助。

   -version      显示版本信息。

在实际使用中一般是直接使用。

例子:

 id Xs

2.useradd添加用户

选项: -u 指定用户的UID

    -g 指定用户的所属群组

    -G 将用户加入指定群组中,方式为覆盖

    -d 指定用户的家目录

    -c 指定用户的描述信息

    -s 指定用户所使用的shell

例子:

 useradd -u  -g Xs -d /home/ljq -c ABeautifulGirl -s /bin/bash MQ 

3.userdel删除用户

选项: -f:强制删除用户,即使用户当前已登录。    

    -r:删除用户的同时,删除与用户相关的所有文件。

直接使用userdel只删除用户但是不删除其家目录和其他文件,使用userdel -r删除用户及其一切文件。

例子:

 userdel cnblogs
userdel -r MQ

4.usermod修改用户基本信息

选项:-c<备注>:修改用户帐号的备注文字;

     -d<登入目录>:修改用户登入时的目录;
-e<有效期限>:修改帐号的有效期限;
   -f<缓冲天数>:修改在密码过期后多少天即关闭该帐号;
   -g<群组>:修改用户所属的群组;
   -G<群组>;修改用户所属的附加群组,方式为覆盖;

    -aG<群组>;修改用户所属的附加群组,方式为覆盖;

   -l<帐号名称>:修改用户帐号名称;    
   -L:锁定用户密码,使密码无效;   
   -s<shell>:修改用户登入后所使用的shell;   
   -u<uid>:修改用户ID;   
   -U:解除密码锁定。
例子:
 useradd -s /sbin/nologin -c test ljq
passwd ljq
tail - /etc/passwd
usermod -u -aG Xs -c ABeautifulGirl -s /bin/bash -l MQ ljq

注意:

在使用-d修改用户家目录时,直接修改是没有作用的而且会造成用户无法登录。

如下图:

图一可以正常登录

图二更改用户家目录操作

图三再次登录提示找不到家目录

因为在/home下没有/lv目录,那么我尝试创建一个/lv目录,尝试在有/home/lv目录时能否登录

图四为创建/home/lv操作

图五提示信息变为找不到"/home/lv/.local"文件

原来在家目录里还有一些看不见的隐藏配置文件,如果不将它们拷贝过去同样无法登录。

图六为MQ账户家目录下的隐藏配置文件(之前MQ账户叫做ljq,因此家目录为/home/ljq,我们利用usermod改变账户名称时,其他文件名称不变)

我们尝试将/home/ljq完整拷贝到/home/lv,再看看能否登陆

图七为拷贝操作

图八可登录

5.groupadd添加组

选项: -g:指定新建工作组的id

    -r:创建系统工作组,系统工作组的组ID小于500;

    -K:覆盖配置文件“/ect/login.defs”;

    -o:允许添加组ID号不唯一的工作组。

例子:

 groupadd -g  mm

6.groupmod修改组基本信息

选项: -g<群组识别码>:设置欲使用的GID;

    -o:重复使用GID;

    -n<新群组名称>:设置欲使用的群组名称。

例子:

 groupmod -g  -n xq mm

7.groupdel删除组

例子:

 groupdel xq

 

Linux菜鸟起飞之路【五】权限管理(一)的更多相关文章

  1. Linux菜鸟起飞之路【六】权限管理(二)

    一.权限信息详解   ls -l 文件 //查看文件权限写法1 ll 文件 //查看文件权限写法2 ls -dl 目录 //查看目录权限写法1 ll -d 目录 //查看目录权限写法2 文件权限格式: ...

  2. Linux菜鸟起飞之路【十】进程管理

    一.基本概念 进程:程序的一次动态执行 守护进程:在后台运行并提供系统服务的进程 僵尸进程:完成了生命周期但却依然留在进程表中的进程,我们称之为 “僵尸进程” 父进程:指已创建一个或多个子进程的进程. ...

  3. Linux菜鸟起飞之路【二】Linux基本常识

    一.Unix操作系统基本常识 1.什么是Unix? Unix是一个计算机操作系统,是一个用来协调.管理和控制计算机硬件与软件资源的控制程序. 2.Unix操作系统的特点? 多用户与多任务.多用户表示在 ...

  4. Linux菜鸟起飞之路【一】基本知识与Linux的安装

    一.操作系统基本常识 1.操作系统的定义:操作系统是用来协调.管理和控制计算机硬件与软件资源的系统程序,介于硬件与应用程序之间. 2.操作系统内核的定义:操作系统内核是一个管理和控制程序,负责管理计算 ...

  5. Linux菜鸟起飞之路【三】Linux常用命令

    一.Linux命令的基本格式 命令 [选项] [参数] a)命令:就是告诉操作系统要做什么 b)选项:说明命令的运行方式,有的会改变命令的功能,选项通常以“-”开始 c)参数:说明命令的操作对象,如文 ...

  6. Linux菜鸟起飞之路【九】系统启动流程

    Linux系统启动流程 BIOS -> MBR  -> BootLoader -> Kernel -> init 1.打开电源后,计算机从主板的BIOS中读取其中存储的程序.这 ...

  7. Linux菜鸟起飞之路【八】文本编辑器

    在Linux中,文本编辑器有两个,VI和VIM.这两个编辑器用法差不多,但vim是vi的升级版,所以功能更强大一些. vim编辑器一共有三种模式,命令行模式.编辑模式和扩展模式. 进入vim界面,首先 ...

  8. Linux菜鸟起飞之路【四】绝对路径、相对路径及常用目录

    一.绝对路径与相对路径 Linux操作系统中存在着两种路径:绝对路径和相对路径.我们在访问文件或文件夹的时候,其实都是通过路径来操作的.两种路径在实际操作中能起到同等的作用. 在开始具体介绍之前,我们 ...

  9. Linux菜鸟起飞之路【七】文件合并、归档和压缩

    一.文件合并操作 1.覆盖符号与追加符号 a)“>”代表将左边文件的内容覆盖右边文件的内容,如果右边文件不存在则创建这个文件 b)“>>”代表将左边文件的内容追加到右边文件中,如果右 ...

随机推荐

  1. ICPC-无限路之城(数学+思维)

    链接:https://ac.nowcoder.com/acm/contest/321/C 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言2621 ...

  2. Codeforces Round #527 -A. Uniform String(思维)

    time limit per test 1 second memory limit per test 256 megabytes input standard input output standar ...

  3. [NWPU2016][寒假作业][正常版第三组]搜索和二分 N

    题意,一条数轴上,告诉你起点和终点,只能向前走1,向后走1,或者走到二倍的现在的位置,每次都耗时一分钟.问从起点到终点的最短时长. 简单地bfs #include <iostream> # ...

  4. NSwag生成客户端调用代码

    NetCore2.1 WebAPI 根据swagger.json自动生成客户端代码 https://www.cnblogs.com/hunanzp/p/9297361.html 前言 上一篇博客中我们 ...

  5. 《springcloud 三》分布式配置中心

    Git环境搭建 使用码云环境搭建git服务器端 码云环境地址:https://gitee.com/majie2018 服务端详解 项目名称:springboot2.0-config_server Ma ...

  6. csrf攻击实例

    CSRF 攻击可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击站点,从而在并未授权的情况下执行在权限保护之下的操作.比如说,受害者 Bob 在银行有一笔存款,通过对银行的网站发送请求 ht ...

  7. 求逆欧拉函数(arc)

    已知欧拉函数计算公式 初始公式:φ(n)=n*(1-1/p1)*(1-1/p2).....*(1-1/pm)   又 n=p1^a1*p2^a2*...*ps^as  欧拉函数是积性函数 那么:φ(n ...

  8. 【转】LINQ to SQL语句(1)之Where

    Where操作 适用场景:实现过滤,查询等功能. 说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子句. Where操作包括3种形式,分别为简单形 ...

  9. css3响应式表格

    <h1>极客学院相关课程</h1> <table class="responsive"> <thead> <tr> &l ...

  10. java项目定时任务实现

    首先配置spring-context.xml文件 在xmlns 下加如下代码 xmlns:task="http://www.springframework.org/schema/task&q ...