用户和组的管理

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

相关推荐

  • 第二周博客作业

    1.linux上的文件管理类命令都用哪些,其常用的使用方法及其相关示例演示。 常用命令有:cp, mv, rm 复制命令:cp cp [OPTION]… [-T] SOURCE DEST                 cp [OPTION]… SOURC…

    Linux干货 2016-06-23
  • 马哥教育网络班22期-第九周课程作业

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash # declare -i count=0 declare -i bash_num=0 declare -i&nbs…

    Linux干货 2016-11-21
  • 进程与周期任务

    STAT:进程状态: R:running S: interruptablesleeping D: uninterruptable sleeping T: stopped Z: zombie +: 前台进程 l: 多线程进程 L:内存分页并带锁 N:低优先级进程 <: 高优先级进程 s: session leader,会话(子进程)发起者 top栏位信息…

    Linux干货 2017-05-15
  • 8月5日文本处理工具作业

    分析文本工具相关练习题 1 、找出ifconfig 命令结果中本机的所有IPv4 地址       ~]# ifconfig|tr -cs '[0-9].' '\n'|sort -ut '.…

    Linux干货 2016-08-06
  • 交互式与非交互式的区别

    交互式与非交互式shell /登录shell于非登录shell 外网连不上,教室装修太吵,相关资料找不到,云云不知所云,托托症又犯了 登录shell_非登录shell // .bash_profile .bashrc profile 文件的作用的执行顺序 http://blog.csdn.net/robertaqi/archive/2010/04/04/54…

    Linux干货 2017-06-11
  • 初学Linux

       已经学习了Linux一周了,从原来的设计网页、动画影视制作、3D模型到现在的黑白界面虚拟世界,从原来吃睡由我到现在重回高三生活,说实话,一开始还是不太能适应的,尤其是眼睛,酸胀痛。不过,越努力越幸运,也觉得linux其实很有意思。。以下是我第一篇微博的内容,也是我学习linux一周所总结的知识。 首先,学习一门知识就要先了解他的历史…

    Linux干货 2017-07-15