用户和组的管理

通过命令、passwd和shadow的格式,讲述了用户和组的管理

用户和组的管理

一、用户的分类

按照用户的权限分类,分成了管理员用户与普通用户。管理员用户(root)拥有至高的权限,应避免在企业的运维中,使用root登录 ,root用户的ID为0;应该使用普通用户登录到系统,如果执行的程序需要使用管理员,则使用sudo临时进行切换。
普通用户按照用户是否需要登录到系统,分成了系统用户和非系统用户,系统用户,一般用于某个服务使用,非系统用户,就是我们常见的登录用户, 系统用户、系统组与普通的登录用户、组,在其ID上存在区别,
在CentOS 7上,系统用户的ID号1-999,普通用户的ID号1000-60000, 在CentOS 6上,系统用户的ID号是1-499,普通用户的ID从500-60000

二、创建、删除用户

1. 创建用户 useradd
使用方法: useradd [选项] 登录名

选项
-c: 指定注释信息
-d 家目录: 指定家目录的位置
-e EXPIRE_DATE: 用户账户被禁用的日期,日期以YYYY-MM-DD格式指定
-f INACTIVE: 密码过期后,账户被彻底禁用之前的天数。0表示立即禁用,-1表示禁用这个功能
-g GROUP: 用户初始登录组的组名或号码,这个组应该已经存在于系统中
-G GROUP: 指定用户的附加组
-r: 创建一个系统账户
-s SHELL: 指定用户登录的shell名
-u UID: 指定用户ID的数字值

2. 删除用户 userdel

使用方法: userdel [选项] 登录名
选项: -r 在删除用户时,一并删除用户的家目录,默认情况下,不会删除用户的家目录。

三、 passwd和shadow文件的格式

1.   passwd文件的格式

tail /etc/passwd
fedora:x:4002:4002:Fedora Core:/home/fedora:/bin/tcsh
passwd文件的格式
1. account: 用户账号
2. password: 加密的密码或者密码占位符
3. UID: 用户的ID号
4. GID: 用户的基本组ID
5. GECOS: 注释信息
6. directory: 用户的家目录位置
7. shell: 用户登录时的shell

shadow文件的格式:

1. 登录名
2. 加密了的密码
3. 上次更改密码的日期:表示从1970年1月1日开始的天数。
4. 密码最小使用期限
5. 密码最大使用期限
6. 密码警告时间段:密码过期之前,提前警告用户的天数
7. 密码禁用期: 密码过期以后,仍然接受此密码的天数,在此期间登录,会强制用户修改密码,当密码过期并且已经过了这个宽限期以后,使用用户的当前密码将不能登录系统。用户需要联系管理员( password inactivity period)
8. 账户过期日期:账户过期的日期,表示从1970年1月1日开始的天数,账户过期日期不同于密码过期,账户过期时,用户将不允许登录;密码过期时,用户将不被允许使用其密码登录。(account expiration date)
9. 保留字段

##########################################################################

tail -2 /etc/shadow
liuqing:$6$RbuXUmQFp70flw05$1RalKHCSJhiwi1bjO1Nsjd200rNbd..M.djiTh2KQhwRoMJSGalUi4i0ICWt1TXiQ4C0nyy6ev8TRXk5ztoCu0::0:99999:7:::
liu008qing:$6$wh82xgsZ$3yDbq0Z4MLsuX9dW/DT9lrY9cy7/Jer51cnkICZo7/mh82ru88Lu1SR.Sn./7lmX8PAqaO0mSMZV3tsB29K5b/:17497:0:99999:7:::

示例:
1. 创建一个用户liu008qing,注释为”Liuqing login”, 家目录为/var/liuqing,shell为/bin/tcsh
[root@localhost ~]# useradd -c “Liuqing login” -d /var/liuqing -s /bin/tcsh liu008qing
liu008qing:x:4003:4003:Liuqing login:/var/liuqing:/bin/tcsh

2. 账户禁用的宽限期实验
[root@localhost ~]# useradd -f 12 test2
[root@localhost ~]# tail -1 /etc/shadow
test2:!!:17497:2:6699:7:12::

3. 账户禁用的宽限期、账户过期实验
[root@localhost ~]# useradd -f 12 -e 2018-02-05 test3
[root@localhost ~]# tail -1 /etc/shadow
test3:!!:17497:2:6699:7:12:17567:

如何更改账户的密码最长使用时间、最短使用时间、密码过期警告时间:
1. 如果针对所有的用户,可以修改/etc/login.defs,并修改以下项
PASS_MAX_DAYS:9999
PASS_MIN_DAYS:0
PASS_WARN_AGE:7

2. 如果针对特定的用户,编辑/etc/shadow,用户对应的那一行,进行修改。

当达到了告警的时间,会如下显示:
Warning: your password will expire in 4 days
Last failed login: Mon Nov 27 17:10:41 CST 2017 from 192.168.58.158 on ssh:notty
There was 1 failed login attempt since the last successful login.
Last login: Mon Nov 27 17:08:46 2017

zhangsan:$6$tbNWSlL6$0gCBRp3YdHDNEjJZuIpALdlu32ZvO0lVrt473.MivOJAzWlSEoBdc9VfVUq7SYBGIT/j/sL.x5K6IPqIjqinN/:17493:2:8:7:::
实验时间为17497,将密码最小时间改成2天,最大时间改成8天,过期警告时间改成7天,并且将上次密码修改时间改成了4天以前。就出现了如上的提示。

##########################################################################

四、 修改用户属性

man usermod
usermod [选项] 登录名

