Linux基础系列(四)系统用户和组管理

Linux系统是一个多用户、多任务的操作系统,任何一个想要使用系统资源的用户,都必须向系统管理员申请一个账号,并授予相应的权限给到这个账号后才能进入系统。用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。

每个用户账号都拥有一个惟一的用户名和密码。用户只有在提供了正确的用户名和密码之后,才能够进入系统和自己的主目录。(这就类似于我们向银行申请个人账号,银行会为你创建一个个人账号和密码,并只授予你部分业务有相应的权限,如存钱、转帐,银行可以通过后台跟踪你的账号信息,用户享有相应的安全性保护)。

用户和组的UID的定义说明

Linux用户:

管理员:UID为“0”;

普通用户: UID 为“1-65535”

Linux组:

系统组:CentOS 6的UID为“1-499”,CentOS 7的UID为“1-999”

普通组:CentOS 6的UID为“500+”,CentOS 7的UID为“1000+”

简单的理解为用户名和它对应的UID、用户组和组UID他们都是唯一,比如我们要查看一下Root用户的用户属于,可以通过直接查询用户名、或者是UID,如下:

[[email protected] ~]# id root
uid=0(root) gid=0(root) groups=0(root)
[[email protected] ~]# id 0
uid=0(root) gid=0(root) groups=0(root)

Linux用户和组相关的配置文件

/etc/passwd:用户及其属性信息(名称、UID、基本组ID等等);

