Linux下和用户和用户组管理有关的配置文件:

  1. /etc/group
  2. Group account information.
  3. /etc/gshadow
  4. Secure group account information.
  5. /etc/passwd
  6. User account information.
  7. /etc/shadow
  8. Secure user account information.

下面是自己Linux机器上/etc/passwd文件上的两行:

  1. rickyzhang:x:500:500:rickyzhang:/home/rickyzhang:/bin/bash
  2. web:x:502:503::/home/web:/bin/zsh

有关命令:

useradd 一般用来添加新的用户

  -c comment 指定一段注释性描述。

  -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。

  -g 用户组 指定用户所属的用户组。

  -G 用户组,用户组 指定用户所属的附加组。

  -s Shell文件 指定用户的登录Shell。

  -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号

例子:

useradd -s /bin/sh -g group –G adm,root gem

此命令新建了一个用户gem,该用户的登录Shell是/bin/sh,它属于group用户组,同时又属于adm和root用户组,其中group用户组是其主组

增加用户账号就是在/etc/passwd文件中为新用户增加一条记录,同时更新其他系统文件如/etc/shadow, /etc/group

如果使用默认的

useradd web

这个将产生一些默认行为,一般会产生/home/web/这个web用户的home目录,会产生web这个默认的primary group用户组,也会有默认登录shell,一般为bash,这些可以在你的Linux机器上的/etc/default/useradd文件中看到。

  1. vim /etc/default/useradd
  2. # useradd defaults file
  3. GROUP=100                #主组的GID也是从100开始的
  4. HOME=/home                #把用户的家目录建在/home中,这个目录也可以自己设定
  5. INACTIVE=-1                #是否启用密码过期后是否会失效,-1表示密码永远不会失效。如10,则代表过期10天后才失效。
  6. EXPIRE=                    #帐号终止日期,不设置表示不启用
  7. SHELL=/bin/bash            #所用SHELL的类型
  8. SKEL=/etc/skel            #用户家目录里面文件的参照位置。也就是说,当我们用adduser添加用户时,用户家目录下的文件,都是从这个目录中复制过去的;
  9. CREATE_MAIL_SPOOL=yes    #创建用户的邮件池。相当于一个用户的邮箱

如果不想让一个用会可以登录道tty,可以用-s /sbin/nologin来指定

然后新建用户后一般还要用passwd指定该用户的密码,该用户才能登录系统

在linux系统中增加用户的过程:

在 /etc/passwd 里面建立一行与账号相关的数据,包括建立 UID/GID/家目录等;
在 /etc/shadow 里面将此账号的密码相关参数填入,但是尚未有密码;
在 /etc/group 里面加入一个与账号名称一模一样的组名;
在 /home 底下建立一个与账号同名的目录作为用户家目录,且权限为 700
从/etc/skel/中COPY相应的文件到用户的家目录
最后通过passwd命令,把密码加密后写到/etc/shadow中

usermod 用来编辑用户的属性信息

  1. -c :后面接账号的说明,即/etc/passwd第五栏的说明栏,可以加入一些账号的说明
  2. -d :后面接账号的家目录,即修改/etc/passwd的第六栏
  3. -e :后面接日期,格式是YYYY-MM-DD也就是在/etc/shadow内的第八栏
  4. -f :后面接天数,修改shadow的第七栏
  5. -g :后面接主群组,修改/etc/passwd的第四个字段,即是GID的字段
  6. -G :后面接附加群组,修改这个使用者能够支持的群组,修改的是/etc/group
  7. -a :与 -G 合用,可增加附加群组的支持而非设定
  8. -l :后面接账号名称。修改账号名称,/etc/passwd的第一栏
  9. -s :后面接Shell的文件,例如/bin/bash或/bin/csh等等
  10. -u :后面接 UID 数字,修改用户的UID /etc/passwd第三栏
  11. -L :暂时将用户的密码冻结,让他无法登入。其实就是在/etc/shadow的密码栏前面加上了“!”
  12. -U :将/etc/shadow 密码栏的“!”去掉

这个命令的选项和useradd类似

实例:

  1. usermod -s /bin/ksh -d /home/z –g developer sam

