一、su命令
su 切换用户
- + 用户名 切换用户 (root切换普通用户不用密码。反之则需要密码)
加 - 是切换到目录的家目录下 ,切换的彻底。不加则是切换到/root下用户
有的用户没有家目录,开头会是-bash-4.2$ c
解决方法:
创建家目录,更改所有者和所属组
目录下没有配置文件,复制/etc/skel/下所有文件拷贝到所创建的家目录中,
更改所有者和所属组
- -c + "命令" +用户名 以某个用户的身份去执行命令
sudo -i: 为了频繁的执行某些只有超级用户才能执行的权限,而不用每次输入密码,可以使用该命令。提示输入密码时该密码为当前账户的密码。没有时间限制。
sudo /bin/bash : 这个命令也会切换到root的bash下,但不能完全拥有root的所有环境变量,比如PATH,可以拥有root用户的权限。这个命令和 sudo -s 是等同的。
二、sudo命令
sudo命令 让普通用户以指定用户的身份去执行某条命令,一般都是指定命令
visudo 打开 实际是/etc/sudoers.tmp文件
找到
92 root ALL=(ALL) ALL
用户 主机=(ALL) NOPASSWD:(使用sudo不适用密码)所有命令(用绝对路径书写,也可以写一个命令或多个,用逗号分隔)
如果用户组出现在/etc/sudoers 中,前面要加%号,比如%beinan ,中间不能有空格;%beinan ALL=/usr/sbin/*,/sbin/*
sudo + 命令绝对路径 (第一次会提示输入密码,之后就不用)
取消程序某类程序的执行,要在命令动作前面加上!号; 在本例中也出现了通配符的*的用法;
注意的是:别名都要大写,小写会提示错误
Cmnd_Alias 命令别名。可以添加多个命令,则在92行输入,命令时则不用一个一个输入
User_Alias 用户别名,将用户都加入用户组中,同一个用户组里的用户使用sudo
Host_Alias 主机别名。可以将主机都加入主机组内,在92行主机处用别名就好
三、限制root远程登录
服务器root用户不能登录,只允许普通用户登录。登陆上后,在登录root用户虚拟用户组,
实际则是用visudo命令,User_Alisa建立一个虚拟用户组,把用户添加到里面。
免密码可以su到root用户
再限制root用户远程连接。
这里应该设置2个sudo的规则,一种是可以登录root,一种是不可以。
转载于:https://blog.51cto.com/13407306/1977454