1. 程式人生 > >三周第三次課(4月4日)

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

打開 tool 行數 不需要輸入密碼 which com ongl 解決 ase

3.7 su命令

  • su用於切換用戶
    #命令中有無-的區別;無-切換用戶還會在上一個用戶的家目錄下和上一個用戶的配置。加-了會到該目錄的家目錄下,以及會加載該用戶配置文件,這樣才能徹底切換用戶。
    # 沒加 - 
    [root@long1 ~]# su longlong01  # 沒有-
    [longlong01@long1 root]$ 
    # 加 - 
    [root@long1 ~]# su - longlong01  # 有 -
    [longlong01@long1 ~]$ 
    
    # 臨時用另外的用戶身份去創建一條命令但是不用切換用戶:su - -c "ccc" uuu
    [root@long1 ~]# su
    - -c "touch /home/longlong02/susu.txt" longlong02 # 以root身份 [root@long1 ~]# ls -l /home/longlong02 -rw-rw-r--. 1 longlong02 longlong02 0 8月 16 10:36 susu.txt # 文件為longlong02創建
  • 切換用戶-bash-4.2$ 問題:那是因為該用戶沒有家目錄,用usermod命令設置用戶家目錄就可以了。
    # 情況一:原用戶把家目錄路徑換到別的地方
    # 解決辦法:把家目錄路徑切換回來
    [longlong01@long1 
    ~]$ su - longlong02 -bash-4.2$ 登出 [root@long1 ~]# usermod -d /home/longlong02 longlong02 [root@long1 ~]# su - longlong02 [longlong02@long1 ~]$ # 情況二:切換家目錄了缺少配置文件 # 找到系統默認配置文件 [root@long1 ~]# ls -la /etc/skel/ drwxr-xr-x. 2 root root 62 6月 28 21:11 . drwxr-xr-x. 76 root root 8192 8月 16 10:34 .. -rw-r--r--. 1
    root root 18 8月 3 2016 .bash_logout # -rw-r--r--. 1 root root 193 8月 3 2016 .bash_profile # -rw-r--r--. 1 root root 231 8月 3 2016 .bashrc # [root@long1 ~]# cp /etc/skel/.bash* /home/longlong02 # 拷貝這三個文件 [root@long1 ~]# chown -R longlong02:longlong02 /home/longlong02 # 更改所有組與所有者 [root@long1 ~]# su - longlong02 [longlong02@long1 ~]$

3.8 sudo命令

可以讓A用戶臨時有B用戶的身份或者root用戶的身份。

  • visudo:可以查看sudo配置文件
    ......
    # 找到這一句;用戶longlong02,longlong01為自己添加
    ## Allow root to run any commands anywhere
    root    ALL=(ALL)       ALL
    #用戶         略  獲得哪個用戶權限       可使用所有命令 
    longlong02    ALL=(ALL)                  ALL
    #用戶         略  獲得root用戶權限       可使指定命令 
    longlong01    ALL=(root)                 /bin/ls, /bin/mv, /bin/cat   ==LONG_CMD(可以把內容替換成這個,以為下面設置了命令別名包含了這些命令)==                                                   VVV LONG_CMD 往下看VVV
    #用戶         略  獲得root用戶權限   不用輸入密碼  可使指定命令
    longlong03    ALL=(root)                 NOPASSWD: /bin/ls, /bin/mv, /bin/cat
    ...... 
    ## Host Aliases
    #                組庫          組名(自己添加)
    # Host_Alias     FILESERVERS = fs1, fs2
    ......
    ## User Aliases
    #            用戶庫   用戶名(自己添加)
    # User_Alias ADMINS = jsmith, mikem
    ......
    ## Networking
    # 命令別名   命令庫       自己添加的命令 
    # Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool ==Cmnd_Alias LONG_CMD = /bin/ls, /bin/mv, /bin/cat== (==自己添加的==)  
    ......
    
    # ":set nu":可以查看行數
    # 編輯完輸入":wq"退出
  • which ccc:查看命令位置
    [root@long1 ~]# which su
    /bin/su
  • sudo用法
    [longlong01@long1 ~]$ ls /root
    ls: 無法打開目錄/root/: 權限不夠
    [longlong01@long1 ~]$ sudo ls /root/
    1.txt  2.txt  anaconda-ks.cfg  Readme.txt

3.9 限制root遠程登錄

  • visudo:可以查看sudo配置文件
    ......
    ## User Aliases
    #            
    # User_Alias ADMINS = jsmith, mikem
    User_Alias LONGS = LONG01, LONG02, LONG03       # 自己添加
    ......
    ## Allow root to run any commands anywhere
    root    ALL=(ALL)       ALL
    #                       (執行這個命令不需要輸入密碼)
    LONGS   ALL=(ALL)       NOPASSWD: /usr/bin/su   # 自己添加  
    
    # 編輯完使用效果如下,登錄root不用輸入密碼
    [root@long1 ~]# su - longlong01
    上一次登錄:三 8月 16 10:32:32 CST 2017pts/0 上
    [longlong01@long1 ~]$ sudo su -
    上一次登錄:三 8月 16 20:52:22 CST 2017從 192.168.227.1pts/1 上
    [root@long1 ~]# 
    
    [root@long1 ~]# vi /etc/ssh/sshd_config     # 編輯配置文件,使root用戶不能直接登錄,只能用普通用戶
    ......
    #LoginGraceTime 2m
    #PermitRootLogin yes    # 改成PermitRootLogin no(不允許root用戶登錄,記得去掉#)
    ......
    [root@long1 ~]# systemctl restart sshd.service  #  重啟服務
    
    [longlong01@long1 ~]$ sudo su - root    # 這樣可以登錄root用戶

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