1

当前用户是$USER。以前我使用:

 if [ -e "$f" ] && [ `stat -c %U "$f"` != $USER ] \
    || [ -e "${f%/*}" ] && [ `stat -c %U "${f%/*}"` != $USER ]; then

检测文件是否由用户拥有(如果文件尚不存在,则为 dir)。

但是文件可以由另一个人拥有,用户仍然可以修改它(组/其他可写)。

如何检查当前用户可以通过 POSIX 实用程序(或者如果不可能 - 通过 GNU 扩展)编辑该文件?

我需要考虑扩展属性吗?如何对付他们?

4

1 回答 1

1

似乎我忘记了实用程序。为我感到羞耻!

$ test -w /etc/hostname && echo ok || echo fail
fail
$ [ -w /etc/hostname ] && echo ok || echo fail
fail
$ sudo test -w /etc/hostname && echo ok || echo fail
ok
$ sudo [ -w /etc/hostname ] && echo ok || echo fail
ok

目录也一样。

于 2015-12-10T11:02:49.527 回答