1. 程式人生 > >6.13 3.7-3.9

6.13 3.7-3.9

sudo su 限制root遠程登錄

3.7 su命令

su命令用於切換用戶

[root@hyc-01-01 ~]# whoami 查看當前用戶

root

[root@hyc-01-01 ~]# su - hyc2

[hyc2@hyc-01-01 ~]$ id 查看當前用戶

uid=1006(hyc2) gid=1001(hyc1) =1001(hyc1) 環境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

susu-的區別:

都可以切換用戶;

su只會切換登錄的用戶,切換時不會加載被切換用戶的配置文件、環境變量等內容;

su-會直接切換到用戶家目錄下加載被切換用戶的配置文件、環境變量等內容;

su - –c 指定以某個用戶的身份執行某個命令

[root@hyc-01-01 ~]# whoami

root

[root@hyc-01-01 ~]# su - -c "touch /tmp/ldp" hyc

[root@hyc-01-01 ~]# ls -l /tmp/ldp

-rw-rw-r--. 1 hyc hyc 0 6 13 20:54 /tmp/ldp ldp文件的屬主和屬組為hyc

[root@hyc-01-01 ~]# tail -7 /etc/passwd

hyc:x:1000:1000::/home/hyc:/bin/bash

hyc1:x:1001:1001::/home/hyc1:/bin/bash

hyc2:x:1006:1001::/home/hyc2:/bin/bash

hyc3:x:1007:1005::/home/hyc111:/sbin/nologin

hyc4:x:1008:1008::/home/hyc4:/bin/bash

hyc5:x:1014:1001::/home/abc:/sbin/nologin

hyc6:x:1015:1015::/home/hyc6:/bin/bash

[root@hyc-01-01 ~]# date

2018 06 13 星期三 21:00:22 CST

root切換到普通用戶不需要密碼,從一個普通用戶切換到另一個普通用戶需要密碼

[root@hyc-01-01 ~]# whoami

root

[root@hyc-01-01 ~]# su - hyc

上一次登錄:三 6 13 21:01:10 CST 2018pts/1

[hyc@hyc-01-01 ~]$ whoami

hyc

[hyc@hyc-01-01 ~]$ su - hyc1

密碼:

上一次登錄:五 6 8 01:09:00 CST 2018pts/0

最後一次失敗的登錄:三 6 13 21:01:33 CST 2018pts/1

最有一次成功登錄後有 2 次失敗的登錄嘗試。

[root@hyc-01-01 ~]# ls /home home目錄不存在用戶hyc4的家目錄

3.txt- hyc hyc1 hyc111 hyc2 hyc5 hyc6 hyc7

[root@hyc-01-01 ~]# tail -7 /etc/passwd

hyc:x:1000:1000::/home/hyc:/bin/bash

hyc1:x:1001:1001::/home/hyc1:/bin/bash

hyc2:x:1006:1001::/home/hyc2:/bin/bash

hyc3:x:1007:1005::/home/hyc111:/sbin/nologin

hyc4:x:1008:1008::/home/hyc4:/bin/bash

hyc5:x:1014:1001::/home/abc:/sbin/nologin

hyc6:x:1015:1015::/home/hyc6:/bin/bash

[root@hyc-01-01 ~]# su - hyc4 導致切換時無法加載用戶hyc4的配置文件

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

-bash-4.2$

解決辦法:

用戶缺少家目錄

[root@hyc-01-01 ~]# mkdir /home/hyc4 創建hyc4家目錄

[root@hyc-01-01 ~]# chown hyc4:hyc4 /home/hyc4 修改目錄權限

[root@hyc-01-01 ~]# su - hyc4

上一次登錄:三 6 13 21:07:57 CST 2018pts/1

-bash-4.2$ 由於缺少配置文件導致依然無法正常登錄

[root@hyc-01-01 ~]# ls -al /etc/skel/ 該目錄下為用戶家目錄配置文件模板

總用量 24

drwxr-xr-x. 2 root root 62 5 25 04:49 .

drwxr-xr-x. 74 root root 8192 6 13 21:07 ..

-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@hyc-01-01 ~]# cp /etc/skel/.bash* /home/hyc4 復制模板到hyc4家目錄下

[root@hyc-01-01 ~]# chown -R hyc4:hyc4 !$

chown -R hyc4:hyc4 /home/hyc4 連帶修改hyc4目錄下所有文件的屬主和屬組

[root@hyc-01-01 ~]# su - hyc4

上一次登錄:三 6 13 21:13:04 CST 2018pts/1

[hyc4@hyc-01-01 ~]$ 切換正常

普通用戶顯示$,root用戶顯示#

3.8 sudo命令

可以讓普通用戶臨時擁有某個用戶(包括root)的權限

[root@hyc-01-01 ~]# visudo

visudo專門用於編輯/etc/sudoers.tmp文件,可以幫助檢測語法錯誤;

若使用vi命令無法檢測語法錯誤;

91 ## Allow root to run any commands anywhere

92 root ALL=(ALL) ALL 允許root用戶在任何地方以任何用戶的身份執行任何命令

93 hyc ALL=(root) ls,mv,cat 允許hyc用戶在任何地方以root身份執行lsmvcat

