前言

我们知道,当我们进入一家公司做运维方面的工作的时候,我们需要对公司的服务器进行监控管理,换句话说,我们需要一个身份来操作服务器。那么我们又知道,linux系统下拥有最高权限的管理员是Root,它无所不能,无所畏惧,那么公司肯定就是不会把这个账户交给你使用。那么就引出一个概念:用户。除了root管理员,其他所有人都是这个服务器的用户。由root管理员创建用户来交予你使用,当然root会赋予该管理员一些可以行使的权利和限制一些它的操作,那么这篇文章就来详细说说用户管理和权限管理的那些事。

首先先来认识一个文件  /etc/passwd

为了区别明显,分别以root、magedu登陆对比来看,可以看到以‘:’隔开,分为七个部分,下面分别来进行解释:

第一位:用户名。看上图,分别是root和magedu

第二位:用户密码。之所以显示X是由于安全考虑,会在另一个文件中显示,后面会提到。

第三位:用户ID,即UID。因为root是超级管理员,拥有至高无上的权利,所有它的UID为0。反之也就是说当UID为0时,说明该用户是管理员账户。那我们应该思考一下,既然root是0,那为什么magedu的UID是1000而不是1呢?因为在CentOS6系统下,默认将1-499的UID留给了系统用户使用,而在CentOS 7系统下,默认将1-999留给了系统用户使用。因为本编使用的是CentOS 7系统,所有magedu这个用户的UID就从1000开始啦。

第四位:GID,即组ID。当我们创建一个用户时,会自动创建一个与用户同名的组作为用户的主要组。每个用户有且仅有一个主要组。既然有主要组,是不是也要有附加组(辅助组),没错,少年,你hin有前途呦~~ 每个用户可以有零个或者多个辅助组,后面也会提到啊~~

第五位:描述位。简单来说,对你来个简单介绍。如果创建用户的时候没有进行描述,则默认为用户名。那我想修改怎么办?No problem !改!怎么改?后面说啦(给自己挖了这么多坑,哭着也得填满啊~~)

第六位:用户的家目录。很好理解啦,每个用户的家嘛~如果把用户家目录删除了,那用户就无家可归喽~

第七位:用户默认登陆的shell。一般来说用户创建时,默认指定的shell为/bin/bash。那么能改吗?当然了,记住:linux一切皆文件。怎么改?你懂得~后面来说。

呼~~~终于说完一个文件,接下来还有一个文件。坚持住,老铁们~~

再来看下一个文件 /etc/shadow

/etc/passwd 文件是对用户的基本信息进行描述,那么/etc/shadow

则是对用户密码的基本信息进行描述。

这个我们换个用户,分别以root、zhangsan对比来看,可以看到以‘:’隔开,分为九个部分,下面分别来进行解释:

第一位:用户名。root 、zhangsan

第二位:密码位。咦~这次为啥不是X表示了?来看这个文件的名字,shadow?影子、投影的意思。这么长一串都是密码吗?那这用户得有多自虐啊设置这样的密码(哈哈哈)老铁们也看过不少谍战戏,一看就是加密的密码喽~至于怎么个加密法,不是本章重点就不啰嗦这个了~知道是加密过的密码就阔以了噻~

第三位:密码上一次的修改日期(从1970-1-1到修改的时间经过了多少天来表示)为什么从1970年算起呢?因为1970是linux诞生的日子啊。看图,zhangsan用户为17368天,换算成年,47年。正是今年创建的时间,怎么样?晕了没~~

第四位:密码最小存活期。很简单,距离你上次修改密码有几天你才能进行下一次修改。看图,root为0,则代表你随时可以修改;zhangsan用户为2天,如果你现在修改了密码,那么下次你就要等到两天后才能修改了。

第五位:密码最大存活期。与上同理,过了密码最大存活期,系统会提醒你强制修改密码了。如图,zhangsan用户的密码最长维持333天。

第六位:密码过期之前提前多少天提醒用户(在正确登录时),这就是智能所在了。有时候我们忘记了密码什么时候过期了咋办?没问题,交给系统来设置。如图,zhangsan用户会在密码过期的前12天会提醒他的。

第七位:密码过期之后多少天帐户过期(在正确登录时)。那如果系统提醒你改密码了,你死活就是不改,那么抱歉了,过了天数你这个账户就过期了。如图,zhangsan用户设置的也是12天。

第八位:帐户过期时间(自1970-1-1到该天经过了多少天来表示)。这个与上同理,就不多解释了~

