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

3.7 su命令

1. su命令:

用於切換用戶,以及用其餘用戶身份運行命令。python

2. 選項:

2.1 su gavin

切換到gavin帳戶,可是還有完全切換過來,pwd還在root下vim

[gavin@localhost root]$ whoami安全

gavinbash

[gavin@localhost root]$ idssh

uid=1001(gavin) gid=1001(gavin) 組=1001(gavin)ui

[gavin@localhost root]$ pwdspa

/root.net

2.2 su - gavin

切換到gavin帳戶,加-是爲了完全切換用戶,pwd查看是在用戶家目錄,會加載用戶目錄下的配置文件。rest

[gavin@localhost ~]$ whoamiget

gavin

[gavin@localhost ~]$ id

uid=1001(gavin) gid=1001(gavin) groups=1001(gavin)

[gavin@localhost ~]$ pwd

/home/gavin

2.3 su - -c 「touch /tmp/gavin.txt" gavin

-c以gavin用戶來運行命令

[root@localhost ~]# su - -c "touch /tmp/gavin.txt" gavin

[root@localhost ~]# ll /tmp

總用量 0

-rw-rw-r-- 1 gavin gavin 0 4月 1 04:54 gavin.txt

2.4 當用戶沒有家目錄時

[root@localhost ~]# useradd -M zhang

[root@localhost ~]# passwd --stdin zhang

更改用戶 zhang 的密碼 。

zhang

passwd:全部的身份驗證令牌已經成功更新。

[root@localhost ~]# su - zhang

su: 警告:沒法更改到 /home/zhang 目錄: 沒有那個文件或目錄

-bash-4.2$

2.4.1 爲用戶建立家目錄

/etc/skel 用戶家目錄下配置文件模版

[root@localhost ~]# mkdir /home/zhang/

[root@localhost ~]# ls -a /etc/skel

. .. .bash_logout .bash_profile .bashrc

[root@localhost ~]# cp /etc/skel/.bash* /home/zhang/

[root@localhost ~]# chown -R zhang:zhang /home/zhang/

[root@localhost ~]# chmod 700 /home/zhang/

[root@localhost ~]# su - zhang

上一次登陸:日 4月 1 04:57:27 CST 2018pts/0 上

[zhang@localhost ~]$

2.5 備註

普通用戶顯示$

[zhang@localhost ~]$

root用戶顯示#

[root@localhost ~]#

root用戶戶下切換到普通用戶不須要密碼,在普通用戶下也能夠切換到其餘用戶,須要輸入其餘用戶的密碼。exit退出切換的帳戶。

 

3.8 sudo命令

1. sudo命令

sudo容許容許用戶臨時以超級用戶或安全策略指定的另外一個用戶執行命令,多用於普通用戶以root權限執行命令。

2. sudo配置

visudo命令編輯sudo配置文件

visudo實際上編輯的是/etc/sudoers 文件,不建議直接用vim直接編輯,由於出現一些語法上錯誤不會提示。

2.1 給用戶gavin 「ls、cat、cd」等命令權限:

2.1.1 注:

  • gavin 表示用戶gavin
  • ALL=(ALL) 第一個ALL表示主機名;第二個ALL是指目標用戶,也就是以誰的身份去執行;
  • 第三列表示命令,命令最好用絕對路徑並以逗號空格分開

2.1.2 演示:

[root@localhost ~]# su - gavin

上一次登陸:日 4月 1 09:34:56 CST 2018pts/0 上

[gavin@localhost ~]$ ls /root

ls: cannot open directory /root: Permission denied

[gavin@localhost ~]$ sudo ls /root

[sudo] password for gavin:

anaconda-ks.cfg fonts test.py ziti

[gavin@localhost ~]$ cat /root/test.py

cat: /root/test.py: Permission denied

[gavin@localhost ~]$ sudo cat /root/test.py

#! /usr/bin/python

print "hello world"

用戶使用sudo時,必須先輸入密碼,以後有5分鐘的有效期限,超過時限則必須從新輸入密碼。

2.2 使用sudo時免密碼:

編輯配置文件,在命令前面加上NOPASSWD:

[root@localhost ~]# su - zhang

上一次登陸:日 4月 1 05:02:17 CST 2018pts/0 上

[zhang@localhost ~]$ sudo ls /root

anaconda-ks.cfg fonts test.py ziti

[zhang@localhost ~]$ sudo cat /root/test.py

#! /usr/bin/python

print "hello world"

2.3 給用戶組加上以root身份使用命令的權限:

2.4 語法錯誤提示:

3.9 限制root遠程登陸

1. 編輯/etc/ssh/sshd_config配置文件

vim /etc/ssh/sshd_config

把 #PermitRootLogin yes 修改爲 PermitRootLogin no

2. 重啓sshd服務

systemctl restart sshd.service

3. 演示:

限制root用戶用密碼遠程登陸(只能加key登陸)

1. 編輯配置文件:

把 PasswordAuthentication yes 改成 PasswordAuthentication no

2. 重啓sshd服務:

systemctl restart sshd

相關文章
相關標籤/搜索