第二段的ALL通常不修改,這個ALL=後面的括號中寫需要獲得哪個用戶的身份,可以寫ALL表示任何用戶;

第三段可以寫多個或一個命令表示執行的命令,寫ALL則為執行任何命令;

正常保存退出出現提示:

>>> /etc/sudoers: 語法錯誤 near line 93 <<<

現在做什麽? 此處回車出現以下信息

選項有:

重新編輯 sudoers 文件(e)

退出,不保存對 sudoers 文件的更改(x)

退出並將更改保存到 sudoers 文件(危險!)(Q)

現在做什麽? e重新編輯

91 ## Allow root to run any commands anywhere

92 root ALL=(ALL) ALL

93 hyc ALL=(root) /usr/bin/ls, /usr/bin/mv, /usr/bin/cat

最後一段命令需要寫絕對路徑;

命令間用逗號和空格分開;

[hyc@hyc-01-01 ~]$ ls /root 普通用戶無權限查看root家目錄

ls: 無法打開目錄/root: 權限不夠

[hyc@hyc-01-01 ~]$ sudo /usr/bin/ls /root/ 使用戶hycroot身份執行ls命令

我們信任您已經從系統管理員那裏了解了日常註意事項。

總結起來無外乎這三點:

#1) 尊重別人的隱私。

#2) 輸入前要先考慮(後果和風險)

#3) 權力越大,責任越大。

[sudo] hyc 的密碼: 第一次用sudo執行命令時都要輸入當前用戶的密碼

111 222 3.txt anaconda-ks.cfg.1 hyc2 ls2 test.txt 新建文本文檔.txt

[hyc@hyc-01-01 ~]$ sudo /usr/bin/ls /root/

111 222 3.txt anaconda-ks.cfg.1 hyc2 ls2 test.txt 新建文本文檔.txt

[root@hyc-01-01 ~]# visudo

91 ## Allow root to run any commands anywhere

92 root ALL=(ALL) ALL

93 hyc ALL=(root) NOPASSWD:/usr/bin/ls, /usr/bin/mv, /usr/bin/cat

在最後一段最前面加NOPASSWD:則首次使用sudo時將不提示輸入密碼

[root@hyc-01-01 ~]# su - hyc

上一次登錄:三 6 13 22:11:03 CST 2018pts/1

[hyc@hyc-01-01 ~]$ sudo ls /root 此處未提示密碼

111 222 3.txt anaconda-ks.cfg.1 hyc2 ls2 test.txt 新建文本文檔.txt

[root@hyc-01-01 ~]# visudo

# Host_Alias FILESERVERS = fs1, fs2 為主機做別名

# Host_Alias MAILSERVERS = smtp, smtp2

# User_Alias ADMINS = jsmith, mikem 為用戶做別名

27 # Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dh client, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /s bin/iwconfig, /sbin/mii-tool

28 Cmnd_Alias HYC_CMD = /usr/bin/ls, /usr/bin/mv, /usr/bin/cat

91 ## Allow root to run any commands anywhere

92 root ALL=(ALL) ALL

93 hyc ALL=(root) HYC_CMD

此處命令別名需要大寫

[root@hyc-01-01 ~]# su - hyc

上一次登錄:三 6 13 22:20:46 CST 2018pts/1

[hyc@hyc-01-01 ~]$ sudo ls /root 修改別名成功

[sudo] hyc 的密碼:

111 222 3.txt anaconda-ks.cfg.1 hyc2 ls2 test.txt 新建文本文檔.txt

3.9 限制root遠程登錄

用戶無法直接遠程到root,但可以執行su命令切換到root

設置用戶可以以任何用戶的身份使用su命令方便從普通用戶切換到root

[root@hyc-01-01 ~]# visudo

User_Alias HYCS = hyc, hyc1

## Allow root to run any commands anywhere

root ALL=(ALL) ALL

hyc ALL=(root) HYC_CMD

HYCS ALL=(ALL) NOPASSWD:/usr/bin/su

[root@hyc-01-01 ~]# su - hyc

上一次登錄:三 6 13 23:30:41 CST 2018pts/1

[hyc@hyc-01-01 ~]$ sudo su – 在使用su時直接獲得root權限執行

上一次登錄:三 6 13 23:36:33 CST 2018pts/1

限制root用戶遠程登錄

[root@hyc-01-01 ~]# vi /etc/ssh/sshd_config

38 #PermitRootLogin no

[root@hyc-01-01 ~]# systemctl restart sshd.service 修改配置後重啟服務

此時會發現root用戶無法遠程登錄

[hyc@hyc-01-01 ~]$ su – root 用普通用戶登錄後切換到root下,發現需要密碼但不知道密碼,導致無法切換

密碼:

su: 鑒定故障

[hyc@hyc-01-01 ~]$

[hyc@hyc-01-01 ~]$ sudo su – root 使用sudo命令以root身份切換root不需要密碼

上一次登錄:三 6 13 23:56:40 CST 2018tty1

最後一次失敗的登錄:三 6 13 23:57:48 CST 2018pts/0

最有一次成功登錄後有 1 次失敗的登錄嘗試。

用戶執行su – root時獲得了root權限,所以切換root不需要密碼



6.13 3.7-3.9