使用者身份切换
通常以一般账号登录系统,若有系统维护或软件更新才需要转为root身份来操作。
su
若要完整的切换到新使用者的环境,必须要用 su – username ,才会连同环境 PATH/USER/MAIL 等变量都转成新用户的环境。
若仅想执行一次root指令,可以利用 su – -c “命令” 来处理。
使用root切换为任何使用者时,不需要输入新用户密码。
sudo
特性
sudo能够授权指定用户在指定主机上运行某些命令。如果未授权用户尝试使用 sudo,会提示联系
管理员。
sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服务器
sudo使用时间戳文件来执行类似的“检票”系统。当用户调用sudo并且输入它的密码时,用户获得
了一张存活期为5分钟的票
sudo的配置文件是sudoers文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。它
所存放的位置默认是在/etc/sudoers,属性必须为0440
配置文件
/etc/sudo.conf
授权规则配置文件
/etc/sudoers
/etc/sudoers.d
安全编辑授权规则文件和语法检查工具
/usr/sbin/visudo
检查语法:visudo -c
检查指定配置文件语法:visudo -f /etc/sudoers.d/test
日志文件
/var/log/secure
命令
sudo [-b] [-u 用户名]
-b:将后续的指令放置后台,不对当前shell产生影响。
-u:后面接欲切换的使用者,若无此项则代表且切换身份为root。
-l:列出用户在主机上可用的和被禁止的命令
sudo执行流程:
1,当用户执行sudo时,系统在/etc/sudoers(属性必须为0440)文件中搜寻该使用者是否有执行sudo权限。
2,若使用者具有可执行sudo权限后,便让使用者输入自己的密码来确认(root执行sudo不用输入密码)。
3,若密码正确,便开始进行sudo后续接的命令。
4,若欲切换的身份与执行者身份相同,也不需要密码。
使用 visudo 编辑 /etc/sudoers
格式
用户 登入者的来源主机名=(可切换的身份) 下达的指令
支持通配符
?:任意一个字符
*:任意长度的字符
[abc]:匹配其中任意一个字符
[!abc]:除了其中三个字符的其它字符
例如:root ALL=(ALL) ALL
sudo别名四种类型
User_Alias:用于为一组用户定义一个别名
Runas_Alias:指定sudo允许转换至的目标用户
Host_Alias: 允许为一组主机定义一个别名
Cmnd_Alias: 用于为一组命令定义一个别名
别名名称应该是大写字母开头,可以包含大写字母、数字和下划线。
User_Alias DIRADMIN=wenzi,zhangsan,li*
Host_Alias SERS=www.wenzi.com,192.168.28.0/24
Runas_Alias OP=root
Cmnd_Alias SYDCMD=/bin/chown,/bin/chmod
使用方法
DIRADMIN SERS=(OP) SYDCMD
允许用户wenzi登录192.168.28.30,并将光盘挂载至/mnt目录
wenzi 192.168.28.30=(root) /usr/bin/mount /dev/cdrom /mnt
[wenzi@wenzi ~]$sudo mount /dev/cdrom /mnt
[sudo] password for wenzi:
mount: /mnt: WARNING: device write-protected, mounted read-only.
允许用户wenzi使用sudo时无需输入密码,减少交互式
wenzi ALL=(root) NOPASSWD: /usr/bin/mkdir
[wenzi@wenzi ~]$mkdir /data
mkdir: cannot create directory ‘/data’: Permission denied
[wenzi@wenzi ~]$sudo mkdir /data
[wenzi@wenzi ~]$file /data
/data: directory
sudoers中定义的ADMIN组成员可以创建/bbb,但不可以创建/aaa
root ALL=(ALL) ALL
User_Alias ADMIN=wenzi,zhangsan
Cmnd_Alias SYSCMD=!/usr/bin/mkdir /aaa,/usr/bin/mkdir /bbb
ADMIN ALL=(root) SYSCMD
[wenzi@wenzi ~]$sudo mkdir /aaa
[sudo] password for wenzi:
Sorry, user wenzi is not allowed to execute '/bin/mkdir /aaa' as root on wenzi.localhost.
[zhangsan@wenzi ~]$sudo mkdir /aaa
[sudo] password for zhangsan:
Sorry, user zhangsan is not allowed to execute '/bin/mkdir /aaa' as root on wenzi.localhost.
[wenzi@wenzi ~]$sudo mkdir /bbb
[sudo] password for wenzi:
[wenzi@wenzi ~]$ll /bbb/
total 0
有限制的指令操作
感叹号!代表不可执行;上述意思为 myuser1可以执行passwd 任意字符 ,但是passwd 和 passwd root除外;可以实现myuser1可以修改除root用户外的其他用户密码。
主机用户信息传递
查询已登录系统的用户
w
who
查询每个账号最近登录时间
lastlog
与系统中其他登录用户发送信息,用 ctrl + d 结束对话
write 用户名 登录终端
某用户不想接收别人发来的信息(root除外)
mesg n 关闭
mesg y 开启
向其他所有用户都发送信息
wall 内容
邮件信箱mail
命令:mail -s “邮件标题” username@localhost
例如:mail -s “This is me” 张三
同一主机上的用户不用加 @localhost,邮件内容编辑完成末行输入小数点 . 结束。