用户和组群账户管理

用户的 角色是通过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. JS中函数的length以及arguments的length如何得到?

    function a(x,y){} a.length // 2 function b(x,y=2,z){} b.length // 1 function c(x,...args){} c.length ...

  2. GPIO原理及配制方法

    GPIO原理及配制方法 引用地址: ARM SOC芯片的GPIO结构示意图 @@@ GPIO的八种模式 1,输入浮空模式 2,输入上拉模式 3,输入下拉模式 4,模拟输入模式 5,开漏输出模式 6,开 ...

  3. color-color diagram data

  4. 【Windows】IP 地址变为 169.254.x.x 的解决方法

    最近每次开机 IP 地址都会自动跳至 169.254.x.x 段,连接不上网络,设置了固定 IP 也会跳段.因此找到以下解决方法: 『IP地址变成169.254.x.x 和固定ip两个IP地址的解决办 ...

  5. SecureCRT保存日志

    1.打开Options->Session Options...,选择LogFile 2.Log file name格式 %H_%S_%Y%M%D-%h%m%s.log 参数说明: %H---主机 ...

  6. Beginning IOS 7 Development Exploring the IOS SDK - Handling Basic Interface Fun

    Beginning IOS 7 Development Exploring the IOS SDK 目前使用的是Objective-C,用这本书,简单记录一下 第一章,图书简介 第二章,简要介绍使用x ...

  7. c#怎样删除指定文件名的文件

    我有一个文件夹,里面有6个文件,我现在要删除字母B开头的三个文件,只需要剩下A开头的文件即可用C#怎样操作??? foreach (string d in Directory.GetFileSyste ...

  8. css 动画基础配置说明

    span { animation: roll 0.8s; animation-fill-mode: forwards; // 执行一次,  infinity // 执行多次 animation-tim ...

  9. Carthage 使用介绍

    1.安装 Carthage 安装 brew install carthage 检测当前版本 carthage version 升级至最新版本 brew upgrade carthage 2.如果更新出 ...

  10. 服务器部署 halo博客项目

    2020-8-9 13:45:14 有个进阶方法!  如果静态资源加载缓慢如图片,头像  则用CDN加速  (确实很秀!) https://cdn.jsdelivr.net/gh/你的用户名/你的仓库 ...