su命令:
1、su 切换用户命令 例:su - aming
2、whoami 查看当前用户命令
3、pwd 查看当前目录
例:输入su aming也可以切换用户,但是目录不在自己用户目录下,如下:
[[email protected] ~]# su aming
[[email protected] root]$ pwd
/root
[[email protected] root]$ ls
ls: 无法打开目录.: 权限不够
[[email protected] root]$ exit
[[email protected] ~]# su - aming
上一次登录:一 10月 30 19:43:20 CST 2017pts/0 上
[[email protected] ~]$ pwd
/home/aming
[[email protected] ~]$
注意,切换用户的时候一定要加-。
4、su - -c 指定用户去执行一条命令
[[email protected] ~]# su - -c "touch /tmp/aming.111" aming
[[email protected] ~]# ls -l /tmp/ |head
总用量 116
-rw-r--r--. 2 root root 0 10月 27 20:04 1.txt.bak
-rw-r--r--. 1 aming grp2 0 10月 30 19:53 aming.111
drwxrwx---. 2 user1 aming 19 10月 29 11:25 aming2
drwxr-xr-x. 3 root root 15 10月 25 19:59 aminglinux
-rwxr-xr-x. 1 root root 117656 10月 25 20:46 ls2
drwx------. 3 root root 17 10月 18 03:56 systemd-private-4d315cdbc8ef4b6fb7fe88eb7c2a8ffc-vmtoolsd.service-NdaVQb
drwx------. 3 root root 17 10月 18 16:53 systemd-private-6f7de3c360e54ebd90228529e81a6451-vmtoolsd.service-sYuKNl
drwx------. 3 root root 17 10月 29 15:12 systemd-private-d7366ef92190425097a68c22ada7a3b0-vmtoolsd.service-lZzsPV
drwxr-xr-x. 2 user1 aming 6 10月 29 11:33 yum.log
[[email protected] ~]# id aming
uid=1000(aming) gid=1005(grp2) 组=1005(grp2),1007(user5)
[[email protected] ~]# date
2017年 10月 30日 星期一 19:54:11 CST
举例:从普通用户下切换到另一个用户下面去,比如从aming用户切换到user5
[[email protected] ~]# su - user5
su: 警告:无法更改到 /home/user5 目录: 没有那个文件或目录 //因为锁定了user5
-bash-4.2$ 登出
[[email protected] ~]# passwd user5
更改用户 user5 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[[email protected] ~]# su - aming
上一次登录:一 10月 30 19:53:21 CST 2017pts/0 上
[[email protected] ~]$ su - user5
密码:
上一次登录:二 10月 31 18:49:01 CST 2017pts/0 上
su: 警告:无法更改到 /home/user5 目录: 没有那个文件或目录
-bash-4.2$ pwd //正常应该显示在user5用户下面的家目录,显示不正确
/home/aming
-bash-4.2$ 登出
[[email protected] ~]$ 登出
如下操作恢复正常:
[[email protected] ~]# id user5 //查看用户属主与属组
uid=1007(user5) gid=1007(user5) 组=1007(user5)
[[email protected] ~]# mkdir /home/user5 //创建家目录
[[email protected] ~]# chown user5:user5 /home/user5/ //更改属组及所有者
[[email protected] ~]# su - user5 //切换用户还是不行
上一次登录:二 10月 31 18:50:31 CST 2017pts/0 上
-bash-4.2$ pwd
/home/user5
-bash-4.2$ ls -la
总用量 0
drwxr-xr-x. 2 user5 user5 6 10月 31 18:51 .
drwxr-xr-x. 10 root root 118 10月 31 18:51 ..
-bash-4.2$ su - aming //切换到aming用户下
密码:
上一次登录:二 10月 31 18:50:15 CST 2017pts/0 上
最后一次失败的登录:二 10月 31 18:52:51 CST 2017pts/0 上
最有一次成功登录后有 1 次失败的登录尝试。
[[email protected] ~]$ ls -la //查看用户配置文件
总用量 16
drwx------. 2 aming grp2 83 10月 30 19:43 .
drwxr-xr-x. 10 root root 118 10月 31 18:51 ..
-rw-------. 1 aming grp2 46 10月 31 18:51 .bash_history
-rw-r--r--. 1 aming grp2 18 8月 3 2016 .bash_logout
-rw-r--r--. 1 aming grp2 193 8月 3 2016 .bash_profile
-rw-r--r--. 1 aming grp2 231 8月 3 2016 .bashrc
[[email protected] ~]$ 登出
[[email protected] ~]# ls /etc/skel/ //系统下面的模板配置文件
[[email protected] ~]# ls -la /etc/skel/ //查看文件
总用量 24
drwxr-xr-x. 2 root root 62 10月 17 05:04 .
drwxr-xr-x. 77 root root 8192 10月 31 18:50 ..
-rw-r--r--. 1 root root 18 8月 3 2016 .bash_logout
-rw-r--r--. 1 root root 193 8月 3 2016 .bash_profile
-rw-r--r--. 1 root root 231 8月 3 2016 .bashrc
[[email protected] ~]# cp /etc/skel/.bash* /home/user5/ //把配置文件拷贝到user5家目录下面
[[email protected] ~]# chown -R user5:user5 !$ //更改目录所属组及所有者
chown -R user5:user5 /home/user5/
[[email protected] ~]# su - user5 //成功登录
上一次登录:二 10月 31 18:52:29 CST 2017pts/0 上
[[email protected] ~]$ pwd
/home/user5
[[email protected] ~]$ 登出
备注:普通用户也可以直接su到root用户,前提是知道root的密码。
sudo命令:
1、sudo 可以让普通用户临时去执行一条命令,指定用户执行(用处:不需要给普通用户管理员权限,可以指定普通用户拥有部分命令的使用权)
例:
输入命令visudo,编辑文件在root用户下添加普通用户需要操作的root用户权限,ALL代表所有。
set nu 查看行数
加入更改后保存退出,如下:
[[email protected] ~]# su - aming //切换普通用户
上一次登录:三 11月 1 19:08:29 CST 2017pts/0 上
[[email protected] ~]$ ls /root/ //直接ls查看root目录是报没有权限
ls: 无法打开目录/root/: 权限不够
[[email protected] ~]$ sudo ls /root/ //添加sudo可以查看
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
[sudo] password for aming: //第一次查看需要输入普通用户密码
111 1_heard.txt.bak 1.txt.bak 2.txt aming2 anaconda-ks.cfg
123 1_sorft.txt.bak 234 3.txt
不需要输入用户名密码做法,在root用户下编辑visudo,然后按如下修改。
例:命令别名
输入visudo进入编辑,增加一条。
更改上别名,保存退出。
验证操作,完成。
限制root远程登录:
1、为了安全着想,禁止root远程登录(本地不可限制),只允许普通用户登录,普通用户想要root用户的权限可以使用sudo,也可以使用su,但root的密码不能让普通用户知道。
例:
输入visudo,编辑添加一个用户User Aliases
再添加一条规则,保存退出。
验证操作,完成。(前提是限制root远程登录)
做一个root用户远程限制的功能,更改配置文件vi /etc/ssh/sshd_config,编辑更改如下操作。
更改完配置文件重启服务systemctl restart sshd.service ,然后再执行root验证登录,不能登录。
使用PuTTY登录普通用户成功,并可以直接使用sudo连接上root不需要使用密码,验证完成。