一、配置文件

  • /etc/passwd:存放用户信息,以“:”分割成7个部分

  

    1、账号名称,用来对应UID;

    2、早期密码存放位置,后来密码改存/etc/shadow中,以“x”代替;

    3、UID,使用者表示,系统主要通过UID识别账户

    4、GID,用户组的ID

    5、用户信息说明

    6、家目录

    7、登陆的shell

  • /etc/shadow:存放用户密码等信息,同样以“:”分割,分为9段

  

    1、账号名称,与/etc/passwd相对应;

    2、密码,经过加密;

    3、最近更改密码的日期,以1970-1-1开始计数;

    4、不允许更改密码的天数,从密码变更起始开始计数,如果数值为n,表示密码变更后,n天内不允许在修改密码,0表示随时可以修改密码;

    5、密码需要更改的天数,从密码变更起始开始计数,如果数值为m,表示密码变更后,在m天内需要更改密码,99999表示永远不要修改密码;

    6、密码更改期限前的警告天数,与5相比,如果数值为x,表示在5字段密码需要更改的前x天,发出警告,提示需要修改密码;

    7、密码过期后的宽限时间,与5字段相比,如果数值为y,表示在5字段,密码需要更改后,在y天内密码有效,y天后密码失效,登陆时会强制用户更改密码;

    8、账号失效日期,如果数值为z,表示在z天以后,账号不能登陆;

    9、保留字段

  • /etc/group,存放用户组信息,同样以“:”分割,4个字段

  

    1、组名

    2、组密码

    3、GID

    4、组成员

  • /etc/gshadow 组密码等信息位置
  • /etc/skel
[root@web01 ~]# ll -a /etc/skel/
总用量
drwxr-xr-x.    root root   5月   : .
drwxr-xr-x.  root root  5月   : ..
-rw-r--r--     root root     3月    .bash_logout
-rw-r--r--     root root    3月    .bash_profile
-rw-r--r--     root root    3月    .bashrc
drwxr-xr-x.    root root   11月   .gnome2

二、命令管理

  • 添加用户

  

[root@web01 ~]# useradd -u  test1     #指定uid
[root@web01 ~]# id test1
uid=(test1) gid=(test1) 组=(test1)
[root@web01 ~]# useradd -g root test2    #指定主组
[root@web01 ~]# id test2
uid=(test2) gid=(root) 组=(root)
[root@web01 ~]# useradd -G root test3    #添加新用户到附加组
[root@web01 ~]# id test3
uid=(test3) gid=(test3) 组=(test3),(root)
[root@web01 ~]# useradd -s /sbin/nologin test4  #指定登陆shell
[root@web01 ~]# tail - /etc/passwd
test4:x::::/home/test4:/sbin/nologin-M  不为用户创建家目录-d  为用户指定家目录
  • 设置密码

  

[root@web01 ~]# passwd test1
更改用户 test1 的密码 。
新的 密码:
无效的密码: 它基于字典单词
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。
[root@web01 ~]# echo "password"|passwd test2 --stdin  #非交互设置密码,可用于批量添加用户
更改用户 test2 的密码 。
passwd: 所有的身份验证令牌已经成功更新。[root@web01 ~]# passwd -d test2  #清除密码清除用户的密码 test2。passwd: 操作成功
  • 修改用户信息

  

[root@web01 ~]# id test2
uid=(test2) gid=(root) 组=(root)
[root@web01 ~]# usermod -u  test2
[root@web01 ~]# id test2
uid=(test2) gid=(root) 组=(root)
[root@web01 ~]# usermod -g test3 test2
[root@web01 ~]# id test2
uid=(test2) gid=(test3) 组=(test3)
[root@web01 ~]# usermod -G root test2
[root@web01 ~]# id test2
uid=(test2) gid=(test3) 组=(test3),(root)
[root@web01 ~]# grep test2 /etc/passwd
test2:x::::/home/test2:/bin/bash
[root@web01 ~]# usermod -s /sbin/nologin test2
[root@web01 ~]# grep test2 /etc/passwd
test2:x::::/home/test2:/sbin/nologin
##########与useradd用法几乎相同############
  • 删除用户
