第五章.linux 下的用户和组的管理

5.1 linux 系统下用户角色
在 linux 系统下用户的角色不同,权限和所能完成的任务也不同,用户角色是通过 UID 来识别的
注意:在 linux 下要注意 root 用户的 UID 的唯一性。
1、Root
系统管理员超级用户,系统唯一,可以登陆系统,可以操作任何文件和命令,拥有最高权限,UID 值为 0
2、虚拟用户
与真实的用户分开来,这类用户不能登陆系统,但是在使用某些服务的时候使用,这类用户是系统默认添加的。
3、普通真实用户
这类用户可以登陆系统,但是只能操作自己家目录的内容,受限账户,这类用户都是管理员自行添加的。
5.1.2 用户相关文件介绍
在 windows 当中可以使用计算机管理工具中的用户和组的管理工具来对用户进行管理,在 linux 下是
通过对用户配置文件(区别与 windows 中的用户配置文件)的管理来实现对用户和组的管理
1、/etc/passwd 用户账号文件,记录所有用户记录
每行表示一个用户信息,7 个字段都有各自的含义
root : x : 0 : 0 : root : /root : /bin/bash
用户名 密码 UserID GroupID 用户相关说明 用户家目录路径 用户的登陆 shell
2、/etc/shadow 用户账户的影子文件,包含用户的加密密码和其他信息,两个文件互补来记录用户
信息,这个文件只有 root 可以读取和操作
每行包含 8 个字段,各项说明如下:
第 1 个字段 用户名
第 2 个字段 加密口令
第 3 个字段 上次口令改变时间,从 1970 年 1 月 1 日算起的天数
第 4 个字段 多少天内不能改变口令
第 5 个字段 多少天内必须改变口令
第 6 个字段 口令到期前多少天会出现警告
第 7 个字段 如果口令到期后几天不使用账号,则无法登陆
第 8 个字段 如果到这个日期不用账号则无法登陆,可以以 YYYY-MM-DD 格式,也可以用 1970 年 1 月 1 日起
的天数
3、/etc/login.defs
打开这个文件对文件内容进行解释,如果修改,修改哪些位置有哪些作用。
MAIL_DIR 邮件存放目录
PASS_MAX_DAYS 密码有效期最长时间
PASS_MIN_DAYS 密码有效期最短时间
PASS_MIN_LEN 密码最小长度
PASS_WARN_AGE 密码到期提示时间
UID_MIN UID 最小值
UID_MAX UID 最大值
GID_MIN GID 最小值
GID_MAX GID 最大值
CREATE_HOME 是否创建家目录
UMASK UMASK 值
USERGROUPS_ENAB 当删除用户后,同名组中不在存在用户的时候,是否删除该组
4、/etc/skel
存放用户启动文件的目录,类似与 windows 的用户配置文件目录,为用户提供用户环境,该目录下的文件
全部为隐藏文件。在添加用户时会从该目录下复制文件到用户的家目录下,相当与统一的登陆模板。
开启和关闭投影密码命令
开启用户的投影密码,使得密码得到更好的保护,不容易被别的用户得到。
该选项是一个安全选项,执行命令可以把用户名和密码分别存放在两个文件当中,影子文件就是密码
文件。
pwconv 开启投影密码命令
pwunconv 关闭投影密码命令
5.1.2 用户管理
1、useradd 创建用户命令
useradd jake 创建名为 jake 的用户
-d 指定用户的家目录
-g 指定用户组
-G 指定用户的附加组
-u 指定用户的 UID 值
-p 创建密码
useradd -d /rose -g group -G root -u 505 rose 创建 rose 用户,指定家目录在/rose 下,加入到
group 组,同时附加到 root 组,并设置 UID 号为 505
users 查看所有登陆的用户(who)
2、tail 命令查看指定文件的末行
tail -n 3 /etc/passwd 查看 passwd 文件的最后三行
tail -1 /etc/passwd 查看 passwd 文件的最后一行
3、passwd 设置密码命令
注意:没有设置密码的用户不能使用
passwd rose 给用户 rose 设置密码
-d 删除密码
-f 强制执行下次登陆时更改密码
-l 停止账号使用
-u 启用已经停止的账号
-S 显示密码信息
4、userdel 删除账号命令
userdel rose 删除 rose 账号
userdel -r rose 删除用户登陆目录及目录下的文件(类似于 windows 的删除用户选择是否删除用户的文
档)
5、usermod 修改账号命令
usermod -l newname oldname
-d -g -G -u 等参数与 useradd 命令参数使用方法一样
usermod -d /home/rose -g group0 -G group1 -u 600 rose
将 rose 用户的家目录,主组和附加组以及 UID 值更改
用户的锁定与解锁
usermod -L rose 锁定 rose 用户
usermod -U rose 解除 rose 用户的锁定
6、gpasswd 用户添加到其他组的命令
注意:只有 root 和组管理员能够改变组成员
gpasswd -a u1 g1 将 u1 加入到 g1 组
gpasswd -d u1 g1 将 u1 退出 g1 组
gpasswd -A u1 g1 将 g1 组的管理员指派给 u1
7、id 查看 ID 信息命令
id rose 查看 rose 用户的 ID 信息
5.1.3 root 单用户
如果希望计算机除了 root 账号外其他账号不能登陆,在/etc 目录中执行 touch nologin,创建 1 个
名称为 nologin 的文件。如果系统只有一个人使用,可以考虑修改/etc/inittab 文件,将默认启动值改为
2。
5.2 组的管理
5.2.1 组相关文件介绍
1、/etc/group
用户组的特性在系统管理中为系统管理员提供了极大的方便,但安全性也是值得关注的,如某个用户
下有对系统管理有最重要的内容,最好让用户拥有独立的用户组,或者是把用户下的文件的权限设置为完
全私有;另外 root 用户组一般不要轻易把普通用户加入进去,
/etc/group 内容具体分析
/etc/group 的内容包括用户组(Group)、用户组口令、GID 及该用户组所包含的用户(User),每个用户组一条记录;格式如下:
group_name:passwd:GID:user_list
在/etc/group 中的每条记录分四个字段:
第 1 字段:用户组名称;
第 2 字段:用户组密码;
第 3 字段:GID
第 4 字段:用户列表,每个用户之间用,号分割;本字段可以为空;如果字段为空表示用户组为 GID 的用户名;
root : x : 0 :root,rose
root 组 x 是密码段 GID 是 0 root 用户组下包括 root、rose 以及 GID 为 0 的其它用户(可以通过 /
etc/passwd 查看)
2、/etc/gshadow
/etc/gshadow 是/etc/group 的密码文件,用户组(Group)管理密码就是存放在这个文件 。
/etc/gshadow 和/etc/group 是互补的两个文件;对于大型服务器,针对很多用户和组,定制一些关系结
构比较复杂的权限模型,设置用户组密码是极有必要的。比如我们不想让一些非用户组成员永久拥有用户
组的权限和特性,这时我们可以通过密码验证的方式来让某些用户临时拥有一些用户组特性,这时就要用
到用户组密码;
/etc/gshadow 格式如下,每个用户组独占一行;
groupname:password:admin,admin,…:member,member,…
第 1 字段:用户组
第 2 字段:用户组密码,这个段可以是空的或!,如果是空的或有!,表示没有密码;
第 3 字段:用户组管理者,这个字段也可为空,如果有多个用户组管理者,用,号分割;
第 4 字段:组成员,如果有多个成员,用,号分割;
jake:!::rose
rose:oUS/q7NH75RhQ::rose
第一字段:这个例子中,有两个用户组 jake 用 rose
第二字段:用户组的密码,jake 用户组无密码;rose 用户组有已经,已经加密;
第三字段:用户组管理者,两者都为空;
第四字段:jake 用户组所拥有的成员是 rose,rose 用户组有成员 rose
5.2.2 组的管理
1、groupadd 添加用户组
-g 指定 GID
-o 一般和 g 选项同时使用,可以与已有组的 GID 相同
groupadd -go 501 g1 创建组 g1 其 GID 可以与已有的组重复
2、gpasswd 设置用户组的密码
一般的情况下,没有必要设置用户组的密码;
gpasswd rose 修改 rose 组的密码
3、groupdel 删除用户组
groupdel g1 删除 g1 组(没有用户的空组)
4、groupmod 修改组属性
-g 指定新的 GID
-o 与-g 配合使用同 groupadd 的-o
-n 修改组名
groupmod -g 601 g1 修改 g1 的 GID 为 601
groupmod -n g11 g1 将 g1 组改名为 g11
5、newgrp 切换用户组
newgrp root 切换到 root 组
5.3 普通用户权限提升
1、su 切换用户命令
su 直接默认切换到 root 用户
su - root 更改环境变量为 root 用户的
su -m root 保留环境变量不变
su -c “/usr/sbin/useradd u1” root 以 root 的身份执行 useradd 命令,-c 代表执行一个命令后就结
束。其中命令需要输入命令文件的绝对路径。
2、sudo 命令
由于 su 对转换到 root 后,权限的无限制性,所以 su 并不能担任多个管理员所管理的系统。假如用 su来转换到 root 来管理系统,也不能明确哪些工作是由哪个管理员进行的操作。特别是对于服务器的管理有多人参和管理时,最好是针对每个管理员的技术特长和管理范围,并且有针对性的下放给权限,并且约定其使用哪些工具来完成和其相关的工作,这时我们就有必要用到 sudo。
通过 sudo,我们能把某些 root 有针对性的下放,并且无需普通用户知道 root 密码,所以 sudo 相对于权限无限制性的 su 来说,还是比较安全的,所以 sudo 也能被称为受限制的 su ;另外 sudo 是需要授权许可的,所以也被称为授权许可的 su;
sudo 执行命令的流程是当前用户转换到 root(或其他指定转换到的用户),然后以 root(或其他指定的转换到的用户)身份执行命令,执行完成后,直接退回到当前用户;而这些的前提是要通过 sudo 的配置文档/etc/sudoers 来进行授权;
visudo 来增加一行
u1 ALL=(root) NOPASSWD:/bin/cat u1 用户可以转换到 root 下不需要输入密码执行/bin/cat 命令
u1 ALL=(root)/bin/cat,/user/bin/passwd,!/user/bin/passwd root
u1 用户可以转换到 root 下需要输入密码执行/bin/cat,/user/bin/passwd,但不能执
行/user/bin/passwd root 来修改用户密码。
执行 sudo 命令
sudo -l 列出用户在主机上可用的和被禁止的命令
sudo 命令(命令为绝对路径)来执行命令
sudo /bin/cat /etc/shadow
5.4 磁盘配额
windows 不能对组进行配额设置,而 linux 可以对组进行配额限制。
1、vi /etc/fstab 文件
将要设置配额的分区设置开机自动挂载在添加行在 defaults 后面加上,usrquota(grpquota)表示要建立用户或组的磁盘配额
2、重新挂载文件系统
之前重启看效果,可以使用 umount -a 卸载所有文件挂载,然后使用 mount -a 挂载所有文件系统
3、在挂载目录下创建 aquota.user 文件
在挂载目录下执行 touch aquota.user
通常要对该文件配置权限,防止用户随便访问。
4、进行配额检查
执行 quotacheck -avu(g)(g 是启用组配额)
5、设置用户磁盘配额
执行 edquota -u rose
默认使用 vi 编辑 rose 用户的配额文件
filesystem blocks soft hard inodes soft hard
/dev/sdb1 4 0 0 1 0 0
4 个数据块和 1 个 inodes
软极限和硬极限讲解(结合 windows 中的配额提醒来讲)
如果设置宽限时间,可以让用户在规定的时间内可以超过软极限,但必须在硬极限之内。
6、设置宽限时间
edquota -t 编辑时间。
7、启用配额
quotaon /qt(配额目录)
8、进行配额测试
创建文件,占用磁盘空间,然后超过软极限,看提醒,然后再超过硬极限,看效果
如果要对其他用户设置相同的配额,可以复制配额
edquota -up rose u1 u2 u3
如果要使配额每次启动生效,可以将配额检查和激活命令放在默认/etc/rc.d/rc.sysinit 启动脚本中。

猜你喜欢

转载自blog.csdn.net/w849593893/article/details/82459018