软件测试-Linux06

143 阅读5分钟

第七章、用户管理

1、重要性

一、用户相关文件

1、/etc/passwd 用户信息文件

root:x:0:0:root:/root:/bin/bash 
第一列:用户名
第二列:密码位		加密后的密码都在/etc/shadow里面
第三列:用户ID		0:超级用户UID		1-499:系统用户(伪用户)		500-65535:普通用户ID
第四列:组ID /etc/group		GID添加用户时,如果不指定用户所属组的初始组,那么会建立和用户名相同的组
第五列:用户说明
第六列:用户家目录
第七列:登陆shell /bin/bash

如果把超级用户改成普通用户,就是把UID0改成1

= 2、/etc/shadow

第一列:用户名
第二列:加密的密码	伪用户的密码含有!!	加入!或者*让密码失效
第三列:密码最近更新时间	时间戳以197011日计算的天数,
        日期转时间戳:echo $(($(date --date="2019/12/31"+%s)/86400+1))	
        时间戳转日期:date -d "1970-01-01 15775 days"
第四列:默认两次修改密码的时间间隔(和第3字段相比)
第五列:密码有效期(和第3字段相比)
第六列:密码到期前的警告天数(和第五字段相比)
第七列:密码到期的宽限天数(和第五字段相比)默认-1就是长期有效	到期之前改密码然后有效时间顺延
第八列:密码失效时间()
第九列:保留

3、/etc/group

第一列:组名
第二列:组密码位	组密码文件:/etc/gshadow
第三列:GID
第四列:此组中支持的其他用户,附加组是此组的用户
        初始组:每个用户初始组只有一个,初始组智能有一个
        附加组:每个用户可以属于多个附加组,要吧用户加入组,都是加入附加组

4、组密码文件:/etc/gshadow

5、用户家目录

6、用户邮箱目录 /var/spool/mail/abc

7、用户模板目录:/etc/skel/ /home/userl

二、用户管理命令

1、添加用户命令:useradd

1.1、手工删除用户需要删除1 2 3 4 5 7 这六个文件里的信息

1.2、useradd命令: useradd 选项 用户名 (选项一般不用,一般默认) 选项: -u 550 指定UUID(500往后排,指定之后,中间会跳过,一般不用) -g 组名 指定初始组,设置的用户不会建立附加组(不建议这样用,建议使用-G) -G 组名 指定附加组,把用户加入组,使用用附加组 -c 说明 添加说明 -d 目录 指定目录 -s shell /bin/shell

1.3、useradd默认值

/etc/default/useradd和/etc/login/defs

2、设定密码

passwd [选项] 用户名
-l	将用户密码锁定么就是无法登陆
-u	解锁
--stdin	例子:echo "123" > | passwd --stdin user1	用于批量添加

普通用户直接就passwd,但是简单密码不会生效

更改时间戳,就会前置修改密码 或者使用:change -d 0 user1

3、用户信息修改

usermod是修改已添加的用户的信息的,选项规则与useradd基本一致,了解就行,不做使用,常用就是-G

4、删除用户

userdel -r 用户名
-r作用是删除用户的时候删除家目录

5、切换用户身份

su user2 
su - root (-主要是可以吧env环境变量切换位对应的环境变量		可以用env查看)

三、组管理

1、添加用户组:groupadd

2、删除用户组:groupdel

3、手工加个用户添加到组火着从组中删除:gpasswd添加附加组

gpasswd [选项] 用户名
    -a加入
    -d删除

区别:

usermod -G 组   用户
gpasswd -a 用户 组

4、改变有效值

newgrp(初学不使用)

5、指定权限

第八章、权限管理

一、

1、ACL权限:用于解决用户对文件身份不足的问题

ACL权限一旦递归之后,容易出现权限溢出(安全性隐患)

2、开启ACL权限

dumpe2fs -h /dev/sda3		-h是超级块的意思

如果没有开启,就手动开启	mount -o remount,acl /
也可以通过修改/etc/fstab文件,永久开启ACL的权限
UUID=????   /  ext4  default acl  1 1 (加入acl)

3、ACL基本命令

setfacl 选项 文件名
setfacl -m  u:用户名:权限 文件名	例子:setfacl -m u:user1:5 -R /www

使用  getfacl /www/查看ACL权限



-R 递归

在u前加入d:	setfacl -m d:u:user1:5 -R /www

二、sudo授权 给普通用户赋予部分管理员权限

/sbin/	在此目录下命令只有超级用户才能使用
/usr/bin/

sudo	赋予的权限越详细,普通用户的权限越小。反之。

visudo				mam 5
用户组需要先加%
root          	ALL=(ALL)		 ALL
#用户名		被管理IP =(可使用身份)授权命令(绝对路径)

#  %wheel	ALL=(ALL)		ALL
#  %组名	被管理ip =可使用身份)	授权命令(绝对路径)
例子:visudo
user1 ALL=/sbin/shutdown	权限较大(赋予的权限越详细,普通用户的权限越小。反之。)
user1 ALL=/sbin/shutdown -r now	权限较小,只能重启


sudo -l	查看可用的授权

举例:
2)visudo
user1	192.168.0.156= /etc/rc.d/init.d/httpd reload . \(换行用反斜杠)
/etc/rc.d/init.d/httpd configtest(文本测试)

configtest检测是否写错

找某个命令的所在位置就是whereis vim

sudo在授权vim的权限时一定要小心,危险系数比较高
sudo /usr/bin/vim /etc/shadow就可以清空密码

更改网页内容
只需要授权user1对,网页存放位置(比如说:/var/www/html),则只需要授权user1对此目录有写权限或者更改目录的所有者为user1即可
也可通过ftp修改

三、文件特殊权限SetUID、SetGID、Sticky BIT

1、SetUID功能可以理解为:

只有可以执行二进制程序才能设置SUID
命令执行者要对该程序拥有x(执行权限)
命令执行者在执行该程序的时候获得该程序文件属主的身份
SUID权限只在该程序执行中有效,也就是说身份改变只在执行程序的过程中有效


举例:
ll /etc/passwd(密码的位置)显示的是-rws??????权限
ll /etc/shadow
ll /etc/passwd(命令所在位置)

如果取消s权限,普通用户就不能修改自己的权限

2、危险的SetUID

chmod u+s /usr/bin/vi

3、建议