linux学习笔记13
su命令
su :切换用户,su gk1和su- gk1的区别是加了“-”后会完全切换到gk1的家目录下,只有加了“-”切换用户后配置文件这个用户的配置文件才会生效。
su - -c “touch /tme/4.txt” gk1 :以gk1 的身份去执行一条命令,但不需要切换用户。
su - gk2在普通用户之间是可以来回相互切换的,只要输入密码即可。
由于gk4 没有家目录所以切换到gk4是显示的和gk1 是不一样的,那么我们就需要拷贝配置文件,首先我们需要创建这个目录,并且修改他的所有者和所属组。
然后再次切换的时候就不一样了。
sudo命令
sudo:可以让普通用户临时以指定用户的身份去执行一条命令。
首先我们先来查看配置文件:visudo这个命令可以检测错误。
root ALL=(ALL) ALL 表示root用户不管在什么地方都能执行所有的命令,我们模仿他给gk1用户添加一些命令gk1 ALL=(ALL) ls,mv,cat让gk1 能以root用户的身份执行这几个命令,保存退出。
但保存退出的时候他提示你有错误,我们查看发现不能直接输入命令本身,我们的输入命令的绝对路径,用which ** 先查看你的命令的具体位置。输入“e”我们重新来编辑。输入“:set nu”可以查看行数。
然后我们切换到gk1用户下试试命令是否生效,你会发现他提示你要输入gk1 用户的密码,输入一次后下次再次查看就不需要输入了。
那我们怎么样才能不需要输入密码呢,我们需要再次编辑visudo,只需要在我们想添加的命令前加上大写的“NOPASSWD”即可。,
切换到gk4用户下测试,直接输入“ls”时显示没有权限,但可以使用“sudo ls”来查看。并没有提示要输入密码。
visudo中其实有好多用法,比如:我们可以把/bin/ls /bin/mv /bin/cat 等这些命令放到一个命令别名里面去“Cmnd_Alias”首字母大写。
把命令添加到命令别名里以后我们在把gk1的sudo命令更换一下,会发现这样也可以实现。
限制root远程登录
限制root远程登录我们首先要改配置文件 vi /etc/ssh/sshd_config
然后重启下服务,即可。