[root@web01 ~]# userdel test1  #默认不删除家目录
[root@web01 ~]# ll -d /home/test1/
drwx------     5月   : /home/test1/
[root@web01 ~]# userdel -r test4  #删除家目录
[root@web01 ~]# ll -d /home/test4
ls: 无法访问/home/test4: 没有那个文件或目录
  • 查看用户信息
[root@web01 ~]# id
uid=(root) gid=(root) 组=(root)
[root@web01 ~]# id test1
id: test1:无此用户
[root@web01 ~]# id test2
uid=(test2) gid=(root) 组=(root)
  • 组管理
[root@web01 ~]# groupadd test1
[root@web01 ~]# tail - /etc/group
suffergtf:x::
test1:x::
[root@web01 ~]# groupdel test1
[root@web01 ~]# tail - /etc/group
test3:x::
suffergtf:x::

三、sudo管理

配置文件/etc/sudoers,可以使用vim编辑工具直接编辑该文件,但是没有语法检查,所以推荐使用visudo管理

格式如下

root    ALL=(ALL)       ALL

root:表示需要提权的用户

ALL:运行的主机

(ALL):表示以谁的身份来运行命令

ALL:表示给予字段1中的用户使用字段3的用户权限运行这个命令

例:

test    ALL=(root)      /usr/sbin/useradd
[root@web01 test2]# su - test
[test@web01 ~]$ /usr/sbin/useradd test100
-bash: /usr/sbin/useradd: 权限不够
[test@web01 ~]$ sudo /usr/sbin/useradd test100
[sudo] password for test:
[test@web01 ~]$ id test100
uid=(test100) gid=(test100) 组=(test100)

sudo别名功能(别名只能用大写)

User_Alias USER = test200,test300,test400  #定义用户别名Host_Alias HOST = web01,web02    #定义主机别名Cmnd_Alias CMD = /usr/sbin/useradd,/usr/sbin/userdel  #定义命令别名

USER    ALL=(root)      CMD###########别名需要使用大写字母表示,并且定义的别名如果没有使用,会报错#############[root@web01 test2]# su - test200[test200@web01 ~]$ /usr/sbin/useradd test11-bash: /usr/sbin/useradd: 权限不够[test200@web01 ~]$ sudo /usr/sbin/useradd test11[sudo] password for test200: [test200@web01 ~]$ /usr/sbin/userdel test11-bash: /usr/sbin/userdel: 权限不够[test200@web01 ~]$ sudo /usr/sbin/userdel test11###########需要输入密码比较麻烦,可以定义不用输入执行sudo的用户的密码##########USER    ALL=(root)      NOPASSWD:CMD[root@web01 test2]# su - test200[test200@web01 ~]$ sudo /usr/sbin/useradd test22[test200@web01 ~]$ id test22uid=1011(test22) gid=1011(test22) 组=1011(test22)

