用户和组群账户管理

用户的 角色是通过UID(用户ID号)来标识的,每个用户的UID都是不同的。

在Linux系统中有三大类用户,分别是root 用户、系统用户和普通用户。

root用户UID为0。root用户的权限是最高的

在系统中的每个文件、目录和进程都归属于某一个用户,没有用户许可,其它普通用户无法进行操作的,但对root用户除外。

系统用户也称为虚拟用户、伪用户或假用户,这类用户不具有登录Linux系统的能力, 但却是系统运行不可缺少的用户,比如bin、 daemon、adm、ftp、mail等,这类用户都是系统自身拥有的。系统用户的UID为 1~999。

这类用户能登录系统,在Linux系统上进行普通操作,能操作自己目录的内容,其使用系统的权限受限,这类用户都是系统管理员创建的。普通用户的UID为1000~60000。

/etc/passwd

系统识别用户的重要文件,linux中所有的用户都记录在该文件中

系统首先会检查/etc/passwd文件,看是否有zhangsan这个账户,然后确定用户zhangsan的UID,通过UID来确认用户的身份

如果存在则读取/etc/shadow文件中所对应的密码。如果密码核实无误则登录系统,读取用户的配置文件。

任何用户都可以读取/etc/passwd文件内容,在/etc/passwd文件中,每一行表示的是一个用户账户的信息,一行有7个段位,每个段位用“:”分隔。zhangsan:x:1000:1000:张三:/home/zhangsan:/bin/bash

在系统中每一位用户的UID值都是惟一的,更确切地说每一位用户都要对应一个惟一的UID

Linux的发行版本都会预留一定的UID 给系统虚拟用户使用,比如ftp、nobody、adm、 bin以及shutdown等用户账户。

/etc/shadow文件是/etc/passwd的影子文件,这个文件并不是由/etc/passwd文件产生,这两个文件应该是对应互补的。/etc/shadow文件内容包括用户及被加密的密码以及其它/etc/passwd不能包括的信息,比如用户账户的有效期限等。

/etc/shadow文件只有root用可以读取和操作,文件的权限不能随便更改为其它用户可读,这样做是非常危险的。如果发现这个文件的权限变成了其它组群或用户可读了,要进行检查,以防系统安全问题的发生。

/etc/shadow文件的内容包括9个段位,每个段位 之间用“:”分隔。 zhangsan:$6$E/xvWMmh$rhYLQwwffEqIudVLFzMlvkb0iN4.0Ol uk6H.UovEYN0/99dVoHXcaCNGZZkFY1S3QHYgm7e6JPzEew6ybmN 4e0:16364:0:99999:7:::

http://c.biancheng.net/view/840.html

用户账户设置

创建用户账户就是在系统中创建一个新账户,为新账户分配用户UID、组群、主目录 和登录Shell等资源,新创建的用户账户默认是被锁定的,无法使用,需要使用 passwd命令设置密码以后才能使用。

创建用户在/etc/passwd中增加一条记录,同时更新/etc/shadow和/etc/group文件

useradd命令

useradd zhangsan

[root@rhel ~]# cat /etc/passwd|grep zhangsan zhangsan:x:1000:1000::/home/zhangsan:/bin/bash

创建用户moon,并设置该用户UID为1510。

[root@rhel ~]# useradd -u 1010 moon

[root@rhel ~]# cat /etc/passwd|grep moon moon:x:1010:1010::/home/moon:/bin/bash

创建用户newuser,并设置该用户主目录为/home/www

[root@rhel ~]# useradd -d /home/www newuser

[root@rhel ~]# cat /etc/passwd|grep newuser newuser:x:1003:1003::/home/www:/bin/bash //查看/etc/passwd文件,可以看到用户newuser的主目录是/home/www

创建用户pp,并指定该用户是属于组群root的成员。

[root@rhel ~]# useradd -g root pp

 id pp

使用id命令,可以看到用户pp的主要组群是root

创建用户abc,并设置该用户的Shell类型是/bin/ksh。 [root@rhel ~]# useradd -s /bin/ksh abc

修改用户账户 

使用usermod命令可以更改用户的Shell类型、所属的组群、用户密码的有效期,还能更改用户的登录名。

修改用户zhangsan的主目录为/home/kkk,并手动创建/home/kkk目录。

[root@rhel ~]# usermod -d /home/kkk zhangsan

# mkdir /home/kkk //必须使用mkdir命令创建/home/kkk目录,这样用户zhangsan 才能使用该主目录

修改用户wangwu的主目录为/home/opop,并自动创建 /home/opop目录。

# usermod -d /home/opop -m wangwu

修改用户wangwu的登录名为zhaoliu。

[root@rhel ~]# usermod -l zhaoliu wangwu

修改用户zhangsan的用户名全称为张三。

[root@rhel ~]# usermod -c 张三 zhangsan

修改用户zhangsan在密码过期后20天就禁用该账户。

