1.2、组的管理
1.2.1、组相关文件介绍
①、/etc/group
用户组的特性在系统管理中为系统管理员提供了极大的方便,但安全性也是值得关注的,如某个用户 下有对系统管理有最重要的内容,最好让用户拥有独立的用户组,或者是把用户下的文件的权限设置为完 全私有;另外 root 用户组一般不要轻易把普通用户加入进去。
/etc/group 内容具体分析
/etc/group 的内容包括用户组(Group)、用户组口令、GID 及该用户组所包含的用户(User)
每个用户组一条记录;格式如下: group_name:passwd:GID:user_list
在/etc/group 中的每条记录分四个字段:
第 1 字段:用户组名称;
第 2 字段:用户组密码;
第 2 字段:用户组密码;
第 3 字段:GID
第 4 字段:用户列表,每个用户之间用,号分割;本字段可以为空;如果字段为空表示用户组为 GID 的用 户名;
root : x : 0 :root,rose
root 组 x 是密码段 GID 是 0 root 用户组下包括 root、rose 以及 GID 为 0 的其它用户(可以通过 /etc/passwd 查看)
②、/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
1.2.2、组的管理
①、groupadd 添加用户组
-g 指定 GID
-o 一般和 g 选项同时使用,可以与已有组的 GID 相同
groupadd -go 501 g1 创建组 g1 其 GID 可以与已有的组重复
②、gpasswd 设置用户组的密码
一般的情况下,没有必要设置用户组的密码;
gpasswd rose 修改 rose 组的密码
③、groupdel 删除用户组
groupdel g1 删除 g1 组(没有用户的空组)
④、groupmod 修改组属性
-g 指定新的 GID
-o 与-g 配合使用同 groupadd 的-o
-n 修改组名
groupmod -g 601 g1 修改 g1 的 GID 为 601
groupmod -n g11 g1 将 g1 组改名为 g11
⑤、newgrp 切换用户组
newgrp root 切换到 root 组
1.3、普通用户权限提升
1.3.1、su 切换用户命令
su 直接默认切换到 root 用户
su - root 更改环境变量为 root 用户的
su -m root 保留环境变量不变
su -c “/usr/sbin/useradd u1” root 以 root 的身份执行 useradd 命令,-c 代表执行一个命令后就结束。其中命令需要输入命令文件的绝对路径。
1.3.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
1.4、磁盘配额
windows 不能对组进行配额设置,而 linux 可以对组进行配额限制。
1.4.1、vi /etc/fstab 文件
将要设置配额的分区设置开机自动挂载在添加行在 defaults 后面加上,usrquota(grpquota)表示要建 立用户或组的磁盘配额。
1.4.2、重新挂载文件系统
之前重启看效果,可以使用 umount -a 卸载所有文件挂载,然后使用 mount -a 挂载所有文件系统
1.4.3、在挂载目录下创建 aquota.user 文件
在挂载目录下执行 touch aquota.user
通常要对该文件配置权限,防止用户随便访问。
1.4.4、进行配额检查
执行 quotacheck -avu(g)(g 是启用组配额)
1.4.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 中的配额提醒来讲)
如果设置宽限时间,可以让用户在规定的时间内可以超过软极限,但必须在硬极限之内。
1.4.6、设置宽限时间
edquota -t 编辑时间。
1.4.7、启用配额
quotaon /qt(配额目录)
1.4.8、进行配额测试
创建文件,占用磁盘空间,然后超过软极限,看提醒,然后再超过硬极限,看效果
如果要对其他用户设置相同的配额,可以复制配额
edquota -up rose u1 u2 u3
如果要使配额每次启动生效,可以将配额检查和激活命令放在默认/etc/rc.d/rc.sysinit 启动脚本中。