1. /etc/passwd
由 : 分隔成7个字段
(1) 用户名 规则:大小写字母、数字、减号(不能出现在首位)、点以及下划线,其他字符不合法 
(2) x 放密码,安全起见放到 /etc/shadow
(3) uid (0-4294967294=2^32-2)  root uid=0 1-499系统保留 普通账户是从500开始
(4) gid  对应 /etc/group
(5) 注释说明,该字段没有实际意义,通常记录该用户的一些属性,例如姓名、电话、地址等等  用 chfn 更改
(6) 用户家目录
(7) shell  /bin/bash, /bin/false, /sbin/nologin

2. /etc/shadow
使用 : 分隔9个字段
(1) 用户名
(2) 密码,用SHA-512加密过,不可逆
(3)上次更改密码的日期,例如上次更改密码的日期为2012年1月1日,则这个值就是 ‘365 x (2012-1970) + 10 + 1= 15341’. 
(4)要过多少天才可以更改密码, 0 不限制
(5)密码多少天后到期,默认是99999,可以理解为永远不需要改 
(6)密码到期前的警告期限 
(7)账号失效期限,到期后过多少天锁定帐号 
(8)账号的生命周期
(9)作为保留用的,没有什么意义

3. 新增/删除用户和组
groupadd  -g  指定gid
groupdel  如果组内有用户,不能删除
useradd -u -g  -d指定家目录  -M不建立家目录 -s 自定义shell 
userdel  -r 删除用户的家目录
usermod -u -s -d  -L -U -g -G 
chfn  finger

4. 创建、修改用户密码
passwd  
创建密码的规则:长度大于10;含大小写字母数字以及特殊字符 ;不规则性;不要带有自己名字、公司名字、自己电话、自己生日等。
mkpasswd  生成密码的工具,安装 expect包

5. 用户身份切换
su   -  用来初始化环境变量 $PATH $HOME等
sudo  su到root需要输入root的密码不安全 
visudo 编辑/etc/sudoers 配置文件  没有命令需安装 yum install -y sudo
格式: user   host=(as_user)  commands
比如:  aming  ALL=(root)   /bin/ls    //它的意思是,让aming这个普通用户,拥有root的权限,针对ls这个命令。

应用:只允许使用普通账户登陆,而普通账户登录后,可以不输入密码就能sudo切换到root账户 (root不允许远程登录
User_Alias USER_SU = test, test1, aming   //做用户的别名,可以写多个用户
Cmnd_Alias SU = /bin/su        //做命令的别名,可以写多个命令
USER_SU ALL=(ALL) NOPASSWD: SU   //其中NOPASSWD的意思是,普通用户使用sudo的时候,不需要输入自己的密码。

扩展学习:
1. keepass http://www.keepass.info  
2.  usermod锁定账户和passwd锁定账户的区别
3.  对于su命令的一点疑惑
4.  su和sudo的区别
5. sudo -i 也可以登录到root吗
6. /etc/shadow 第二段密码详细介绍

lesson - 5 Linux用户和组管理的更多相关文章

  1. linux学习16 Linux用户和组管理命令演练和实战应用

    一.上集回顾 1.bash globing,IO重定向及管道 glob:*,?,[],[^] IO重定向: >,>>, 2>,2>> &>,& ...

  2. Linux用户与组管理命令

    1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可. who | cut -d" " -f1 | sort -u 或 who | cut -d ...

  3. Linux 用户和组管理

    这是用户和组管理的知识点,不想看文字就看视频吧,还是视频为主,文字为备忘录 视频链接: 项目1用户管理 1.创建一个新用户user01,设置其主目录为/home/user01: #useradd –d ...

  4. linux用户和组管理,/etc/passwd 、/etc/shadow和/etc/group 文件内容解释

    与用户相关的系统配置文件主要有/etc/passwd 和/etc/shadow,其中/etc/shadow是用户资讯的加密文件,比如用户的密码口令的加密保存等: /etc/passwd 和/etc/s ...

  5. linux用户、组管理及权限(一)

    一.用户管理 1.为什么需要用户 1)计算机及网络资源的合理分配  2)可以控制用户访问系统的权限.3)身份认证 4) 进程 以某个用户的身份来运行 2.用户分类 用户的角色是通过UID(用户ID)来 ...

  6. java程序员菜鸟进阶(十五)linux基础入门(三)linux用户和组管理

    我们大家都知道,要登录linux操作系统,我们必须要有一个用户名和密码.每一个用户都由一个惟一的身份来标识,这个标识叫做用户ID.系统中的每一个用户也至少需要属于一个"用户分组". ...

  7. linux用户和组管理,/etc/passwd 、/etc/shadow和/etc/group --学习

    一./etc/passwd 和/etc/shadow解释 与用户相关的系统配置文件主要有/etc/passwd 和/etc/shadow,其中/etc/shadow是用户资讯的加密文件,比如用户的密码 ...

  8. ref:linux用户和组管理,/etc/passwd,/etc/shadow和/etc/group 文件内容解释

    ref:https://www.cnblogs.com/xuha0/p/5519232.html 与用户相关的系统配置文件主要有/etc/passwd 和/etc/shadow,其中/etc/shad ...

  9. Linux用户和组管理命令-用户创建useradd

    用户管理命令 useradd usermod userdel 组帐号维护命令 groupadd groupmod groupdel 用户创建 useradd 命令可以创建新的Linux用户 格式: u ...

