三周第三次课(4月4日)

3.7 su命令
3.8 sudo命令
3.9 限制root远程登录

3.7su命令

su:切换用户

用法:su [-] 用户名

 

[root@localhost ~]# whoami   

root

[root@localhost ~]# su kun1     ##切换kun1用户

[kun1@localhost root]$ whoami

kun1

 

-:切换用户时,把shell环境切换都新用户下

 

[root@localhost ~]# su kun1   

[kun1@localhost root]$ pwd   ##不带-切换用户 家目录还是前用户的家目录

/root

[kun1@localhost root]$ echo  $PATH       ##环境变量也是前用户的

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

 

[root@localhost ~]# su - kun1   

上一次登录:三 4月  4 20:16:52 CST 2018pts/0 上

[kun1@localhost ~]$ pwd       ##家目录切换到新用户的家目录下

/home/kun1/

[kun1@localhost ~]$ !echo

echo  $PATH                           ##环境变量也是新用户的

/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/kun1//.local/bin:/home/kun1//bin

 

-c:让切换后用户执行命令再恢复身份

 

[root@localhost ~]# su - -c "touch /tmp/12.txt" kun1    ##用kun1新建文档

[root@localhost ~]# ls -l /tmp/

总用量 0

-rw-r--r--. 1 kun1 kun2  0 4月   4 20:26 12.txt    

 

实例

[root@localhost ~]# useradd -M kun3   ##新建用户kun3 并不建立家目录

[root@localhost ~]# tail -1 /etc/passwd

kun3:x:8890:8890::/home/kun3:/bin/bash    ##虽然kun3有家目录路径 但实际没建这个目录

[root@localhost ~]# ls -l /home/

总用量 0

drwx------. 2 111  111  62 4月   4 20:14 111

drwx------. 2 1389 1389 62 4月   2 07:51 dalao

drwx------. 2 kun1 111  62 4月   2 07:38 kun03

drwx------. 2 kun1 kun2 83 3月  29 08:31 kun1

drwx------. 2 kun2 kun2 83 3月  29 08:31 kun2

 

[root@localhost ~]# su - kun3   

su: 警告:无法更改到 /home/kun3 目录: 没有那个文件或目录

-bash-4.2$    ##没有家目录和里面的配置文件显示的shell

 

思路:由于没有目录和配置文件

1.创建家目录

2.并把配置文件复制到家目录下

3.更改家目录和文件的权限

 

[root@localhost ~]# mkdir /home/kun3  ##创建kun3目录

 

[root@localhost ~]# ls -al /etc/skel/   ##这个是配置文件模版的路径

总用量 24

drwxr-xr-x.  2 root root   62 3月   4 20:40 .

drwxr-xr-x. 74 root root 8192 4月   4 20:30 ..

-rw-r--r--.  1 root root   18 8月   3 2017 .bash_logout

-rw-r--r--.  1 root root  193 8月   3 2017 .bash_profile

-rw-r--r--.  1 root root  231 8月   3 2017 .bashrc

 

[root@localhost ~]# cp /etc/skel/.bash* /home/kun3  ##复制配置文件

[root@localhost ~]# ls -al /home/kun3

总用量 12

drwxr-xr-x. 2 root root  62 4月   4 20:42 .

drwxr-xr-x. 8 root root  79 4月   4 20:40 ..

-rw-r--r--. 1 root root  18 4月   4 20:42 .bash_logout

-rw-r--r--. 1 root root 193 4月   4 20:42 .bash_profile

-rw-r--r--. 1 root root 231 4月   4 20:42 .bashrc

 

[root@localhost ~]# chown -R kun3:kun3 /home/kun3/  ##修改目录的权限

[root@localhost ~]# ls -dl /home/kun3/

drwxr-xr-x. 2 kun3 kun3 62 4月   4 20:42 /home/kun3/

 

[root@localhost ~]# su - kun3     

上一次登录:三 4月  4 20:34:02 CST 2018pts/0 上

[kun3@localhost ~]$               ##显示成功

 

sudo命令

visudo:编辑sudo的配置文件来授权sudoer

由于我们想在kun1用户下来临时执行root的某些命令

 

[root@localhost ~]# visudo

找到下面这行

这里第一个ALL表示主机 第二个ALL表示主机上的用户 第三个ALL表示命令

加上 kun1       ALL=(ALL)      /usr/bin/ls, /usr/bin/cat

 

sudo:临时让用户以另一身份来执行指定命令 登录输入原用户的密码

用法:sudo 命令

 

[root@localhost ~]# su - kun1   

上一次登录:三 4月  4 20:26:00 CST 2018pts/0 上

[kun1@localhost ~]$ ls /root    ##kun1用户权限不够ls不了root

ls: 无法打开目录/root: 权限不够

 

[kun1@localhost ~]$ sudo ls /root        ##第一次登录会提示并输入当前用户的密码

我们信任您已经从系统管理员那里了解了日常注意事项。

总结起来无外乎这三点:

    #1) 尊重别人的隐私。

    #2) 输入前要先考虑(后果和风险)。

    #3) 权力越大,责任越大。

[sudo] kun1 的密码:

1.txt  anaconda-ks.cfg    学习计划.txt

[kun1@localhost ~]$ sudo cat /root/1.txt     ##第二次使用就不需要输入密码

sadfsdfs

 

我们想让kun2用户使用sudo时候不输人密码 那么在visudo设置如下

kun2       ALL=(ALL)     NOPASSWD: /usr/bin/ls, /usr/bin/cat

 

[root@localhost ~]# su - kun2

上一次登录:四 3月 29 07:45:10 CST 2018pts/0 上

[kun2@localhost ~]$ sudo ls /root/        ##kun2执行sudo ls时候不用输人密码

1.txt  anaconda-ks.cfg    学习计划.txt

 

visudo还有其他用法

 

这里我们为命令做别名(别名名称要使用大写)

 

[root@localhost ~]# su - kun2

上一次登录:三 4月  4 22:04:27 CST 2018pts/0 上

[kun2@localhost ~]$ sudo ls /root/

1.txt  anaconda-ks.cfg    学习计划.txt

 

也可以为以组来配置visudo

 

[root@localhost ~]# tail -5 /etc/passwd   ##kun1和kun2 都是在1001组里面 1001是kun2组

kun1:x:8888:1001::/home/kun1/:/bin/bash  

kun2:x:1001:1001::/home/kun2:/bin/bash

 

[root@localhost ~]# su - kun1   

上一次登录:三 4月  4 21:53:24 CST 2018pts/0 上

[kun1@localhost ~]$ sudo ls /root

1.txt  anaconda-ks.cfg    学习计划.txt

 

限制root远程登录

为了安全 一般会禁止root远程登录 使用普通用户登录

 

[root@localhost ~]# vi /etc/ssh/sshd_config  ##进入ssh的配置文件

把PermitRootLogin 改为no 

 

然后重启远程登录服务 

 

[root@localhost ~]# systemctl restart sshd.service

 

再去远程登录看看

 

 

这里我们不知道root的登录密码,又想让普通用户去登录root 可以用sudo su 来实现

先在配置配置文件设置 

[root@localhost ~]# visudo

 

[kun1@localhost ~]$ sudo su -   ##成功登录root用户

上一次登录:三 4月  4 21:41:17 CST 2018从 192.168.80.1pts/1 上

[root@localhost ~]# whoami

root

转载于:https://my.oschina.net/u/3803568/blog/1789919

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值