Linux之账号管理

Linux之账号管理

一、新增与删除用户:useradd,相关配置文件,passwd,usermod,userdel

Linux登录系统时会输入账号和密码,所以创建用户也需要这两个数据。新建用户用useradd命令,密码的给予则用passwd命令。

useradd

1.添加新用户

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

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

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

-c -c  …  username  创建用户时指定描述信息。

chfn … username

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

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

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

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

-r : -r username 创建系统用户

 

范例一:完全参考默认值新建一个用户,名称为luffy.

 Linux之账号管理

# 默认会创建用户文件夹,且权限为700.

 Linux之账号管理

需要改变用户相关参数时,就得要通过上面的参数来进行创建,如下:

范例二:假设我已知道我的系统当中有个组名为 users ,且 UID 700 并不存在,请用 users 为初始群组,以及 uid 700 来创建一个名为 Ace的账号.

 Linux之账号管理

范例三:创建一个系统账号,名称为Shanks

 Linux之账号管理

useradd参考文件

useradd的默认值可以使用下面方法调用出来:

Linux之账号管理 

passwd

由于在/etc/shadow内仅会有密码参数而不会有加密过的密码数据,因此在创建用户账号时,还需要使用“passwd username”来给予密码。

-l:锁定指定用户

-u:解锁指定用户

-e:强制用户下次登录修改密码

-n mindays: 指定最短使用期限

-x maxdays:最大使用期限

-w warndays:提前多少天开始警告

-i inactivedays:非活动期限

-stdin:从标准输入接收用户密码

范例一:给用户luffy 设置密码

Linux之账号管理 

 

范例二:用户luffy登录后,修改luffy自己的密码

Linux之账号管理 

范例三:使用standard input 新建用户的密码

Linux之账号管理 

范例四:管理Shanks的密码,使其具有30天更改、14天密码失效的设置

Linux之账号管理 

Linux之账号管理

 

范例五:让Shanks的账号失效,查看完毕后再失效

Linux之账号管理 

Linux之账号管理 

#密码字段恢复正常

chage

passwd -S可以详细的显示密码参数,此外,change也具有此功能。

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

-d 指定密码的上次修改时间(yyyy-mm-dd)

-d 0 则强制用户下次登录时必须修改密码

-E 指定账户的过期时间

-I 密码过期之后多少天帐户过期

-m 设置最小存活时间

 -M 设置最大存活时间

-W 设置密码过期前的提醒时间

chage username 交互式修改用户的密码策略

 

范例一:列出Shanks的详细密码参数

Linux之账号管理 

usermod

usermod可以进行账号相关数据的微调。

usermod -u newuid username 修改用户的UID

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

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

-G “” username  usermod -G primarygroup username 清空用户所有的辅助组

-g groupname username 修改用户的主组

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

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

chfn … username

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

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

-l newname oldname 修改用户名

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

-U !拿掉。

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

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

 

userdel

userdel命令目的在于删除用户的相关数据,用户数据有:

用户账号/密码相关参数:/etc/passwd,/etc/shadow

用户组相关参数:/etc/group,/etc/gshadow

用户个人文件数据:/home/username,/var/spool/mail/username..

命令语法:userdel  [-r] username -r :连同用户的文件夹也一起删除)

 

二、新增与删除用户组

groupadd

groupadd [-g gid ]  [-r]  用户名

-g: 创建指定gid的组

-r : groupname 创建系统组

 

groupmod

groupmod  [-g gid]  [-n  groupname]

-n newgrpname oldgrpname  修改组名

-g newgid groupname 修改gid

groupdel

groupdel groupname 删除用户组

gpasswd

用户管理员功能

gpasswd  groupname设定组密码

-a:添加用户到组;

 -d:从组删除用户;

 -A:指定管理员;

-M:指定组成员和-A的用途差不多;

 -r:删除密码;

 -R:限制用户登入组,只有组中的成员才可以用newgrp加入该组。

groups username 查看指定用户属于哪些组

 

原创文章,作者:Light Yagami,如若转载,请注明出处:http://www.178linux.com/82492

(0)
上一篇 2017-07-23 18:13
下一篇 2017-07-23 19:07

相关推荐

  • Linux的文本处理工具及grep正则表达式的使用

    文本处理工具及grep正则表达式的使用 本章节学习的内容: 1、各种文本工具来查看、分析、统计文本文件 2、grep正则表达式 3、扩展正则表达式 一、抽取文本的工具: 1、按文件内容:less和cat 2、按文件截取:head和tail 3、按列抽取:cut 4、按关键字抽取:grep 二、文件查看命令:cat, tac,rev 1、命令cat: (1)文…

    Linux干货 2016-08-05
  • N22-第十一周作业

    1、详细描述一次加密通讯的过程,结合图示最佳。 (1)数字签名 A与B通信,B发给A一段数据,为了证明数据确实是B发送过来的,B首先会用单向加密算法从数据中提取一段特征码,然后用自己的私钥加密这段特征码和原始数据后,发送给A;A接受到数据,首先用B的公钥解密,获取到特征码和原始数据;然后用同样的单向加密算法从原始数据中提取一段特征码,与之前用公钥解密得到的特…

    Linux干货 2016-11-01
  • 马哥教育网络班21期-第九周课程练习

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash m=0 n=0 for i in `awk -F: '{print $NF}'&nb…

    Linux干货 2016-09-15
  • 缓存需知

    Edit Web缓存核心技术点需知 5.1 HTTP首部控制 5.2 基于新鲜度检测机制: 2.1 特征1:时间局部性 2.2 特征2:空间局部性 2.3 缓存的优点 2.4 哪类数据应该被缓存 2.5 哪类数据可缓存但不应该被缓存 2.6 缓存命中率决定缓存有效性 2.7 缓存数据生命周期 2.8 缓存处理步骤 2.9 缓存和普通数据读取的区别 1. 完整…

    Linux干货 2015-02-22
  • 常见HTTP code大全

    1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码。 代码 说明 100 (继续) 请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。  101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。 2xx (成功)表示成功处理了请求的状…

    Linux干货 2016-09-19
  • 设计模式 ( 十六 ) 观察者模式Observer(对象行为型)

    1.概述 一些面向对象的编程方式,提供了一种构建对象间复杂网络互连的能力。当对象们连接在一起时,它们就可以相互提供服务和信息。 通常来说,当某个对象的状态发生改变时,你仍然需要对象之间能互相通信。但是出于各种原因,你也许并不愿意因为代码环境的改变而对代码做大的修改。也许,你只想根据你的具体应用环境而改进通信代码。或者,你只想简单的重新构造通信代码来避免类和类…

    Linux干货 2015-07-24