[[email protected] ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash

意义:用户名:密码:UID:GID:附加组:主目录:默认shell

/etc/group:组及其属性信息;

[[email protected] ~]# cat /etc/group
gentoo:x:2201:mandriva

意义:组名:组密码:GID:以当前组为附加组的用户列表(分隔符为逗号)

/etc/shadow:用户密码及其相关属性;

[[email protected] ~]# cat /etc/shadow
root:$1$6usIQoRH$544LSxLOucbxu6ONNAHea.:16787:0:99999:7:::

意义:用户名:加密了的密码:最近一次更改密码的日期:密码的最小使用期限:最大密码使用期限:密码警告时间段:密码禁用期:账户过期日期:保留字段

/etc/gshadow:组密码及其相关属性;

用户和组相关的管理命令

用户创建命令:useradd

语法格式:
useradd [options] LOGIN #useradd 选项 用户名

选项包含如下:

-u UID: 用户号(身份标识),[UID_MIN,UID_MAX],定义在/etc/login.defs
-g GID:指明用户所属基本组,可为组名,也可以GID;
-c "COMMENT":用户的注释信息;
-d: 以指定的路径为家目录(主目录),如果此目录不存在,则同时使用-m选项,可以创建目录;
-s SHELL: 指明用户的默认登录shell程序,可用列表在/etc/shells文件中;
-G GROUP1: 为用户指明附加组;组必须事先存在;
-r: 创建系统用户:

组创建命令:groupadd

语法格式:
groupadd [OPTION]... group_name #groupadd 选项 用户组

选项包含如下:

-g GID: 指明GID号;[GID_MIN,GID_MAX]
-r: 创建系统用户:(CentOS 6 : ID<500;  CentOS 7 : ID<10)

例如:

1、增添一个新组名为group1

#groudadd group1

2、增添一个新组名为group2,用户的UID为120

#groupadd –g 120 group2

组删除命令:groupdel

groupdel [OPTION]... group_name  #group 选项 组名

例如:[[email protected] ~]# groupdel Linux

例如:创建用户Jim,登录shell为/bin/csh,附加组为Admin,注释信息为"Gentoo Distribution",家目录为/usr/jim

[[email protected] ~]# groupadd Admin
[[email protected] ~]# useradd -s /bin/csh -GAdmin -c "Gentoo Distribution" -d /usr/jim -m jim

删除用户命令: userdel

命令语法:userdel [OPTION]... login  #userdel 选项 用户名

-r:删除用户家目录;

例如:[[email protected] ~]# userdel -r jim #删除用户jim以及家目录

切换用户或以其他用户身份执行命令:su

语法格式:su [options...] [-] [user [args...]]

例如:

[[email protected] ~]# su jimjimlv  #切换至用户jimjimlv
[[email protected] root]$ ls  #已切换至用户jimjimlv,尝试运行ls命令 
ls: cannot open directory .: Permissiondenied  #此时报错,原因是当前目录仍在root下,而用户jimjimlv是没有权限访问root用户目录下的文件,
[[email protected] root]$ su – root  #切换为root用户 
Password:
Last login: Tue Jan  5 19:22:53 PST 2016 on pts/0
[[email protected]~]# su – jimjimlv   #切换至用户jimjimlv,这次我们使用“-”选项       
Last login: Tue Jan  5 19:23:04 PST 2016 on pts/0
[[email protected] ~]$ ls  #成功切换至用户jimjimlv,当前目录也为用户jimjimlv的家目录,
Desktop Documents  Downloads  game.sh Music  Pictures  playground Public  Templates  Videos
[[email protected] ~]$ su - root
Password:
Last login: Tue Jan  5 19:23:37 PST 2016 on pts/0
[[email protected] ~]# su jimjimlv
[[email protected] root]$ su - root -c ls #以root账号执行ls命令
Password:
anaconda-ks.cfg  config.sh passWD  Passwd

总结:

su UserName:非登录式切换,即不会读取目标用户的配置文件;

su - UserName:登录式切换,会读取目标用户的配置文件;完全切换;

换个身份执行命令:su [-] UserName -c ‘COMMAND‘

备注:root su至其他用户无须密码;非root用户切换时需要密码;

用户属性修改:usermod

语法格式:usermod [OPTION] login  #usermod 选项 用户名

-u UID: 新UID
-g GID: 新基本组
-G:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项,表示append;
-s SHELL:新的默认SHELL;
-c ‘COMMENT‘:新的注释信息;
-d HOME: 新的家目录;原有家目录中的文件不会同时移动至新的家目录;若要移动,则同时使用-m选项;
-l login_name: 新的名字;
-L: lock指定用户
-U: unlock指定用户
-e YYYY-MM-DD: 指明用户账号过期日期;
-f INACTIVE: 设定非活动期限

例如:修改用户jimjimlv的shell 为/bin/zch,家目录为/home/jimjimlv, 注释信息为“Revies Deitribution”,用户组为“Linux”

[[email protected] home]# usermod -s /bin/zch-d /home/jimjimlv -m -c "Revies Distribution" -G Linux jimjimlv

用户密码管理:passwd

用户管理的一项重要内容是用户密码的管理。用户账号刚创建时没有密码,但是被系统锁定,无法使用,必须为其指定密码后才可以使用,即使是指定空密码。

指定和修改用户密码的Shell命令是passwd。超级用户可以为自己和其他用户指定密码,普通用户只能用它修改自己的密码。命令的格式为:

Passwd  [OPTIONS] UserName  passwd 选项 用户名
-l: 锁定指定用户,即禁用账号
-u: 解锁指定用户
-d:使账号无密码
-n mindays: 指定最短使用期限
-x maxdays:最大使用期限
-w warndays:提前多少天开始警告
-i inactivedays:非活动期限;
-f: 强迫用户下次登录时修改密码

密码的复杂性策略:

1、使用数字、大写字母、小写字母及特殊字符中至少3种;

2、足够长;

3、使用随机密码;

4、定期更换;不要使用最近曾经使用过的密码;

例如:

修改用户Rain的登录密码

[[email protected] ~]# passwd Rain
Changing password for user Rain.
New password:
Retype new password:
passwd: all authentication tokens updatedsuccessfully.

只允许管理员修改密码

[[email protected] ~]$ passwd jimjimlv
passwd: Only root can specify a user name.
[[email protected] ~]$ passwd Rain
passwd: Only root can specify a user name.

使用选项“-l”锁定用户账号,使其不能登录

[[email protected] ~]# passwd -l Rain
Locking password for user Rain.
passwd: Success
时间: 2024-10-21 01:49:20

Linux基础系列(四)系统用户和组管理的相关文章

linux系统 用户和组管理类命令的使用方法

列出当前系统上所有已经登录的用户的用户名,注意:同一用户登录多次,则只显示一次即可. [[email protected] ~]# who    #显示当前用户登录信息 root    tty1         2016-10-05 15:58 root    pts/0        2016-10-05 16:07(192.168.0.17) [[email protected] ~]# who | cut -d' ' -f1    #取出当前用户登录信息的用户名 root root [[e

linux基础 用户与组管理

1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可. ①通过who或者w命令,可以查询当前登入至系统的用户信息. ②cut命令通过指定特定字符来分割行信息,如空格符, -d" " ,-f 显示分割后指定的段. ③sort用来对结果排序,-u排序后去重 [[email protected] ~]$ who | cut -d" " -f1 | sort -u allen root 2.取出当前系统上被用户当作其默认shell的最多的

玩转linux第四天之用户及组管理概念(一)

1    前言 本文档主要介绍用户及组管理类相关概念,并提供相应案例解释其含义. 学习这些基础命令是一个Linux爱好者需要具备的首要条件,让小编带领你们进入Linux的世界看看它的一颦一笑. 读者对象 本文档(本指南)主要适用于以下人员: Linux爱好者 2     环境简介 项目 配置 硬件型号 Tinkpad T440P CPU I5-4210 内存 4G 操作系统 Windows 8.1 虚拟系统 Vmware workstation 11 CPU 1Core 内存 1G 操作系统 C

玩转linux第四天之用户及组管理类相关命令(二)

1    前言 本文档主要介绍用户及组管理类相关命令如:useradd .usermod.passwd.userdel.groupadd.groupmod\gpasswd.groupdel.hage,chsh,chfn,.id,w,who,whoami.wck,gourpck.su,并提供相应案例解释其含义. 学习这些基础命令是一个Linux爱好者需要具备的首要条件,让小编带领你们进入Linux的世界看看它的一颦一笑. 读者对象 本文档(本指南)主要适用于以下人员: Linux爱好者 2    

Linux系统用户、组和权限及管理

初学Linux,现将对用户.组和权限及管理做了一些整理,希望大家相互学习! 用户: 即在系统内将有限的资源在多个使用者之间进行分配的一个系统组件: 用户分类:Linux环境中用户一般分为管理员和普通用户: 管理员(root)是系统中的超级用户,被授予对系统资源所有的访问权限,可以对其它其它用户及组进行管理: 普通用户又分为系统用户和登录用户: 系统用户:仅用于运行服务程序,保障系统正常运行: 登录用户:系统资源的正常使用者,访问资源的权限需要Root管理指定: 用户ID(User ID UID)

Linux基础之用户和组管理

Linux用户和组管理 安装上下文: 进程以其发起者的身份运行: 进程对文件的访问权限,取决于发起此进程的用户的权限: 系统用户:为了能够让那后台进程或服务类进程以非管理员的身份运行,通常需要为此创建多个普通用户:这类用户从不用登录系统: groupadd命令:添加组 groupadd [选项] group_name -g GID:指定GID:默认是上一个组的GID+1: -r: 创建系统组: groupmod命令:修改组属性 groupmod [选项] GROUP -g GID:修改GID:

笔记-linux系统用户与组

前言 为什么创建用户和组 用户和组的分类 用户和组主要配置文件 用户管理 组管理 前言 资源分派的3A认证 Authentication:认证   确认身份 Authorization:授权    给什么样的权限 Accouting|Audition:审计  记录行为 为什么创建用户和组 用户 在linux系统中认证是用用户来验证. 用户名+口令=令牌 有了不同等级的令牌就可以出入不同的关卡. 在系统中每一个用户都有自己的一个id号·这个id号是系统用来标识用户的主要凭证 组group 基于某种

Linux系统用户和组练习题

1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可. 2.取出最后登录到当前系统的用户的相关信息. 3.取出当前系统上被用户当作其默认shell的最多的那个shell. 4.将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中. 5.取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分. 6.列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字转换为大写后保存

Linux基础系列-Day2

基础命令(文件内容管理) 1.cat:在当前终端显示文本文件内容 格式:cat [文件路径] -n 从1开始对所有输出的行数编号 -b 和-n相似,只不过对于空白行不编号:2.head:从文件内容开头输出,默认头部10行 格式:head [文件路径] -c N 输出文件头部的N(N为整数)个字节内容 -n N 输出文件头部的N(N为整数)行的内容 3.tail:从文件尾部内容输出,默认尾部10行 格式:tail [文件路径] -c N 输出文件尾部的N(N为整数)个字节内容 -n N 输出文件的