用户和组的管理

通过命令、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
下一篇 2017-12-17

相关推荐

  • 正则表达式及文本处理

    正则表达式及文本处理 通俗点说,正则表达式就是处理字符串的方法,更加快速简洁的代表各个要求参数,一般用于描述字符排列和匹配模式的一种语法规则,通过正则表达式一些特殊符号的辅助,让用户轻易的查找、删除、替换一些字符串的处理程序。( ps:正则表达式和通配符不一样,通配符代表的是bash接口的一个功能,但正则表达式是一种字符串处理的表达方式,两者一定要分清楚。)…

    2017-06-11
  • Linux的程序包管理,RPM,yum及编译安装简介

    Linux的程序包管理,RPM,yum及编译安装简介   Linux的程序包,指的是ELF格式的二进制应用程序文件所组成的软件包。它一般由二进制文件、库文件、软件配置文件及帮助文件等组成。而对这些包进行管理的工具,主流分为两种,在debian上,用的是apt-get管理deb包;在redhat上,主要用rpm作为软件包管理工具。在这里,我简单的介绍…

    Linux干货 2016-05-29
  • 激情的魅力samba服务(热舞篇)

    正如名称一样的迷人的一个服务,充满了激情。火热的天气中更添加一分悸动,本章就尝试对下面火热的samba服务是要如何破解并掌握于手心中。(本篇当中借鉴了鸟哥私房菜和linux就该这么学还有传说中的中华小题库,通过做题来对于samba进行初步的了解)后续还会添加一篇关于samba服务的文章,作为深度了解。 首先了解下samba的来源,听说作者老道(Tridgwe…

    Linux干货 2017-08-19
  • 系统管理之程序包管理(二)yum详解

    系统管理之程序包管理(二)yum详解:     上节向大家介绍了程序包管理的理论和rpm命令的使用,本篇文章接着向大家介绍rpm的前端使用工具,方便大家更快捷的管理,使用rpm包,提高工作效率。 一 概论: Centos:yum,dnf 两个rpm前端工具 YUM :yellow dog, Yellowdog,Upda…

    Linux干货 2016-08-24
  • 系统基础之用户,组及权限管理

    用户及组详解 概论:   现今,大多数操作系统都是多用户(Multi-tasks)多任务(Mulit-Users)的系统.在多年前,计算机资源远没有现在这么丰富,都是多人使用同一台计算机,为了保障使用计算机的用户权益不受到损害,完成资源使用隔离,人们采取了用户机制标识使用者的方法.  每个使用者都是用户,用户是由UID进行标识,通过密码进…

    Linux干货 2016-08-04