第九位:保留位。留给未来写系统的人的保留位~真的是很有前瞻意识啊~~~

接下来要学习一个新知识了,既然这两个文件都是跟用户有关的,那么怎么来创建一个用户呢?来干货了~~

useradd 命令用来创建一个用户。我们知道一般一个命令都有一些选项,好,列举一些出来:

-u uid username 创建用户时指定uid(如不指定则Centos6:500-60000, Centos7: 1000-60000)

-o -u uid username 创建用户时指定uid(可以与已存在用户的uid相同)

-g groupname username 创建用户时指定主组为某个已存在的组。(将不会再创建与用户同名的组)

-c “…”  username  创建用户时指定描述信息。(看清楚,是在创建时候哈~)

-d path username 指定用户的家目录(确保指定的家目录所在的上级目录要存在,且家目录本身不能存在)

-s /sbin/nologin username 指定用户的默认shell

-G group1[,group2] username 指定用户的辅助组

-N username 设置用户的主要组为默认组(users,uid=100)

-r username 创建系统用户

看了上面一堆是不是有点眼花,没关系~来做一个实验马上就一目了然了~

想一个题目吧:创建一个用户Mary,UID为6666,设置主组为zhangsan组,注释信息为“womeima?”,默认shell为/bin/csh 。怎么样,是不是超简单,看本编一条命令搞定

那我们之前说了。当我们创建用户时,会自动创建一个与用户同名的组。当使用-g 选项指定该用户的主组时,将不会再创建与用户同名的组,那我们上面例子是不是实现了呢,还差一步来验证。查看/etc/group文件,该文件时用来存放组的基本信息。

实验成功~~

那么还有一个问题。有人要问了,我的用户已经创建了,我想修改信息没办法改吗?开玩笑,linux下啥不行!改!那要用usermod命令了。同样的,它也有选项,来吧,让我们畅游在知识的海洋里~~

usermod

usermod -u newuid username 修改用户的UID

-o -u newuidusername 修改用户的uid(可以与已存在用户的uid相同)

-aG 加组名,可以追加辅助组而不用覆盖之前的组

-G ""username  或 usermod -G primarygroup username 清空用户所有的辅助组

-g groupnameusername 修改用户的主组

-s /sbin/nologinusername 修改用户的默认shell

-c ...  username 修改用户时指定描述信息。

-d /.../path username 修改用户的家目录(不会创建,只修改/etc/passwd当中的家目录信息)

-m -d /.../path username 修改用户的家目录信息,并将家目录移动到目的目录并改名。

-l newname oldname 修改用户名

-L 给用户/etc/shadow中的密码位加!使用户被锁定

-U 解锁用户(把!拿掉)

-e yyyy-mm-dd 设置一个帐户过期时间

-f days 指定密码过期之后多少天帐户过期

挺住~老铁 ,一个实验就明白了~

再来一个题目:修改zhangsan用户,UID为6688,主组为magedu,注释信息为“woshizhangsan”,默认shell /sbin/nologin。

先来看一下zhangsan用户现在的信息:

接下来进行修改:

突然觉得zhangsan这个用户名太俗了,改个名字吧~

useradd –l newname oldname

Ps:看官们发现了,在上面的实验中,本编使用了getent passwd username 这一命令来查看用户的信息,除了这条,用户还可以使用finger username 来查看用户信息。finger 在CentOS中默认没有安装,用户可以使用以下这条命令来进行安装:rpm –ivh/run/media/root/CentOS\ 7\ x_86_64/packages 在package里查找finger的安装包进行安装。

eg:用finger username 来查看laowang的信息

另外还有一个与useradd -c"" 设置描述信息命令相似的命令,就是使用chfn username 直接进行修改:

还有一个快速修改用户密码的命令:chageusername +回车进行交互式修改密码

如图:

当然chage命令也有一些选项,可以进行单个逐个的修改,在这里不做实验了,列出了解一下:

chage -l username 显示帐户的密码信息

-d 指定密码的上次修改时间(输入天数或yyyy-mm-dd)从1970年算起

-d 0 强制用户下次登陆时修改密码

-E 帐号到期的日期(输入天数)从1970年算起

-I 密码过期之后多少天密码失效

-m 密码可更改的最小天数,为零时代表任何时候都可以更改密码

-M 密码保持有效的最大天数

-W 密码过期前,提前收到警告信息的天数

有关user的一些命令与相关用法就总结到这里啦,当然里面也有一些没有写到的部分,想起来了在来进行补充。还有与group 相关的一些命令与用法就下次再见了~~

