useradd/usermod/userdel/passwd/groupadd/groupmod/groupdel/gpasswd
用户

用户系统也是通过一个文件来管理的,默认的root用户id是0,
shadow文件说明

加密算法类别

$后面的数字6指定了加密算法使用的是第六种,sha512加密
增加用户,修改成同样的密码,查看/etc/shadow文件,可以看到,虽然两个密码字符串是一样的,但是在shadow文件中看到两个加密字符串是不一样的,这是因为同一个明文字符串在生成加密密文的时候采用了加盐加密算法,
/etc/passwd用户信息库文件的格式说明


用户名 centos
密码 新建用户不指定密码的话,由占位符x占位,改变密码后x由加密密码密文代替
uid 用户id值 1001
主组id 1001
注释信息, 可置空
家目录 /home下的家目录
默认的shell
添加用户 useradd
有些系统是adduser,查看文件属性,可以发现其实就是useradd的链接
``的作用是将which adduser的输出结果作为入参传给file命令




默认添加用户,会自动生成一个用户同名组。且默认uid跟gid相同,如果出现其他占用,则在原基础上加1
指定uid

指定组名
-g后须跟已存在的组名或者组id,不然无法创建

-G 后面跟的是一个组列表,指明该用户同时属于这么多的组

添加用户描述信息

创建用户时为其指定shell程序

