Permissions
創建對 Linux 伺服器中所有目錄具有讀取權限的使用者
我需要通過 SFTP 連接到遠端 Linux 伺服器並讀取伺服器的整個文件夾結構。我想列出所有目錄,甚至是沒有讀取權限的目錄,最好不要更改目錄的權限。
我想避免使用根,我認為一個好的解決方案可能是創建一個“只讀”根。線上搜尋解決方案時,我發現了該
CAP_DAC_READ_SEARCH
功能。但是,功能需要我指定文件名,我不認為我希望將功能應用於 SSHD 程序。如何創建具有所需權限的使用者?
sftpsrv=/usr/libexec/openssh/sftp-server cp -a ${sftpsrv} ${sftpsrv}.super chmod 500 ${sftpsrv}.super chown someuser ${sftpsrv}.super /sbin/setcap cap_dac_read_search+ep ${sftpsrv}.super
您需要以這種方式連接到您的伺服器:
sftp -s /usr/libexec/openssh/sftp-server.super address
它有效!
ls -la /tmp | grep TEST drwx------. 2 root root 60 Oct 29 13:08 TEST sftp -s /usr/libexec/openssh/sftp-server.super localhost user@localhost^s password: Connected to localhost. sftp> cd /tmp/TEST sftp> ls 123
/tmp/TEST
由 root 擁有並具有700
權限。如果您的客戶端無法請求自定義 sftp-server 二進製文件,這裡有一個可能未經測試的解決方案:
Match User someuser Subsystem sftp /usr/libexec/openssh/sftp-server.super