如有错误,希望各位路过的看官大神不吝指教,小女子不胜感激~~~

再次笔芯~~~

user相关的一些命令及用法相关推荐

  1. linux apt 命令,Ubuntu系统中apt命令的用法汇总

    apt是Advanced Packaging Tool的简称,是一款安装包管理工具.那么要如何使用apt命令来管理安装包呢?apt命令有哪些参数呢?下面小编就给大家详细介绍下Ubuntu中apt命令的 ...

  2. Linux ipcs命令与ipcrm命令的用法详解

    以下是对Linux中的ipcs命令与ipcrm命令的用法进行了介绍,需要的朋友可以过来参考下 是linux/uinx上提供关于一些进程间通信方式的信息,包括共享内存,消息队列,信号 ipcs用法 ip ...

  3. dos命令for用法详解

    for帮助文档 对一组文件中的每一个文件执行某个特定命令. FOR %variable IN (set) DO command [command-parameters] %variable 指定一个单 ...

  4. traceroute命令的用法实例

    ceroute命令的用法实例 traceroute 跟踪数据包到达网络主机所经过的路由工具: traceroute 是用来发出数据包的主机到目标主机之间所经过的网关的工具.traceroute 的原理 ...

  5. linux的nohup命令的用法。

    linux的nohup命令的用法. 在应用Unix/Linux时,我们一般想让某个程序在后台运行,于是我们将常会用 & 在程序结尾来让程序自动运行.比如我们要运行mysql在后台: /usr/ ...

  6. python sort怎么用,Linux Sort命令详细用法(有实例)

    Linux Sort命令详细用法(有实例) sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! Linux sort命令进阶: 1 sort的工作原理 so ...

  7. linux中如何在文件中查找文件,linux下find(文件查找)命令的用法总结

    每一种操作系统都有成千上万的文件组成,对于linux这样"一切皆文件"的操作系统来说更不例外,大家应该都能很轻松使用windows下的文件查找功能,但是对linux这一功能可能并不 ...

  8. lsof 命令实用用法介绍

    Table of Contents 前言 Linux 下有哪些文件 lsof 命令实用用法介绍 查看当前打开的所有文件 列出被删除但占用空间的文件 恢复打开但被删除的文件 查看当前文件被哪些进程打开 ...

  9. (转载)Dig命令的用法

    Dig命令的用法 Dig是linux中的域名解析工具,功能比nslookup强很多,使用也很方便,不用象nslookup总是set不停. Dig是domain information groper的缩 ...

最新文章

  1. 多比矢量图开发手册(六)-Web高级图元编程
  2. 后端传给前端 无限极分类_学徒|记者亲身体验垃圾分拣,臭到崩溃!我们还有什么理由不做垃圾分类?...
  3. docker入门,基于ubuntu16.04
  4. leetcode 1707. 与数组中元素的最大异或值
  5. 测试驱动开发 测试前移_测试驱动开发:它是什么,什么不是。
  6. 含有5亿个整数的大文件,如果排序?
  7. 信息学奥赛一本通(1037:计算2的幂)
  8. 简述sicas计算机联锁的系统结构,《计算机联锁》教学大纲(5页)-原创力文档...
  9. python 基础列表解析(十八)
  10. ios 中如何应对UIScrollView快速滑动(暴力用户,暴力测试)
  11. 微信小程序入门1-小程序代码构成json
  12. 【学习笔记】Guice学习小结
  13. UML系列——包图Package
  14. 分布式游戏服务器设计
  15. 计算机桌面有个方框,电脑桌面总出现蓝色框怎么办
  16. 拾贰SparkSQL:数据关联优化
  17. 28句最精辟有哲理的生活感悟说说,经典至极,总有一句说到你的心里
  18. 从现在看未来,在未来看现在
  19. getsockopt
  20. 吴恩达2022机器学习——第二部分高级学习算法第二周笔记

热门文章

  1. 战略盲区,是看不见,还是不想看见?
  2. 什么是MTTF、MTBF、MTRF?
  3. FaceNet 读书笔记
  4. 余压监控系统在某高层住宅的应用方案
  5. Kettle 常用的转换组件都在这里
  6. 解放生产力!20 个必知必会 VSCode 小技巧
  7. FPGA-DDRx的VTT电源设计要点
  8. 插入法、选择法、冒泡法(C++实现)
  9. oracle的ofs,windows2003+oracle ofs 双机
  10. P3373(线段树2)