随机推荐

  1. Jrebel热部署配置完整教程(IntelliJ IDEA、Jrebel、spring boot、springboot、eclipse、Tomcat)

    标签:IntelliJ IDEA.Jrebel.spring boot.springboot.eclipse.Tomcat1.安装插件并激活插件安装参考:http://blog.csdn.net/u0 ...

  2. MVC文件夹及文件说明

    一个典型的 ASP.NET MVC Web 应用程序的文件夹内容如下所示: 所有的 MVC 应用程序的文件夹名称都是相同的.MVC 框架是基于默认的命名.控制器写在 Controllers 文件夹中, ...

  3. file-loader 使用心得

    将webpack 里面的图片文件都放在制定文件夹. 配置如下 { test: /\.png$/, loader: "file-loader?name=imgs/[name]-[hash].[ ...

  4. weakSelf 和 strongSelf

    最近在看SDWebImage源码,碰到一些比较绕的问题,理解了很久,然后在网上查了些的资料,才算是有了一些理解.在此记录一下. 源码如下: block会copy要在block中使用的实变量,而copy ...

  5. windows平台下基于QT和OpenCV搭建图像处理平台

        在之前的博客中,已经分别比较详细地阐述了"windows平台下基于VS和OpenCV"以及"Linux平台下基于QT和OpenCV"搭建图像处理框架,并 ...

  6. CCF-201412-2-Z字形扫描

    问题描述 试题编号: 201412-2 试题名称: Z字形扫描 时间限制: 2.0s 内存限制: 256.0MB 问题描述: 问题描述 在图像编码的算法中,需要将一个给定的方形矩阵进行Z字形扫描(Zi ...

  7. 地图开发GIS的应用有哪些?

    GIS的应用领域有哪些? 地理信息系统在最近的30多年内取得了惊人的发展,广泛应用于资源调查.环境评估.灾害预测.国土管理.城市规划.邮电通讯.交通运输.军事公安.水利电力.公共设施管理.农林牧业.统 ...

  8. Java 代码学习之数组的初始化

    我们都很熟悉Java中的数组,它具有查询快,增删慢的特点.但是通常我们自认为很了解它的用法,却容易忽略一些小细节.今天通过一段代码来简单了解数组初始化中的一些我们容易忽略的地方. package da ...

  9. 【Codeforces 837D】Round Subset

    http://codeforces.com/contest/837/problem/D 分解质因数,即第i个数的因子2的个数为c2[i],因子5的个数为c5[i],末尾零的个数就是min{Σc2[i] ...

  10. let 和 const

    let命令 1.let命令只在所在的代码快内有效 { let a = 'hello world' console.log(a) //hello world } console.log(a) //Unc ...