用户和组的管理

通过命令、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

相关推荐

  • 文件管理类的命令总结

    Linux系统内针对目录的管理命令有很多,现在我们进行逐一介绍: 1.  mkdir – make directories,创建目录 语法:mkdir [OPTION]… DIRECTORY…常用选项: 选项 | 含义—— | ——-p, –parents | 递…

    2017-09-07
  • socket阻塞与非阻塞,同步与异步、I/O模型

    1. 概念理解      在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:同步:      所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前…

    Linux干货 2015-04-10
  • 正则表达式之初体验

    学习正则表达式之前,看过这复杂的表达式,犹如天书,无比高大上;怀着战战兢兢的心情,开始了学习之旅: 一、  正则表达式:Global search REgular expression and Print out the line. 我的理解是:通过一大堆符号组成的公式逐行查找文本中匹配的字符串并显示出来  分类: &…

    Linux干货 2015-03-31
  • grep学习示例

    grep学习示例 Linux中grep命令使用较多,现将自己学习的罗列几条. 1. 去除空白行     空白行是指空行或者只有空格的行,使用grep命令去除空白行,命令如下:      grep -v  “^[[:space:]]*$” &nbs…

    Linux干货 2017-07-30
  • 数据库的备份和恢复

    数据库的备份和恢复 一 (理论篇)、数据库备份与恢复基础 1、数据库的备份与恢复 备份:存储的数据副本; 原始数据:持续改变; 恢复:把副本应用到线上系统; 仅能恢复至备份操作时刻的数据状态; 时间点恢复: binary logs; 2、为什么备份? 灾难恢复: 硬件故障(冗余)、软件故障(bug)、自然灾害、黑客攻击、误操作、…&nb…

    2016-11-22
  • 【知识点】NO.1—-关于删除文件后未及时释放磁盘空间问题

    删除了某些占用大存储的文件,发现占用的磁盘空间并没有的到释放。怎么解决呢?
    在工作中经常遇到服务器某个存放日志或者某些数据的磁盘(或者目录),因为检查不及时磁盘存储满了的状况。释放空间真的只是删除文件这么简单吗?nonono…

    2017-11-18