此命令将用户sam的登录Shell修改为ksh,主目录改为/home/z,用户组改为developer。

userdel 删除用户

  1. -f :强制删除,包括用户的一切相关内容,这个参数是危险的参数,不建议大家使用。详细说明看MAN
  2. -r :删除用户的家目录和用户的邮件池

对于-f这个参数,具体可以仔细看看man手册三思而行

userdel -r 这个命令使用的时候,一定要确认这个用户的所有数据真的不再使用了

groupadd groupdel groupmod选项较少,直接man就可以了

gpasswd倒是有很多实用功能,虽然看起来这个命令只是给group添加密码的,但是不知道对于group密码有什么用处

  1. Usage: gpasswd [option] GROUP
  2. :没有参数,设置用户组密码
  3. -a : 增加用户到用户组中
  4. -d :从用户组中删除用户
  5. -r :删除用户组的密码
  6. -M :设置用户组成员(多成员)
  7. -A :设置用户组管理员(列表)

例子:

gpasswd -a rickyzhang mysql

在mysql用户组中添加rickyzhang用户

用户帐号相关系统文件详解

1./etc/passwd

/etc/passwd文件是用户管理工作涉及的最重要的一个文件,Linux系统中的每个用户都在/etc/passwd文件中有一个对应的记录行,它记录了这个用户的一些基本属性,这个文件对所有用户都是可读的

/etc/passwd中一行记录对应着一个用户,每行记录又被冒号(:)分隔为7个字段,其格式和具体含义如下:

        用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

对与登录shell,说明一下,用户登录后,要启动一个进程,负责将用户的操作传给内核,这个进程是用户登录到系统后运行的命令解释器或某个特定的程序,即ShellShell是用户与Linux系统之间的接口。Linux的Shell有许多种,每种都有不同的特点。常用的有sh(Bourne Shell), csh(C Shell), ksh(Korn Shell), tcsh(TENEX/TOPS-20 type C Shell), bash(Bourne Again Shell)等。系统管理员可以根据系统情况和用户习惯为用户指定某个Shell。如果不指定Shell,那么系统使用sh为默认的登录Shell,即这个字段的值为/bin/sh

用户的登录Shell也可以指定为某个特定的程序(此程序不是一个命令解释器)。利用这一特点,我们可以限制用户只能运行指定的应用程序,在该应用程序运行结束后,用户就自动退出了系统。有些Linux 系统要求只有那些在系统中登记了的程序才能出现在这个字段中。

系统中有一类用户称为伪用户(psuedo users)这些用户在/etc/passwd文件中也占有一条记录,但是不能登录,因为它们的登录Shell为空。它们的存在主要是方便系统管理,满足相应的系统进程对文件属主的要求。常见的伪用户如下所示。

  1. 伪用户              含     义
  2. bin                   拥有可执行的用户命令文件
  3. sys                   拥有系统文件
  4. adm                   拥有帐户文件
  5. uucp                  UUCP使用
  6. lp                    lp或lpd子系统使用
  7. nobody                NFS使用

2./etc/shadow

/etc/shadow中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生。它的文件格式与/etc/passwd类似,由若干个字段组成,字段之间用“:”隔开。这些字段是:

  1. 登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

3./etc/group

用户组的所有信息都存放在/etc/group文件中

将用户分组是Linux 系统中对用户进行管理及控制访问权限的一种手段。每个用户都属于某个用户组;一个组中可以有多个用户,一个用户也可以属于不同的组。当一个用户同时是多个组中的成员时,在/etc/passwd文件中记录的是用户所属的主组,也就是登录时所属的默认组,而其他组称为附加组。用户要访问属于附加组的文件时,必须首先使用newgrp命令使自己成为所要访问的组中的成员。用户组的所有信息都存放在/etc/group文件中。此文件的格式也类似于/etc/passwd文件,由冒号(:)隔开若干个字段,这些字段有:

组名:口令:组标识号:组内用户列表

“组内用户列表”是属于这个组的所有用户的列表,不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组