查看系统当前支持的shell
cat /etc/shalls
[root@yy ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
指定家目录路径

在指定路径之前,需确认目的路径是空的,不然无法创建,且不会从skel中复制用户环境配置文件进去

查看当前useradd的默认参数配置

create_mall_spool 默认会在 /var/spool/mail/下创建一个和用户名同名的文件夹,用来接收邮件信息

修改默认配置项,以后使用useradd的时候不指定参数就按照默认参数进行创建

修改的结果保存在 /etc/default/useradd文件中

默认用户配置文件 /etc/login.defs
MAIL_DIR /var/spool/mail #用户的默认邮件目录
PASS_MAX_DAYS 99999 #密码的最大有效期
PASS_MIN_DAYS 0 # 密码的最小天数
PASS_MIN_LEN 5 # 密码最小长度
PASS_WARN_AGE 7 # 密码告警等级
UID_MIN 1000 # 用户id起始值 1000,才centos6中是500
UID_MAX 60000 # 用户id最大值 60000, 起始可以有65535,2的16次方
SYS_UID_MIN 201 # 系统用户最小id值
SYS_UID_MAX 999 # 最大值
GID_MIN 1000 # 组id最小值
GID_MAX 60000 # 组id最大值
SYS_GID_MIN 201
SYS_GID_MAX 999
CREATE_HOME yes # 是否创建家目录
UMASK 077 # 用户掩码
USERGROUPS_ENAB yes # 创建用户的时候自动创建组
ENCRYPT_METHOD SHA512 # 使用的密码加密方式。sha512是第6中
在创建用户的时候,回为其自动创建组,一般用户id和组id是相同的,如果在其他地方被占用,就在原来的基础上进行加1.以后创建的用户,如果不指定id,那么就在前一个用户的基础上对uid和gid进行递增
用户家目录的产生:
在使用useradd添加用户后,在/homt/下会自动生成一个同名的文件夹,进入文件夹是空的,但是有几个隐藏的用户环境配置文件.bash_logout .bash_profile .bashrc,
该文件夹的产生的默认配置中,有一个配置项SKEL=/etc/skel,查看该路径,发现在其目录下。默认的就有这三个隐藏文件.bash_logout .bash_profile .bashrc,所以,使用useradd创建用户家目录的时候,使用默认的skel(骨骼)文件夹,将内部的文件拷贝到/home下,这才有了用户的家目录。
usermod
修改系统已经存在的用户属性

userdel
删除用户
将会删除用户在 /etc/passwd 和 /etc/shadow中的记录,但是从数据安全出发,默认情况下,删除用户并不会删除用户的家目录和邮件信息,可以使用 -r 来同时删除家目录和邮件,
参数r的作用

passwd


使用标准输入来修改密码

id


su 和newgrp


charge
更改用户密码过期时间
组

用户组也是可以加密的

加密算法


用户/组 管理文件


添加用户组 groupadd
创建一个系统组


更改组模式

删除组

gpasswd

总结
三个关键文件的总结

用户及组的概念,就是将多用户的文件进行权限划分,使得不混乱。
useradd/usermod/userdel/passwd/groupadd/groupmod/groupdel/gpasswd的更多相关文章
- lesson - 5 课程笔记 which/ type / whereis /locate /pwd / etc/passwd/ shadow/ group / gshadow /useradd /usermod /userdel /passwd / su sudo
一.which 作用: which 命令用于查找并显示给定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历的目录, which 命令会在环境变量$PATH 设置的目录里查找符合条件的文件.也 ...
- 组管理命令--groupadd.groupmod.groupdel.gpasswd
添加用户组 格式 groupadd [参数] 组名 参数选项 -g GID:指定新组的GID,默认值是已有的最大的GID加1.-r:建立一个系统专用组,与-g不同时使用时,则分配一个1-499的GID ...
- linux 用户、用户组及相关命令(useradd 、passwd、userdel 、groupadd 、groupdel、usermod 、gpasswd 、 id、su)
linux是一个多用户系统,用于权限管理(权限最小化); 相关命令: 7 8 9 10 11 12 13 14 15 useradd passwd userdel groupadd groupdel ...
- 账户管理groupadd groupmod groupdel usermod usermod userdel
http://www.cnblogs.com/ggjucheng/archive/2012/08/21/2648380.html http://blog.csdn.net/qq1603013767/a ...
- 【每天一个Linux命令】10. 用户账号的新建/修改/删除以及密码修改 useradd/usemod/userdel/passwd
在 Linux 系统中,与用户管理有关的文件主要有如下几个:分别是/etc/passwd,/etc/shadow,/etc/gfoup,/etc/gshadow .它们分别与用户的账号,密码,用户组及 ...
- Linux学习历程——Centos 7 账户管理命令(用户组篇)groupadd groupmod groupdel
一.命令介绍 groupadd:创建用户组 groupmod:修改用户组属性 groupdel:删除用户组 ---------------------------------------------- ...
- Linux学习历程——Centos 7 账户管理命令(用户篇)useradd usermod userdel
一.命令介绍 useradd 用于创建新的用户 usermod 用于修改用户属性 userdel 用于删除用户 -------------------------------- ...
- 2017-06-27(useradd usermod userdel 禁止普通用户登录)
useradd useradd -g 组名 用户名 (添加新用户,并将其添加到指定的主用户组) useradd -g 组名 -G 附属组名 用户名 (添加新用户,并将其添加至指定主用 ...
- 2017-06-26(groupadd groupmod groupdel)
groupadd groupadd 组名 (创建用户组) groupadd -g 组编号 组名 (创建组名 并且指定编号) groupmod groupmod -n 新组名 旧组名 ...
随机推荐
- Pygame小游戏练习三
@Python编程从入门到实践 Python项目练习 七.创建Passenger类 创建passenger.py文件,创建Passenger类,控制乘客属性和行为 # passenger.py imp ...
- ThreadLocal使用场景,原理
ThreadLocal 1. 先说下 ThreadLocal不能解决多线程间共享数据,他是一个隔离多线程间共享数据的好帮手 2. ThreadLocal是本地线程共享数据 3. 他是以空间换时间 sy ...
- antd做form表单的组件共用,利用mapPropsToFields填写默认值
做单页应用,不管是用Vue还是React,或者其他,有一个重要的原则,就是:组件重用. 既然组件可以重用,那么当添加一个信息,和修改该信息的布局必然是一致的,这时候,最好的方法自然是利用同一个组件,在 ...
- js date对象传参获取特定日期的时间戳
当我们想要通过js获取某一特定时间的时间戳时,会通过给date对象传参再通过getTime函数来获取,传递的参数格式也有不同形式.有些时候,可能会因为自己传入参数的格式不正确而导致date对象inva ...
- C# 批量设置窗体中控件状态的方法
在开发中常遇到当点击某个按钮的时候,禁用文本框或按钮的的状态,以防止误操作,下面的代码是我已批量设置指定控件中的按钮状态的代码,同理可以延伸出很多操作. /// <summary> /// ...
- WPf ObservableCollection异步调用问题
当ObservableCollection列表被UI线程占用时,如果在异步线程中调用ObservableCollection,会弹出以下异常: private void Button1_OnClick ...
- .NET Core 创建Windows服务
.NET Core 创建Windows服务 作者:高堂 原文地址:https://www.cnblogs.com/gaotang/p/10850564.html 写在前面 使用 TopShelf+Au ...
- 如何爬取icourse163 中国慕课上课程信息(上),
中国大学MOOC网上有着特别完善的课程信息,我觉得这是一份可以让我们充分利用的资源 那么,接下来的问题就是我们该如何爬取这里的资源 选择其中的计算机课程进行尝试 import requests fro ...
- 基于Hadoop生态SparkStreaming的大数据实时流处理平台的搭建
随着公司业务发展,对大数据的获取和实时处理的要求就会越来越高,日志处理.用户行为分析.场景业务分析等等,传统的写日志方式根本满足不了业务的实时处理需求,所以本人准备开始着手改造原系统中的数据处理方式, ...
- 小程序page中生命周期
onLoad -- 页面被加载出来 onShow -- 页面显示出来后 退出后两小时进来,只会执行这个生命周期 onRady -- (逻辑层传给渲染层后才会执行)监听页面初次渲染完成 onHide ...