su命令,sudo命令,限制root遠程登陸

su命令

  • 切換用戶 命令su的格式:su – username;普通用戶的su命令不加username時,就是切換到root用戶
    [user2@yong-02 ~]$ su -
    密碼:
    上一次登陸:三 4月  4 15:03:52 CST 2018pts/0 上
    [root@yong-02 ~]# su - user2
    上一次登陸:三 4月  4 15:04:14 CST 2018pts/0 上
    [user2@yong-02 ~]$ pwd
    /home/user2

     

  • su切換用戶,加不加「-」均可以,但仍是有區別的;不加「-」切換用戶後,環境變量仍是上一個用戶的;

- 號加上後會初始化當前用戶的各類環境變量linux

[root@yong-02 ~]# su - yyl
上一次登陸:三 4月  4 15:08:42 CST 2018pts/0 上
[yyl@yong-02 ~]$ pwd
/home/yyl
[yyl@yong-02 ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/yyl/.local/bin:/home/yyl/bin
  • su - -c 「命令」 username

指定某個用戶去執行某個命令;apache

[root@yong-02 ~]# su - -c "touch /tmp/yyl.txt" yyl ##以yyl用戶去建立yyl.txt
[root@yong-02 ~]# ls -l /tmp/y
yum.log  yyl.txt  
[root@yong-02 ~]# ls -l /tmp/yyl.txt 
-rw-rw-r--. 1 yyl yyl 0 4月   4 15:13 /tmp/yyl.txt
root@yong-02 ~ ]# su - yyl
上一次登陸:三 11月  1 22:50:40 CST 2018pts/0 上
[wuzhou@yong-02 ~]$ su - -c "touch /tmp/user7.111" user7
密碼:
[wuzhou@yong-02 ~]$ ls -l /tmp/user7.111
-rw-rw-r-- 1 user7 user7 0 11月  1 22:52 /tmp/user7.111
切換到用戶user5時,提示錯誤,發現是家目錄不對
[root@yong-02 ~]# su - user5
su: 警告:沒法更改到 /home/yyl 目錄: 權限不夠
[yyl@yong-02 ~]$ tail -5 /etc/passwd
user3:x:1004:1003::/home/user3:/sbin/nolongin
user4:x:1005:1003::/home/user4:/sbin/nolongin
user5:x:1007:1003::/home/yyl:/sbin/nologin
而後咱們修改用戶的家目錄
[root@yong-02 ~]# usermod -d /home/user5 user5
再次切換用戶,有提示這個賬戶目前不可用,緣由是家目錄裏面是空的
[root@yong-02 ~]# su - user5
上一次登陸:三 11月  1 22:40:06 CST 2018pts/0 上
This account is currently not available.
  • 小知識:/etc/skel/ 這個目錄時家目錄文件的模板,若是家目錄沒有這些文件,直接拷貝過去。
[root@yong-02 ~]# cp /etc/skel/.bash* /home/user5/

sudo命令

  • sudo能夠使一個普通用戶臨時去執行root的一個命令或者腳本,一般狀況下都是給普通用戶受權root用戶的身份;不使用su的緣由是,su切換的root用戶下,須要root的密碼,告知密碼很不安全;默認狀況下只有root用戶才能使用sudo命令,普通用戶要想使用sudo命令,必需要root預先設定;
  • 使用visudo命令編輯配置文件/etc/sudoers,若是沒有這個命令,須要用yum install -y sudo 找到下面內容
## Allow root to run any commands anywhere //容許root用戶去運行全部的命令,在任何地方
root    ALL=(ALL)       ALL命令
user7    ALL=(ALL)       NOPASSWD: /usr/bin/ls,/usr/bin/cat  //咱們能夠在下面添加一些用戶

ALL=(ALL) 左邊ALL 表示全部的登錄方式,遠程,ip/ip段 (ALL)表示以全部的用戶登錄;NOPASSWD: 不須要輸入密碼安全

[root@yong-02 ~]# su - user7
最後一次失敗的登陸:三 4月  4 15:17:48 CST 2018pts/0 上
[user7@yong-02 ~]$ sudo ls /root/
1.sh   1.txt.bak	auto_install_apache.sh	multi-user.target  reboot.target  test
1.txt  anaconda-ks.cfg	graphical.target	poweroff.target    rescue.target
[user7@yong-02 ~]$

例子:只容許普通用戶帳戶登陸,而普通用戶登陸後,不須要輸入密碼就能使用su切換到root帳戶下bash

  • 在visudo後面添加下面命令:
  • Cmnd_Alias YYL_CMD = /usr/bin/ls, /usr/bin/mv, /usr/bin/su //作命令別名

[root@yong-02 ~]# su - yyl
上一次登陸:三 4月  4 16:22:18 CST 2018pts/0 上
[yyl@yong-02 ~]$ sudo su -
對不起,用戶 yyl 無權以 root 的身份在 yong-02 上執行 /bin/su -。
[yyl@yong-02 ~]$ sudo ls /root
1.sh   1.txt.bak	auto_install_apache.sh	multi-user.target  reboot.target  test
1.txt  anaconda-ks.cfg	graphical.target	poweroff.target    rescue.target
[yyl@yong-02 ~]$ whoami
yyl

不容許root遠程登陸linux

/etc/ssh/sshd_config爲sshd服務配置文件,默認容許root帳戶經過ssh遠程登陸linux。若是想要不容許root用戶遠程登陸linux,具體操做方法:修改配置文件/etc/ssh/sshd_config,在文件中找到#PermitRootLogin yes 修改爲PermitRootLogin no,保存後,重啓sshd服務:ssh

[root@yong-02 ~]# vi /etc/ssh/sshd_config
[root@yong-02 ~]# systemctl restart sshd.service

從新打開一個窗口,提示錯誤了,root不能遠程登陸 spa

這個時候咱們能夠登陸普通用戶,而後使用sudo命令切換到root用戶下rest

[yyl@yong-02 ~]$ whoami
yyl
[yyl@yong-02 ~]$ sudo su -
[sudo] yyl 的密碼:
上一次登陸:三 4月  4 16:52:52 CST 2018pts/0 上
最後一次失敗的登陸:三 4月  4 16:53:59 CST 2018從 192.168.180.1ssh:notty 上
最有一次成功登陸後有 1 次失敗的登陸嘗試。
[root@yong-02 ~]# whoami
root
[root@yong-02 ~]#
相關文章
相關標籤/搜索