Linux用户和用户组管理总结的更多相关文章

  1. Linux 用户和用户组管理

    Linux 用户和用户组管理 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统. 用户的账号一方面可以帮助 ...

  2. 八、Linux 用户和用户组管理

    Linux 用户和用户组管理 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统. 用户的账号一方面可以帮助 ...

  3. linux用户和用户组管理详解

    Linux 用户和用户组管理 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统. 用户的账号一方面可以帮助 ...

  4. Linux 用户和用户组管理(useradd userdel groupadd groupdel)

    Linux 用户和用户组管理 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统. Linux系统用户账户的 ...

  5. Linux 笔记 - 第五章 Linux 用户与用户组管理

    博客地址:http://www.moonxy.com Linux 是一个多用户的操作系统,在日常的使用中,从安全角度考虑,应该尽量避免直接使用 root 用户登录,而使用普通用户. 1. 关于用户 u ...

  6. Linux系列教程(十五)——Linux用户和用户组管理之用户管理命令

    上篇博客我们介绍了用户管理的相关配置文件,包括用户信息文件/etc/passwd,用户密码文件/etc/shadow:然后介绍了用户组信息文件/etc/group,用户组密码文件/etc/gshado ...

  7. Linux用户及用户组管理

    Linux是个优秀的多用户多任务操作系统. 掌握Linux的用户/用户组管理是基本及必备技能之一. 简单做下总结. 无论采用图形界面的用户管理设置,还是终端的管理方式,最终目的都是对系统的用户/用户组 ...

  8. Linux系列教程(十四)——Linux用户和用户组管理之相关配置文件

    前面我们介绍了软件包管理.首先介绍了rpm包的相关命令,但是我们发现直接安装rpm包会被其依赖性折磨的不行,然后解决办法是yum在线管理,通过yum命令安装rpm包能自动帮助我们解决依赖性.最后又介绍 ...

  9. Linux用户和用户组管理

    该内容来摘自于鸟叔的Linux私房菜. Linux的每个用户包含两个ID,一个是用户ID,一个是用户组ID.系统会根据/etc/passwd和/etc/group的设定来决定用户的访问权限.下面对用户 ...

随机推荐

  1. spring-jms

    http://haohaoxuexi.iteye.com/blog/1893038 理解PooledConnectionFactory.CachingConnectionFactory和SingleC ...

  2. 用C#实现的两个试验编程(txt文本数据的导入,和数据导出为TXT)

    1. 文件的存取 数据文件1.txt为学生成绩统计表,要对它做一个统计工作.文件中若一个人有多个成绩,则取他们的最好成绩来统计,然后计算全班平均成绩:统计0-69.70-79.80-89.90-100 ...

  3. 2016青岛网络赛 The Best Path

    The Best Path Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Pr ...

  4. 一个mapreduce得到需要计算单词概率的基础数据

    第一步,先计算需要计算概率的词频,单词种类数,类别单词总数(类别均是按照文件夹名区分)(基础数据以及分词了,每个单词一行,以及预处理好) package org.lukey.hadoop.classi ...

  5. zepto学习之路--源代码提取

    最近在看zepto的源代码,把一些有用的函数摘出来,看看zepto是怎么实现的,自己做的时候也可以用.说实话,zepto的实现有一些看起来还是很晦涩的,可能是自己的水平不够,看不透作者的真正的意图. ...

  6. PAT (Advanced Level) 1025. PAT Ranking (25)

    简单题. #include<iostream> #include<cstring> #include<cmath> #include<algorithm> ...

  7. unity3d之在屏幕上画线

    如何在屏幕上画线,简单的代码如下: using UnityEngine; public class Test : MonoBehaviour { void OnGUI() { GL.LoadOrtho ...

  8. Ubuntu安装MongoDB和PHP扩展

    MongoDB是一个可伸缩的,高性能的开源NoSQL 文档数据库.主要用C++开发完成.面向文档存储,全索引支持,可复制和高可用性,自动分片等特征.其在非关系型数据库中是功能最丰富,最像关系型数据库 ...

  9. (简单) POJ 2387 Til the Cows Come Home,Dijkstra。

    Description Bessie is out in the field and wants to get back to the barn to get as much sleep as pos ...

  10. html页面头部里的meta

    作者:zccst html中的http-equiv属性应用详解 一.简介 http-equiv 属性 -- HTTP协议的响应头报文 此属性出现在meta标签中 此属性用于代替name,HTTP服务器 ...