[root@rhel ~]# usermod -f 20 zhangsan

修改用户sun所属的组群为root,该组群必须事先存在。

[root@rhel ~]# usermod -g root sun

锁住用户zhangsan密码,使密码无效。

[root@rhel ~]# usermod -L zhangsan

# passwd -S zhangsan zhangsan LK 2012-06-02 0 99999 7 20 (密码已被锁定。)

解除用户zhangsan密码锁住。

[root@rhel ~]# usermod -U zhangsan

修改用户zhangsan账户的过期日期是2012年12月12号。

# usermod -e 12/12/2012 zhangsan

# cat /etc/shadow|grep zhangsan

修改用户zhangsan的Shell类型为/bin/ksh

# usermod -s /bin/ksh zhangsan

删除用户账户 userdel

使用userdel命令删除用户账户并不会删除该用户主目录

# userdel -r moon//同时将其主目录删除

本节主要讲述Linux系统下的组群账户分类 以及与组群账户有关的配置文件 /etc/group和/etc/gshadow。

两种组群分类方法

1、

私有组群:创建新用户,没有指定组群,创建一个与用户同名的组群,该私有组群只包含该用户

标准组群:普通组群,包含多个用户,在创建用户时应指定其在某个组群

2、

主要组群:一个账户属于多个组群时,登陆后所属的组群是主要组群,一个用户只能属于一个主要组群

次要组群:附加组群,一个用户可以属于多个附加组群

/etc/group:

/etc/group文件是组群的配置文件,内容包括用户和组群, 并且能显示出用户是归属哪个组群或哪几个组群。一个用户可以归属一个或多个不同的组群,同一组群的用户之间 具有相似的特征。比如把某一用户加入到root组群,那么 这个用户就可以浏览root用户主目录的文件,如果root用户把某个文件的读写执行权限开放,root组群的所有用户都可以修改此文件;如果是可执行的文件,root组群的用户也是可以执行的。

/etc/group文件的内容包括组群名、组群密码、GID及该 组群所包含的用户,每个组群一条记录,一行有4个段位, 每个段位用“:”分隔。

组群GID和UID类似,是一个从0开始的正整数,GID为0的组群是root组群。Linux系 统会预留GID号1~999给系统虚拟组群使用, 创建的新组群GID是从1000开始的,查看 系统创建组群默认的GID范围应该查看 /etc/login.defs中的GID_MIN和GID_MAX 值,可以使用以下命令查看

/etc/gshadow

/etc/gshadow是/etc/group的加密文件,组群密码就是存放在这个文件中。

/etc/gshadow文件中每个组群都有一条记录。一 行有4个段位,每个段位用“:”分隔。

使用groupadd命令可以在Linux系统中创建 组群账户。

 创建名为china的组群

[root@rhel ~]# groupadd china

[root@rhel ~]# cat /etc/group|grep china china:x:1006: //查看文件/etc/group,可以看到已经创建了组群china,组群GID是1006

创建名为ou的组群,并且设置该组群GID为1800。

[root@rhel ~]# groupadd -g 1800 ou

[root@rhel ~]# cat /etc/group|grep ou ou:x:1800: //查看文件/etc/group,可以看到已经创建了组群ou,组群GID是1800

创建名为chinese的系统组群

[root@rhel ~]# groupadd -r chinese

[root@rhel ~]# cat /etc/group|grep chinese chinese:x:982: //查看/etc/group文件,可以看到系统组群chinese的GID是982,是小于 1000的

使用groupmod命令可以在Linux系统中修 改组群账户,比如组群名称、GID等

将组群ou的GID修改为1900。

[root@rhel ~]# groupmod -g 1900 ou

[root@rhel ~]# cat /etc/group|grep ou ou:x:1900: //查看文件/etc/group,可以看到组群ou的GID已经更改为1900

修改组群ou的新组群名称为shanghai。

[root@rhel ~]# groupmod -n shanghai ou

[root@rhel ~]# cat /etc/group|grep shanghai shanghai:x:1900: //查看/etc/group文件,可以通过原来的GID看到组群ou的名称 已经更改为shanghai

使用groupdel命令可以在Linux系统中删除组群账户。如果该组群中仍旧包括某些用 户,那么必须先删除这些用户后,才能删 除组群。

普通用户只 能更改自己的用户密码,root用户可以设置或修改任何用户的密码

passwd -l/-S/-u/-d

gpasswd 设置一个组群的组群密码,或者是在组群 中添加、删除用户。

使用su命令可以切换到其它用户账户进行 登录。如果su命令不加任何选项,默认为 切换到root用户,并且不改变Shell环境。

让用户账户以另一个组群的身份进行登录。 newgrp命令是以相同的账户名,不同的组群身份 登录系统。如果要使用newgrp命令切换组群,用 户必须是该组群的用户,否则将无法登录指定的 组群。单一用户如果要同时隶属多个组群,需要 利用交替用户的设置。如果不指定组群名称,则 newgrp命令会登录该用户名称的预设组群

