用戶身份與文件權限---su命令與sudo服務

用戶身份與文件權限---su命令與sudo服務

1,su 命令

su 命令可以在當前用戶不退出的情況下切換用戶身份

  • root 管理員切換普通用戶不需要密碼驗證
  • 普通用戶切換到 root 管理員就需要進行密碼驗證
[root@study doc]# su - chen
Last login: Thu Dec 20 15:23:58 CST 2018 on pts/0
[chen@study ~]$ id
uid=1000(chen) gid=1000(chen) groups=1000(chen)

su 命令與用戶名之間有一個減號(-),這將完全切換為新用戶,即把環(huán)境變量也變更為新用戶的相應信息,而不保留原始信息

2,sudo 命令

sudo 命令把特定命令的執(zhí)行權限賦予給定用戶,避免泄露 root 管理員密碼

sudo 服務中的可用參數(shù)以及作用

  • -h:列出幫助信息
  • -l:列出當前用戶可執(zhí)行的命令
  • -u用戶名或UID值:已指定的用戶身份執(zhí)行命令
  • -k:清空密碼的有效時間,下次執(zhí)行 sudo 時需要再次進行密碼驗證
  • -b:在后臺執(zhí)行指定的命令
  • -p:更改詢問密碼的提示語

sudi 命令功能:

  • 限制用戶執(zhí)行指定的命令
  • 記錄用戶執(zhí)行的沒一條指令
  • 配置文檔(/ettc/sudioers)提供集中的用戶管理、權限與主機等參數(shù)
  • 驗證密碼后5分鐘內(默認值)無須再讓用戶再次驗證密碼

visudo 命令

只有 root 管理員才可以使用 visudo 命令編輯服務的配置文件

sudo命令提供 visudio 命令來配置用戶權限,避免直接修改配置文件時可能出現(xiàn)的問問題。且這條命令在配置用戶權限時將禁止多個用戶同時修改sudoers配置文件,還可以對配置文件內的參數(shù)進行語法檢查,并在發(fā)現(xiàn)參數(shù)錯誤時進行報錯。

示例1
在下方所示位置增加普通用戶 chen 可執(zhí)行命令權限

93行添加信息為:
誰可以使用 允許使用的主機=(以誰的身份) 可執(zhí)行命令的列表

[root@study ~]# visudo
     90 ##
     91 ## Allow root to run any commands anywhere
     92 root    ALL=(ALL)       ALL
     93 chen    ALL=(ALL)       ALL ## 添加普通用戶 chen 的信息

使用 sudo -l 查看 chen 的所有可執(zhí)行命令
注意:下面命令驗證的是該普通用戶的命令,而不是root管理員的密碼

[root@study ~]# su - chen
Last login: Thu Dec 20 18:30:13 CST 2018 on pts/0
[chen@study ~]$ sudo -l
[sudo] password for chen:  # 輸入用戶 chen 的密碼,而不是 root 的
Matching Defaults entries for chen on study:
    !visiblepw, always_set_home, match_group_by_gid, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION
    LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin

User chen may run the following commands on study:
    (ALL) ALL

驗證1:普通用戶查看 /root 目錄

[chen@study ~]$ ls /root
ls: cannot open directory /root: Permission denied
[chen@study ~]$ sudo ls /root
backup.taar.gz  linux  mysql80-community-release-el7-1.noarch.rpm  test

示例2:僅賦予普通用戶 cat 命令root的權限
生產(chǎn)環(huán)境不允許某個普通用戶擁有整個系統(tǒng)所有命令的最高權限,因此ALL參數(shù)不適合,因此只能賦予普通用戶具體的命令以滿足工作需求,受到必要的權限舒服
注意:如果需要讓某個用戶以 root 管理員的身份執(zhí)行命令,一定要給出命令的絕對路徑(可用 whereis 命令查找)

[root@study ~]# whereis cat
cat: /usr/bin/cat /usr/share/man/man1/cat.1.gz
[root@study ~]# visudo
##
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
chen    ALL=(ALL)       /usr/bin/cat  ## 添加普通用戶 chen 的信息

驗證2:普通用戶用命令 cat 查看 /etc/shadow 文件

[root@study ~]# su - chen
Last login: Fri Dec 21 14:07:12 CST 2018 on pts/1
[chen@study ~]$ cat /etc/shadow
cat: /etc/shadow: Permission denied
[chen@study ~]$ sudo cat /etc/shadow
[sudo] password for chen:   # 此除輸入該普通用戶的密碼
root:$6$nivk2N7o$zTJ/PFjcpwlpL80CWjfQCnIhM7K75Oc0PU/RYOWLJBl7/XZ9spuJv4ERQ60bTCh0uZp1FMOwqkV7OO.4N7GgG0:17687:0:99999:7:::
bin:*:17110:0:99999:7:::
daemon:*:17110:0:99999:7:::
adm:*:17110:0:99999:7:::
... ... ... 省略下方內容

示例3:去除使用sudo命令時的密碼驗證

[root@study ~]# visudo
     90 ##
     91 ## Allow root to run any commands anywhere
     92 root    ALL=(ALL)       ALL
     93 chen    ALL=NOPASSWD: /usr/bin/cat  ## 添加普通用戶 chen 的信息 

驗證3:清除 sudo 密碼有效時間,普通用戶再使用 cat 查看 /etc/shadow

[root@study ~]# su - chen
Last login: Fri Dec 21 14:22:58 CST 2018 on pts/1
[chen@study ~]$ sudo -k
[chen@study ~]$ sudo cat /etc/shadow
root:$6$nivk2N7o$zTJ/PFjcpwlpL80CWjfQCnIhM7K75Oc0PU/RYOWLJBl7/XZ9spuJv4ERQ60bTCh0uZp1FMOwqkV7OO.4N7GgG0:17687:0:99999:7:::
bin:*:17110:0:99999:7:::
daemon:*:17110:0:99999:7:::
adm:*:17110:0:99999:7:::
... ... ...  省略下方內容
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容