1、用户账户概述-AAA介绍
AAA指的是Authentication、Authorization、Accounting,即认证、授权和审计。
?认证:验证用户是否可以获得权限,是3A的第一步,即验证身份;
?授权:授权用户可以使用那些服务或资源,即身份验证成功后,赋予这个身份相应的权限;
?审计:记录用户的操作情况,在Linux中,日志就是审计的一种手段。
Linux的用户和组管理可以说是基于AAA进行的,首先用户登录输入用户名密码,就是认证的过程;其次,在用户登录成功后,所
拥有的权限各不相同,这就是授权;最后,用户的操作历史会记录在日志中,这是审计。
2、用户和用户组的关系
用户和用户组的对应关系有以下 4 种:
1).一对一:一个用户可以存在一个组中,是组中的唯一成员;
2).一对多:一个用户可以存在多个用户组中,此用户具有这多个组的共同权限;
3).多对一:多个用户可以存在一个组中,这些用户具有和组相同的权限;
4).多对多:多个用户可以存在多个组中,也就是以上 3 种关系的扩展。
3、用户和用户组的配置文件
用户和组的信息存放在下面三个文件中
/etc/passwd 存储用户账户信息
/etc/shadow 存储用户密码信息
/etc/group 存储用户组信息
4、用户的配置文件
/etc/passwd:存储用户账户信息
存储格式为,name:password:UID:GID:comment:directory:shell
?name:用户登录名;
?password:用户口令,用占位符x表示;
?UID:用户ID,用户登录时,系统根据UID,而非用户名来识别用户;
?GID:用户所属的主组ID;
?comment:用户的注释信息;
?directory:用户家目录的绝对路径;
?shell:用户的默认shell。
5、用户密码的配置文件
存储格式为
登录名:$加密算法$salt$加密了的密码:最后一次更改密码的日期:密码最小期限:密码最大期限:密码警告时间段:密码禁用期:账户过期日期:保留字段
6、用户和用户组ID
Linux系统使用UID(User ID)来标识不同用户。
UID是16bits的二进制数字,所以换算成十进制,UID的范围是0~65535,Linux根据用户类别,对UID划分做了规定:
?管理员UID为0
Tips:当用户UID为0时,该用户就是管理员,所以不只root才是管理员,可以手动指定,但不建议。
?普通用户(1~65535)UID:
?0–99 系统使用
?100–499 特殊的系统用户使用(比如:services and programs)
?SLES 9中, 普通用户的UID从1000开始
7、用户组的配置文件
存储格式为,group_name:password:GID:user_list
?group_name:组名;
?password:用户组的口令,用占位符x表示,一般Linux用户组都没有口令;
?GID:组ID;
?user_list:用户列表,注意,这里列出的是以该组为附加组的用户列表,以此组为主组的用户没有列在此处。
8、用户和用户组管理命令
useradd
用于创建的新的系统用户
补充说明:
useradd命令 用于Linux中创建的新的系统用户。useradd可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。
语法:
useradd (选项)
-d/--home-dir <登入目录>: 指定用户登入时的启始目录;
-g/--gid <群组>: 指定用户所属的群组;
-G/--groups <群组>: 指定用户所属的附加群组;
-m/--create-home 自动建立用户的登入目录
-s/--shell <shell>: 指定用户登入后所使用的shell;
-u/--uid <uid>: 指定用户id。
举例:useradd -d /home/idtech -m -g idtech -s /bin/sh -u 1000 idtech
usermod
用于修改用户的基本信息
补充说明
usermod命令 用于修改用户的基本信息。usermod 命令不允许你改变正在线上的使用者帐号名称。当 usermod 命令用来改变user id,必须确认这名user没在电脑上执行任何程序。
语法
usermod(选项)(参数)
选项
-l <帐号名称>:修改用户帐号名称;
-L 锁定用户密码,使密码无效;
-s <shell> : 修改用户登入后所使用的shell;
-u <uid> : 修改用户ID;
-U 解除密码锁定。
举例:usermod -s /bin/bash idtech 或者直接修改/etc/passwd文件idtech用户行配置
userdel
用于删除给定的用户以及与用户相关的文件
补充说明
userdel命令 用于删除给定的用户,以及与用户相关的文件。若不加选项,则仅删除用户帐号,而不删除相关文件。
语法
userdel(选项)(参数)
选项
-f:强制删除用户,即使用户当前已登录;
-r:删除用户的同时,删除与用户相关的所有文件。
举例:userdel idtech
groupadd
用于创建一个新的工作组
语法
groupadd(选项)(参数)
选项
-g:指定新建工作组的id;
groupdel
用于删除指定的工作组
补充说明
groupdel命令 用于删除指定的工作组,本命令要修改的系统文件包括/ect/group和/ect/gshadow。若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群
组。
语法
groupdel(参数)
参数
组:要删除的工作组名。
passwd
用于让用户可以更改自己的密码
补充说明
passwd命令 用于设置用户的认证信息,包括用户密码、密码过期时间等。系统管理者
则能用它管理系统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自
己的密码。
语法
passwd (选项) (参数)
选项
-d:删除密码,仅有系统管理者才能使用;
-l:锁住密码;
-u:解开已上锁的帐号。
9、文件目录权限管理命令
chown
用来变更文件或目录的拥有者或所属群组
补充说明
chown命令 改变某个文件或目录的所有者和所属的组,该命令可以向某个用户授权,使该用户变成指定文件的所有者或者改变文件所属的组。用户可以是用户或者是用户D,用户组可以是组名或组id。文件名可以使由空格分开的文件列表,在文件名中可以包含通配符。只有文件主和超级用户才可以便用该命令。
语法
chown(选项)(参数)
选项
-R或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理;
-v或——version:显示指令执行过程;
举例:chown -R idtech /idtech/idtech
chmod
用来变更文件或目录的权限
主要用途:
通过符号组合的方式更改目标文件或目录的权限。通过八进制数的方式更改目标文件或目录的权限。通过参考文件的权限来更改目标文件或目录的权限。
参数:
mode:八进制数或符号组合。
file:指定要更改权限的一到多个文件。
选项
-R, --recursive:对目录以及目录下的文件递归执行更改权限操作。
举例:
chmod -R 777 /home/idtech
chmod +x /home/idtech
文件目录权限掩码
权限位包括3组,用八进制表示rwxr-xr-x 即为755
su
是最简单的用户切换命令,通过该命令可以实现任何身份的切换。
? 电脑 普通用户切换为 root 用户
? root 用户切换为普通用户
? 普通用户之间的切换。
注意:
? 普通用户之间切换以及普通用户切换至 root 用户,都需要知晓对方的密码,只有正确输入密码,才能实现切换;
? 从 root 用户切换至其他用户,无需知晓对方密码,直接可切换成功。
举例:
su 切换到root用户
su idtech 切换到idtech用户
10、使用其它用户权限执行命令
sudo命令
用法相对su命令,sudo的执行仅需要输入用户自己的密码即可,甚至可以设定不需要输入密码即可执行超级管理员权限的命令。
并非所有人都能够执行sudo,且仅有规范到/etc/sudoers内的用户才能够执行sodu命令。
[sudo 指令 或 sudo -u username 指令]
表示以某用户的环境执行命令, 不加用户表示以root用户的身份执行。
sudo执行流程:
3.1 当用户执行sudo时,系统在/etc/sudoers档案中搜索该使用者是否具有 sudo执行权限;
3.2 若使用者具备可执行的sudo权限后,便让使用者【输入自己的密码】来确认;
3.3 若密码输入成功,便开始执行sudo后续的指令(root执行sudo时无需输入密码);
3.4 若切换者的身份与执行者相同时,也无需输入密码。sudo执行失效为5分钟,超过5分钟需要重新输入密码。
举例:
sudo passwd
sudo rm -rf /
电脑修改root用户密码
使用root用户权限删除根目录
使能普通用户的sudo命令,该项操作就是统信UOS系统中的启用“开发者模式”
visudo与/etc/sudoers
若要非root用户执行root权限,则root需要先使用visudo命令编辑/etc/sudoers文档,让该账号用户全部或部分root权限。
为什么要使用visudo,这是因为/etc/soduers具有语法限定,如果设定错误会造成设置失效,因此才使用visudo命令去编辑,编辑结束离开文件时,系统会去检测文件的语法。
编辑步骤如下:
输入root账户下输入visudo,或非root账户具备sudo权限的账户输入:sudo
visudo。
进入编辑模式,在root行下面新增一行:
root ALL=(ALL) ALL
test ALL=(ALL) ALL
显示当前用户id
打印真实以及有效的用户和所在组的信息
概要
id [OPTION]... [USER]...
主要用途
没有选项时,打印指定用户ID信息。
whoami
打印当前有效的用户ID对应的名称
概要
whoami 电脑 [OPTION]...
主要用途
打印当前有效的用户ID对应的名称。
常用命令小结
?用户管理:useradd,usermod,userdel
?组管理:groupadd,groupdel
?密码管理:passwd
?文件目录权限:chmod,chown
?其它相关命令:whoami,id,su,sudo
电脑 电脑