Centos

當我嘗試使用腳本創建新文件時,權限被拒絕

  • January 2, 2020

所以,我有一個執行其他兩個 python 腳本的 bash 腳本“get-data.sh”

#!/bin/bash

scripts=/root/scripts
datos=/root/zabbixdata
fecha=$(date +"%Y_%m_%d")

sudo $scripts/filesystem.py > $datos/filesystem_$fecha.log &
sudo $scripts/cpu.py > $datos/cpu_$fecha.log &

當我執行腳本時,出現以下錯誤

./get-data.sh: line 8: /root/zabbixdata/filesystem_2020_01_02.log: Permission denied
./get-data.sh: line 9: /root/zabbixdata/cpu_2020_01_02.log: Permission denied

python腳本的權限:

-rwxrwxr-x 1 myuser myuser 1629 Jan  2 12:01 cpu.py
-rwxrwxr-x 1 myuser myuser 1680 Jan  2 11:06 filesystem.py

bash腳本的權限:

-rwxrwxr-x 1 myuser myuser   326 Jan  2 11:51 get-data.sh

目標目錄的權限

drwxrwxr-x 2 myuser myuser 6 Jan  2 11:43 zabbixdata

腳本目錄的權限

drwxrwxr-x 2 myuser myuser 93 Jan  2 12:14 scripts

似乎我擁有所有權限,但我仍然可以通過 shell 腳本創建這些文件

有任何想法嗎?

我想您的 /root 目錄的權限是 0550(Centos 伺服器中的預設值)。

# stat /root/
File: /root/
Size: 4096          Blocks: 8          IO Block: 4096   directory
Device: fd01h/64769d    Inode: 10747905    Links: 23
Access: (0550/dr-xr-x---)  Uid: (    0/    root)   Gid: (    0/    root)

如果您使用使用者 myuser 執行腳本“get-data.sh”,則標準輸出重定向由您的 shell 執行,該 shell 沒有訪問 /root 的權限。輸出的重定向不是由 sudo 執行的。

/root 權限的“其他”部分缺少一個“x”標誌,允許訪問子目錄 /root/zabbixdata/,但出於安全原因,您可能不想添加它。在

$$ 1 $$您可以找到一些使用 sudo 進行重定向的範例。 $$ 1 $$ https://stackoverflow.com/questions/82256/how-do-i-use-sudo-to-redirect-output-to-a-location-i-dont-have-permission-to-wr

引用自:https://serverfault.com/questions/997376