centos 简单用户管理的更多相关文章

  1. 基于vue.js的简单用户管理

    功能描述:添加.修改.搜索过滤 效果图: <!DOCTYPE html> <html lang="en"> <head> <title&g ...

  2. EasyUI+MVC+EF简单用户管理Demo(问题及解决)

    写在前面 iframe-src EntityFramework版本 connectionStrings View.Action.页面跳转 EasyUI中DataGrid绑定 新增.修改和删除数据 效果 ...

  3. centos的用户管理相关命令所在的包

    用户管理命令是指:useradd userdel  groupadd groupdel 这些 这些命令出自一个叫 shadow-utils 的包. 对于配置文件 /etc/shadow ,则来自一个叫 ...

  4. spring boot一个简单用户管理DEMO

    概述 该Demo旨在部署一个简单spring boot工程,包含数据编辑和查看功能 POM配置 <?xml version="1.0" encoding="UTF- ...

  5. ceph简单用户管理

    列出所有用户 ceph auth list 获取指定用户 ceph auth get client.admin 新增用户并输出密钥环 ceph auth get-or-create client.ge ...

  6. Nodejs+Express+Mysql实现简单用户管理增删改查

    源码地址 https://github.com/king-y/NodeJs/tree/master/user 目录结构 mysql.js var mysql = require('mysql'); v ...

  7. [转]Spring3 MVC + jQuery easyUI 做的ajax版本用户管理

    原文地址:http://www.iteye.com/topic/1081739 上周写了篇基于spring3.0.5 mvc 简单用户管理实例 ( http://www.iteye.com/topic ...

  8. Linux学习总结(十二)—— CentOS用户管理:创建用户、修改用户、修改密码、密码有效期、禁用账户、解锁账户、删除用户、查看所有用户信息

    文章首发于Linux学习总结(十二)-- CentOS用户管理,请尊重原创保留原文链接. 创建用户 useradd -g webadmin -d /home/zhangsan zhangsan pas ...

  9. Laravel框架简单的用户管理[CURD]操作

    一个基于laravel和bootstrap的简单的用户管理,适合刚入门的我们,在做的过程中可以加深自己对laravel基础理解,里面存在一些问题,还未修改,比如css和js的引入,表单提交地址等不规范 ...

随机推荐

  1. python 面向对象六 类属性和实例属性

    一.实例属性 Python是动态语言,根据类创建的实例可以任意绑定属性. >>> class Student(object): ... def __init__(self, name ...

  2. P3158 [CQOI2011]放棋子

    传送门 题解(因为公式太多懒得自己抄写一遍了--) //minamoto #include<bits/stdc++.h> #define ll long long #define R re ...

  3. ————————C语言中快速排序方法——————————————

    在对浮点型排序是一定要用三木运算符(三目运算符内容下去自己看),因为如果也是用整形那样的减法的时候如果是两个十分相近的数字 可能返回一个小数(自己一会去试试),冉冉他cmp返回值是int(试试别的)因 ...

  4. poj 3295 Tautology 伪递归

    题目链接: http://poj.org/problem?id=3295 题目描述: 给一个字符串,字符串所表示的表达式中p, q, r, s, t表示变量,取值可以为1或0.K, A, N, C, ...

  5. POJ 3683 Priest John's Busiest Day

    看这个题目之前可以先看POJ2186复习一下强联通分量的分解 题意:给出N个开始时间和结束时间和持续时间三元组,持续时间可以在开始后或者结束前,问如何分配可以没有冲突. -----–我是分割线---- ...

  6. jmeter(十六)Jmeter之Bean shell使用(一)

    一.什么是Bean Shell BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法; BeanShell是一种松散类型的脚本语言(这点和JS类似); BeanS ...

  7. ambari-server启动报错500 status code received on GET method for API:/api/v1/stacks/HDP/versions/2.4/recommendations Error message : Server Error解决办法(图文详解)

    问题详情 来源是,我在Ambari集群里,安装Hue. 给Ambari集群里安装可视化分析利器工具Hue步骤(图文详解 所遇到的这个问题. 然后,去ambari-server的log日志,查看,如下 ...

  8. [转]asp.net MVC helper 和自定义函数@functions小结

    本文转自:http://www.cnblogs.com/jiagoushi/p/3904995.html asp.net Razor 视图具有.cshtml后缀,可以轻松的实现c#代码和html标签的 ...

  9. 写给W小姐的一封信

    生活 琐碎 Hallo,Preaty.对于跟人说话,我很不擅长如何开头.我不知道什么样的开头是符合我在别人心目中我应有的形象.我不知道什么样的开头符合别人预想中与我相匹配的内容.或者说什么的开头才是一 ...

  10. 【Java】包装类型

    Java中的基本类型功能简单,不具备对象的特性,为了使基本类型具备对象的特性,所以出现了包装类,就可以像操作对象一样操作基本类型数据. 一.基本类型对应的包装类 基本类型                ...