3.7 su命令
3.8 sudo命令
3.9 限制root远程登录
3.7 su命令
su命令是用来切换用户的。
比如现在是root用户下,我切换到wt用户下 su - wt(加-是为了彻底的切换用户)
这时候再自己的家目录下
假如不加-,su wt
那依旧是在/root目录下
su - wt在自己的家目录下,就会去加载家目录的一些文件
可以以在root下用wt的身份执行命令。(以指定用户的身份执行命令)
su - -c "命令" name
第一个就是,属组也是wt
在普通用户下也可以切换到另外用户当中去
鉴定故障,是因为user5已被锁定。
重新设置user5的密码
到wt用户下 再次切换到user5
警告无法更改到/home/user5 没有这个家目录。前缀不一样 不像[email protected]~,而是-bash-4.2%。
案例说会到/home/user5的家目录下去,可是还在/home/wt,看警告显然没有这个家目录,没法加载。
没有用户家目录,那创建一个
mkdir /home/user5
chown user5:user5 /home/user5/,然后切换到user5
还是不行。因为在这个用户的家目录下没有任何的配置文件
不像是在wt用户下有几个.bash开头的配置文件,因为有这些文件前面才会显示成[email protected]这样。
系统有一个模板目录/etc/skel/
cp /etc/skel/.bash* /home/user5/把这些文件拷贝一份过去,并更改所有者和所属组
这样user5用户就正常了
root用户可以su到普通用户,同样su用户也可以su到root,只要 知道密码就可以
3.8 sudo命令
既然普通用户知道root密码可以su到root用户,那他直接登陆root用户不就好了。这是一个矛盾的地方
sudo可以让普通用户临时去执行一条命令以指定用户的身份去执行。(通常是个给普通用户授权root用户的身份)
visudo打开sudo的配置文件
可以看到实际上是编辑 /etc/sudoers.tmp这个文件(建议用visudo这样编辑配置文件时有语法错误会有提示,用vi /etc..不会提示)
往下翻找到root all=(all)这一行,这是配置文件最核心的地方。
allow root to run any commands anywhere,允许root用户在所有的地方运行所有的命令
另起一行模仿上面。 最后一个all是指所有命令,第二个all是表示用户。
那把最后的ALL改成3个命令,ls mv cat
wq出来后提示
99行 有错误,按一下回车,选e重新编辑配置文件
在编辑配置文件的时候可以用:set nu来查看行数
语法有错误在前面配置文件的前面可以找到例子
是逗号分隔,但要用绝对路径
再保存退出就可以了。
再切换到wt用户,正常的话cat /root/是没有权限的
sudo /usr/bin/cat /root/
他提示让我输入wt用户的密码 然后就可以cat了,再cat一下 不需要输入密码了。
这就比直接给root密码安全很多。直接给普通用户授权一些命令。
再看visudo。
如果觉得输入密码麻烦 可以 wt ALL=(ALL) NOPASSWD:/usr/bin/ls 这样就不需要输入密码了 。
也可以再sudo里设置别名。
还可以对一个用户组做一些处理,这样就可以让很多用户进行处理了。
(用法很多有一些没有扩展)
3.9 限制root远程登录
首先root用户无法登陆,只有普通用户可以登陆。在su - root 到root下去。
但root用户的密码是保密的。
首先root用户 su到root用户下是不需要密码的
visudo
首先设定设定一个用户的alisa
再设定一个规则
wq
然后在那两个普通用户下sudo su -就可以切换到root下了。
如果普通用户都可以这样登陆到root,其实是可以改root密码 然后远程登陆的。所以需要做一个限制
要把root用户远程登陆的功能去掉
vi /etc/ssh/sshd_config
用/搜索Root
出来的这个permitrootlogin就是要用到的配置
去掉#,把yes改成no
改完配置文件后重启网络服务
再重新打开一个登陆一下
用密码试一下
说明限制成功了。
原文地址:http://blog.51cto.com/13646170/2094968