201104291021Linux -- 一些使用者權限管控的方式

1.透過sudo讓一般使用者可以執行root指令

修改/etc/sudoers,利用visudo修改這個檔案(visudo會檢查檔案內容是否正確)

文件內容格式:

 

使用者帳號  登入者的來源主機名稱=(可切換的身份)  可下達的指令

root         ALL=(ALL)                          ALL   <==這是預設值

 

ex

edward     ALL=(root)                NOPASSWD: /usr/bin/tail -f /var/log/vsftpd.log

edward     ALL=(root)                NOPASSWD: /usr/bin/reboot

 

2.不讓使用者執行特定指令

  修改使用者家目錄下的.bashrc檔案,利用alias指令將特定A指令改為B指令

  (如果使用者知道執行檔的實際路徑則這個方法無效)

 

2.1 # chmod root:root /home/user/.bashrc   先執行左列指令,變更檔案權限預防使用者自行修改內容

2.2 修改內容ex

      alias cat='cd ~'        cat改為切換到使用者家目錄

      alias unalias='cd ~'     預防使用者透過unalias取消alias的設定

      alias alias='cd ~'       預防使用者透過alias重新定義alias

 

3.SFTP的權限限制

3.1 限制使用者只能在家目錄中移動

   透過chroot的機制可以限制特定使用者或群組只能在家目錄中存取檔案(openssh需更新到4.8版之後)

3.1.1 修改/etc/ssh/sshd_config,修改內容如下

   # override default of no subsystems

#Subsystem      sftp    /usr/libexec/openssh/sftp-server

Subsystem       sftp    internal-sftp -l INFO -f LOCAL1

   取消sftp-server的使用改為internal-sftp,改為這個模式後被套用chroot機制的使用者只能使用sftp這個功能,無法利用ssh遠端登入伺服器

 

AuthorizedKeysFile /home/chroot/home/%u/.ssh/authorized_keys

指定使用者的authorized_keys存放位置

 

Match Group sftponly

  ChrootDirectory /home/chroot/home

  X11Forwarding no

  AllowTcpForwarding no

  ForceCommand internal-sftp

   指定只要是屬於sftponly群組的使用者都會被限制在/home/chroot/home目錄中,/home/chroot/home每一層目錄的擁有者與群組都需設定為root,之後再各別建立使用者or群組可以使用的目錄

Match User ssmax,ssmax2,ssmax3

  ChrootDirectory /home/chroot/home/

  X11Forwarding no

  AllowTcpForwarding no

  ForceCommand internal-sftp

指定將ssmaxssmax2ssmax3三位使用者限制在/home/chroot/home目錄中

 

3.2 禁止特定使用者使用sftp存取檔案

變更sftp-server這個檔案的權限,讓特定使用者無法執行sftp-server(無法與chroot並用)

3.2.1 # groupadd sftpgroup

建立可使用sftp的群組

   # chmod 750 /usr/libexec/sftp-server

修改sft-server執行檔權限

   # chown root:sftpgroup /usr/libexec/sftp-server

將開放使用sftp的使用者加入sftpgroup群組

   # usermod –g sftpgroup   (或編輯/etc/passwd檔案內容)

平均分數:0 顆星    投票人數:0
我要評分:
回應
    沒有新回應!