三周第三次课(2月7日)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了三周第三次课(2月7日)相关的知识,希望对你有一定的参考价值。
3.7 su命令
3.8 sudo命令
3.9 限制root远程登录
3.7 su命令
#su 切换用户
#su - aming 加“-”是方便彻底切换用户,包括环境变量,用户配置参数等等。(大多数用“-”切换)
#su aming
$pwd
/root 不加“-”,切换用户会在/root下
*当然 也可以在su的时候 以某用户的身份去执行一条命令
例如 以aming用户的身份去执行一条命令,不登录到aming用户下面去,也可以执行。
#su - -c "touch /tmp/aming.111" aming
#ls -lt /tmp/ |head
#-rw-r--r--. 1 aming grp2 aming.111
aming的组为grp2是因为本来就属于grp2组,可以从#id aming的参数看出。
#id aming
uid=1000(aming) gid=1005(grp2) 组=1005(grp2),1007(user5)
#su - user5
密码:
鉴定故障。
(此处是因为user5之前做测试被写入了锁定参数,修改密码可以登录 )
$登出(ctrl-d)
#passwd user5
#su - aming
#su - user5
密码:
.
.
su:警告:无法更改到/home/user5 目录:没有那个文件或目录
-bash-4.2$ pwd
/home/aming此处是因为当时建立user5的时候没有创建家目录,没有用户的加载文件加载,导致前缀变成-bash-4.2$。
创建家目录是没法改变-bash-4.2.
改变方法是将/etc/skel的.bash_logout .bash_profile .bashrc 复制到user5的家目录下,并且将其目录及其子目录、文件都修改user5的所有者跟所属组。
#ls -la /etc/skel
#cp /etc/skel/.bash* /home/user5/
#chown -R user5:user5 !$
#su -user5
#pwd
/home/user5登录成功
3.8 sudo命令
可以让普通用户临时去执行一条命令,以指定用户的身份去执行。通常是给普通用户授权,以root的身份。以防普通用户利用root密码修改配置等等操作。
#visudo 可以打开打开sudo的配置文件
(*此处是最核心的一段语句参数)
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
意思即:允许root用户在任何地方去运行任何命令
test1
让aming用户用root身份去执行ls,mv,cat命令。
#visudo
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
amingALL=(ALL)ls,mv,cat
:wq
退出,保存。
这里发现有语法错误(命令应该写绝对路径参数),其实这里是visudo的语法检测功能作用。
# visudo
>>> /etc/sudoers: 语法错误 near line 93 <<<
现在做什么?^[
选项有:
重新编辑 sudoers 文件(e)
退出,不保存对 sudoers 文件的更改(x)
退出并将更改保存到 sudoers 文件(危险!)(Q)
按e重新编辑
## Allow root to run any commands anywhere
92 root ALL=(ALL) ALL
93 aming ALL=(ALL) /usr/bin/ls,/usr/bin/mv,/usr/bin/cat
#su -aming
$ls /root
ls: 无法打开目录/root: 权限不够
用sudo 去ls /root,输入当前用户密码(密码只需要输入一次),成功。
$ sudo /usr/bin/ls /root/
我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:
#1) 尊重别人的隐私。
#2) 输入前要先考虑(后果和风险)。
#3) 权力越大,责任越大。
[sudo] aming 的密码:
1.txt 1.xtx 2.txt a_(2).txtanaconda-ks.cfg anaconda-ks.cfg.1 a.txt temp.1
test2
添加user5进去,让user5免密使用sudo命令
#visudo
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
aming ALL=(ALL) /usr/bin/ls,/usr/bin/mv,/usr/bin/cat
user5 ALL=(ALL) NOPASSWD: /usr/bin/ls,/usr/bin/cat
[[email protected] ~]# su - user5
[[email protected] ~]$ ls /root
ls: 无法打开目录/root: 权限不够
[[email protected] ~]$ sudo ls /root
1.txt 1.xtx 2.txt a_(2).txtanaconda-ks.cfg anaconda-ks.cfg.1 a.txt temp.1
结果表示,使用sudo,成功免密
设置命令别名
#visudo
## Networking
# Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool
Cmnd_Alias AMING_CMD = /usr/bin/ls,/usr/bin/mv,/usr/bin/cat
.
.
..
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
aming ALL=(ALL) AMING_CMD
user5 ALL=(ALL) NOPASSWD: /usr/bin/ls,/usr/bin/cat
修改完毕后,su aming ,sudo 命令测试
[[email protected] ~]$ sudo ls /root
[sudo] aming 的密码:
1.txt 1.xtx 2.txt a_(2).txtanaconda-ks.cfg anaconda-ks.cfg.1 a.txt temp.1
[[email protected] ~]$ sudo cat /root
cat: /root: 是一个目录
[[email protected] ~]$ sudo cat /root/a.txt
111
222
333
44
55
sudo命令无问题,visudo参数修改成功。
针对一个组进行限制。(修改此命令参数)
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
3.9限制root远程登录
免密登录root
#visudo 修改user的别名为AMINGS,然后添加用户
## User Aliases
## These aren't often necessary, as you can use regular groups
## (ie, from files, LDAP, NIS, etc) in this file - just use %groupname
## rather than USERALIAS
# User_Alias ADMINS = jsmith, mikem
User_Alias AMINGS = aming, user1, user5
修改sudo命令参数
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
aming ALL=(ALL) AMING_CMD
user5 ALL=(ALL) NOPASSWD: /usr/bin/ls,/usr/bin/cat
AMINGS ALL=(ALL) NOPASSWD: /usr/bin/su
切换至普通用户aming,#sudo su - ,成功免密切换root
[[email protected] ~]# su - aming
上一次登录:三 2月 7 18:41:20 CST 2018pts/0 上
[[email protected] ~]$ sudo su -
上一次登录:三 2月 7 18:41:17 CST 2018从 192.168.189.1pts/0 上
[[email protected] ~]# whoami
root
#[[email protected] ~]# vi /etc/ssh/sshd_config
# Authentication:
#LoginGraceTime 2m
PermitRootLogin no(*原本是#PermitRootLogin yes,把#去掉,然后把yes改成no)
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
[[email protected] ~]# systemctl restart sshd.service修改完成后 重启sshd服务
打开新的远程登录窗口,用passwd登录失败,说明Xshell被成功限制。
利用putty登录普通用户aming
#sudo su - 尝试在putty免密登录root
putty成功登录。
以上是关于三周第三次课(2月7日)的主要内容,如果未能解决你的问题,请参考以下文章