检查文件在shell中是否可重写



假设我在服务器上有一个文件

  1. -rw-r--r--. dev Jun 28 06:51 test1.log

我有3个用户可以访问我的服务器,[dev,dev1,dev2]
我明白我们可以通过使用下面的代码来检查文件是否可重写

-w test1.log

但我想检查文件是否可重写为其他用户,即使我登录到我的服务器作为dev而不是dev1

当前的方法我正在做的是使用下面的脚本,但是这种方法会有问题,如果它突然创建为dev2用户

if [ -w test1.log ]
then "True"
else echo "not rewritable"
fi

Dev用户将返回True
Dev1用户将返回false

是否有一种方法可以检查文件类型,如果是-rw-r--r--?

使用Invoke-Command,您可以通过命令凭据相当容易地运行。您可以放入一个凭证循环来测试所需的每个用户。将它包装在Try/Catch中可以很容易地看到进程中是否有任何错误。您可以使用简单的$Error来显示错误。

下面是该类及其方法的文档。https://learn.microsoft.com/en us/dotnet/api/system.io.file?view=net - 6.0

Try {
Invoke-Command -ScriptBlock {[io.file]::OpenWrite(".test1.log").close()} -ComputerName $env:COMPUTERNAME -Credential $(Get-Credential)
return $true
} Catch {
Write-Warning "not rewritable"
return $false
}

最新更新