歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux嵌入式

Digi推出業內最小Linux嵌入式設

常規來說,root的權限是不可隨意分割的,所以很難既給某個用戶完成一件任務的權力,比如說備份,而又不給這個人自由運行系統的權力。如果把root給多個人去使用,顯然是個不安全的做法。

    針對這個問題,現在廣泛的采用SUDO的方式來解決。

    所謂的SUDO就是以普通用戶的身份登錄到系統,當需要完成某項任務時(假設此任務普通用戶無權使用),在管理員root的授權下來完成。呵呵,對了,有點像WINDOWS中的委派。一旦用戶得到授權後就可以去做原本自己不能做的事情,從而幫助管理員管理,減輕管理員的負擔。

    執行sudo時,它會讀取文件/etc/soduers,這個文件列出了授權使用sudo的人以及他們在每台主機上可以運行的命令。如果提供給sudo的命令允許運行,那麼sudo就提示輸入這個用戶自己的口令並執行命令。在隨後的5分鐘內,再次使用sudo則不需輸入口令。sudo沒有定義好的日志文件,所以如果你要使用sudo的日志,你還得自己去配置一下。至於怎麼去配咱們以後討論。

    如果你要配置sudo,建議你使用visudo來配置/etc/sudoers文件,它會檢查是否有人在同時編輯修改此文件。以下是一個例子:

    
## Host Aliases
Host_Alias     FILESERVERS = fs1, fs2
Host_Alias     MAILSERVERS = smtp, smtp2
 
## 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
 
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
tom,z3  FILESERVERS=ALL
jerry    MAILSERVERS=/usr/sbin/tcpdump:FILESERVERS=(L4)DUMP
w5       ALL=(ALL)ALL,!SHELLS


  上面第一部分是用來定義主機的,如果不定義那麼你就得在第三部分手動寫入。第二部分是用來定義服務的,如果不定義那麼你就得在第三部分手動寫入。建議你使用這種別名的方式來定義你的“操作”,這樣sudoers的可讀性更強。

    第三部分是關於權限的定義,也就是說誰可以用sudo干什麼事情。其中格式如下:

  適用的用戶  要注意的主機=(轉換成誰的身份)可以使用什麼命令

  如果沒有定義括號中的內容,則表示只以root身份執行相應操作。!表示“除什麼以外”。
   
  當普通用戶,例如tom,登錄到系統要執行本來沒有權限執行的操作時,他可以鍵入如下命令: 

    sudo su –

   然後鍵入自己的密碼就可以了。
  
 
Alias主要分成4種
Host_Alias
Cmnd_Alias
User_Alias
Runas_Alias
1) 配置Host_Alias:就是主機的列表
Host_Alias      HOST_FLAG = hostname1, hostname2, hostname3
2) 配置Cmnd_Alias:就是允許執行的命令的列表
Cmnd_Alias      COMMAND_FLAG = command1, command2, command3
3) 配置User_Alias:就是具有sudo權限的用戶的列表
User_Alias USER_FLAG = user1, user2, user3
4) 配置Runas_Alias:就是用戶以什麼身份執行(例如root,或者oracle)的列表
Runas_Alias RUNAS_FLAG = operator1, operator2, operator3
5) 配置權限
配置權限的格式如下:
USER_FLAG HOST_FLAG=(RUNAS_FLAG) COMMAND_FLAG
如果不需要密碼驗證的話,則按照這樣的格式來配置
USER_FLAG HOST_FLAG=(RUNAS_FLAG) NOPASSWD: COMMAND_FLAG

  
    使用sudo的好處
    1, 由於有日志可以提高安全審計的能力
    2, 操作員不需要不受限制的root特權就能完成許多任務
    3, 保證root密碼的安全
    4, 比使用su快
    5, 不需要改變root密碼就能收回某些權限
    6, 只需維護sudoers就可維護所以用戶的特權列表
    7, 降低遺留root shell的概率
    8, 可以使用單個文件來控制對整個網絡的訪問權限
        當然也有不足,比如說如果突破了能執行sudo命令的個人賬戶,就等同突破了root賬戶本身

Copyright © Linux教程網 All Rights Reserved