-u: 修改用户的ID为此处指定的新UID
-g: 修改用户所属的基本组
-G: 修改用户所属的附加组,原来的附加组会被覆盖,
-a -G: 追加用户的附加组。
-c: 修改备注信息
-d: 修改用户的家目录,家目录的原有的文件丢失
-d -m: 将用户原有家目录移动到新目录
-l: 修改用户名
-s: 修改用户的默认shell
-L: 锁定用户密码,禁止用户登录 即在用户原来的密码字符串之前添加一个”!”
-U: 解锁用户的密码

##########################################################################

[root@localhost ~]# tail -1 /etc/passwd
test3:x:4006:4006::/home/test3:/bin/bash

[root@localhost ~]# usermod -u 1888 test3
[root@localhost ~]# tail -1 /etc/passwd
test3:x:1888:4006::/home/test3:/bin/bash

[root@localhost ~]# usermod -g 1999 test3
[root@localhost ~]# tail -1 /etc/passwd
test3:x:1888:1999::/home/test3:/bin/bash

[root@localhost ~]# id test3
uid=1888(test3) gid=1999(corun) 组=1999(corun)
[root@localhost ~]# usermod -a -G liuqing,mygrp test3
[root@localhost ~]# id test3
uid=1888(test3) gid=1999(corun) 组=1999(corun),1000(liuqing),1002(mygrp)

[root@localhost ~]# tail -1 /etc/passwd
test3:x:1888:1999::/home/test3:/bin/bash
[root@localhost ~]# usermod -c “This is test3” test3
[root@localhost ~]# tail -1 /etc/passwd
test3:x:1888:1999:This is test3:/home/test3:/bin/bash

##########################################################################

五、使用chage来更改账户的过期时间

[root@localhost ~]# tail -1 /etc/shadow
test3:!!:17497:2:6699:7:12:17567:

[root@localhost ~]# chage -d 17488 test3
[root@localhost ~]# tail -1 /etc/shadow
test3:!!:17488:2:6699:7:12:17567:

[root@localhost ~]# chage -E 18000 test3
[root@localhost ~]# tail -1 /etc/shadow
test3:!!:17488:2:6699:7:12:18000:

[root@localhost ~]# chage -m 4 test3
[root@localhost ~]# tail -1 /etc/shadow
test3:!!:17488:4:6699:7:12:18000:

[root@localhost ~]# chage -M 9 test3
[root@localhost ~]# tail -1 /etc/shadow
test3:!!:17488:4:9:7:12:18000:

六、基本组与附加组:

一个用户只能有一个基本组,一个用户可以拥有多个附加组; 用户在创建文件时,其中组的权限,会赋予给基本组,即文件的所属组是文件属主的基本组; 用户的附加组属于某一个组,如果这个组是文件的属组,则用户拥有属组的权限。
更改用户的基本组与附加组,在前面已经介绍了,使用usermod -g来更改用户的基本组,使用usermode -a -G来添加用户的附加组,如果不使用-a选项,则会清空原有的附加组。

组密码的设置及其作用: 对组设置一个密码,当一个用户需要使用某个组做为属组来创建、访问文件时,使用newgrp来进行切换,切换后,用户的基本组就是我们设置的这个组。

##########################################################################

[root@localhost ~]# gpasswd corun
正在修改 corun 组的密码
新密码:

[liuqing@localhost ~]$ newgrp corun
密码:
[liuqing@localhost ~]$ touch /tmp/liuqing.test
[liuqing@localhost ~]$ ll /tmp/liuqing.test:
-rw-r–r–. 1 liuqing corun 0 11月 27 20:48 /tmp/liuqing.test

##########################################################################

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/90202

(0)
上一篇 2017-12-17 10:18
下一篇 2017-12-17 17:06

相关推荐

  • IO模型——进程工作的方式

    I/O模型 模型:阻塞型、非阻塞型、复用型、信号驱动型、异步 同步/异步: 关注消息通知机制      消息通知:          同步:等待对方返回消息       &nbsp…

    Linux干货 2016-10-25
  • pxe和dhcp服务——引导安装操作系统

    BootStraping:系统提供(OS Provision) pxe –> preboot excution environment, Intel cobbler –> Cobbler is a network install server.  Cobbler supports PXE, ISO virtual…

    Linux干货 2016-11-05
  • 8.5-文本处理工具(作业篇)

     1、统计当前连接本机的每个远程主机IP的连接数,并按从大到小排序 [root@localhost ~]# netstat -nt Active Internet connections (w/o servers) Proto Recv-Q Send-Q&nb…

    Linux干货 2016-08-07
  • 软件包管理

    一、软件管理程序rpm 简介:RPM是通过预编译并打包成为RPM文件格式后再加以安装的一种方式,并且还能够进行数据库的记载。 1、优点:     1、RPM内含已经编译过的程序与设置文件等数据,可以让用户免除重新编译的困扰;     2、RPM在被安装之前,会先检查系统的硬盘容量…

    Linux干货 2016-08-24
  • crm命令行命令详解

    crm -status 显示当前集群状态 -configure 配置集群 a.show xml 显示当前集群配置信息(xml格式) b.property 显示集群可用的全局属性(键入之后按两下Tab) -verifiy 校验 -commit 提交 -node a.online 设置当前节点上线 b.show 显示当前节点状态 c.standby 将当前节点设…

    Linux干货 2017-11-04
  • 基于Redis的开源分布式服务Codis

    Redis在豌豆荚的使用历程——单实例==》多实例,业务代码中做sharding==》单个Twemproxy==》多个Twemproxy==》Codis,豌豆荚自己开发的分布式Redis服务。在大规模的Redis使用过程中,他们发现Redis受限于多个方面:单机内存有限、带宽压力、单点问题、不能动态扩容以及磁盘损坏时的数据抢救。 Redis通常有3个使用途径…

    Linux干货 2015-02-25