使用groups命令可以显示指定用户账户的 组群成员身份。

使用id命令可以显示用户的UID以及该用户 所属组群的GID。

linux基础命令4的更多相关文章

  1. 第四节,Linux基础命令

    第四节,Linux基础命令 命令是系统操作员对系统传入的指令,传入指令后回车,系统接收到指令做出相应的行为 1.查看用户位于系统什么位置 [pmd]检查操作用户位于系统的什么位置 命令         ...

  2. 【Python之路】第一篇--Linux基础命令

    pwd 命令 查看”当前工作目录“的完整路径 pwd -P # 显示出实际路径,而非使用连接(link)路径:pwd显示的是连接路径 .   表示当前目录 ..  表示上级目录 /  表示根目录 ls ...

  3. linux基础命令学习笔记(二)

    linux基础命令学习笔记(二) 1.kill :终止进程  kill pid (唯一标示一个进程) kill -9  强制终止  kill -15 命令未结束不能终止 # ps aux 查看所有进程 ...

  4. 2.Linux基础命令

    linux内一切皆文件,没有文件夹只有目录,目录也是一种文件 1.一些常用按键: 将鼠标的光标从虚拟机里切换回来:Ctrl+Alt 拖动Ubuntu内的对话框:Alt键+鼠标左键拖动 清屏:Ctrl+ ...

  5. linux基础命令一

    linux基础命令一 1.date命令 date命令介绍:显示或者设置系统日期 date命令的语法: 显示日期:date  [options...]  [+FORMAT] FORMAT:为显示日期的格 ...

  6. linux基础命令:

    linux基础命令: 显示 echo 输出我写的内容 ls 查看当前目录的文件 pwd 查看当前目录 ifconfig 查看网卡信息 grep 过滤 -v 取反 -n man 查看命令的帮助信息 md ...

  7. 常用的linux基础命令

    常用的linux基础命令 1.ls 显示目录属性 -l:(也可以简写成ll),列表显示权限等属性 -a:显示所有文件包括隐藏文件等 -d:只列出目录本身 2.chgrp 改变档案所属群组 eg:chg ...

  8. Linux基础命令-文件与目录

    Linux基础命令-文件与目录 参考:<鸟哥linux私房菜>五-七章,17/12/5复习,18/01/15复习 文件权限 rwx421:用户,用户组,其他 umask查看默认权限:000 ...

  9. Linux基础命令回顾

    前言 说到linux基础命令,网上一搜一箩筐,想学也有很多教程,如果你不幸看到此篇文章,想看就认真看完,毕竟你点进来了不是嘛? 我每次写的文章都是为了分享自己的学习成果或重要知识点,希望能帮助更多的人 ...

  10. linux常用命令大全(linux基础命令+命令备忘录+面试复习)

    linux常用命令大全(linux基础命令+命令备忘录+面试复习)-----https://www.cnblogs.com/caozy/p/9261224.html

随机推荐

  1. 230222 Radiated Immunity Pre-compliance Test

    Hello everyone, welcome to Mach1 Design EMC channel. Last time we talked about how to set up a radia ...

  2. 将本地文件推送到Gitee仓库

    完整的步骤 1.在gitee中创建仓库 2.下载.安装git 3.推送文件到gitee 推送文件到gitee 1.在要上传的文件夹空白处,点击右键,选择 git bash here 2.输入 git ...

  3. Elasticsearch Java client使用

    前言 Elasticsearch官方列出了好几个客户端,如下所示 Java Client Java Rest Client(Java High Level REST Client) Java Tran ...

  4. Vue中使用model属性

    model属性接收两个参数 类型:{ prop?: string, event?: string } prop 也就是调用该组件的父组件中使用v-model指令绑定的属性 event 对应的是修改pr ...

  5. Oracle的Pctfree

    1.创建一张表 create table student( student_id number ); 但是在pl/sql中查看却是以下的建表语句: -- Create table create tab ...

  6. drush use dev.mentor.com | expecting statement

    在多站点的环境中, 不清楚在哪个目录下运行drush cc all, 这时可以运行 drush use dev.mentor.com然后还发现一个很搞笑的事情, 在一个文件的末尾一直现实红色报错符号, ...

  7. 几十行代码实现简易版koa~

    application.js const http = require("http")// 洋葱模型 function compose(middleware){ return fu ...

  8. 文件校验和(checksum或Hash)计算工具

    Windows操作系统 1.certutil---windows自带的certutil工具 用法:certutil -hashfile pathToFileToCheck  [HashAlgorith ...

  9. 网络很慢mtu设置

    [root@db-***** etc]# cat /etc/rc.local #!/bin/sh # # This script will be executed *after* all the ot ...

  10. HDLbits——Lfsr5

    Build this LFSR. The reset should reset the LFSR to 1 module top_module( input clk, input reset, // ...