命令行上星号的解释-权限?

命令行上星号的解释-权限?

Ubuntu 16.04.6 LTS

一开始觉得很奇怪,但我认为我已将问题缩小到权限问题以及如何在命令行上解释星号(*)。

我最初正在分析 apache 日志文件,但重新创建了如下问题。

两个用户:user1 和 user2

User2 拥有该文件夹,并具有以下权限:

user2@server-01:~$ ls -lahd myFolder/
drwxrwx--- 2 user2 user2 4.0K Aug 28 13:22 myFolder/

该文件夹包含一堆文件,以可遵循的命名约定命名。即

user2@server-01:~/myFolder$ ls -l
total 0
-rw-rw-r-- 1 user2 user2 0 Aug 28 13:24 abc_1
-rw-rw-r-- 1 user2 user2 0 Aug 28 13:24 abc_2
-rw-rw-r-- 1 user2 user2 0 Aug 28 13:24 abc_3
-rw-rw-r-- 1 user2 user2 0 Aug 28 13:24 abc_4
-rw-rw-r-- 1 user2 user2 0 Aug 28 13:24 abc_5
-rw-rw-r-- 1 user2 user2 0 Aug 28 13:24 def_1
-rw-rw-r-- 1 user2 user2 0 Aug 28 13:24 def_2
-rw-rw-r-- 1 user2 user2 0 Aug 28 13:24 def_3
-rw-rw-r-- 1 user2 user2 0 Aug 28 13:24 def_4
-rw-rw-r-- 1 user2 user2 0 Aug 28 13:24 def_5

如果我只想分析或列出文件夹中的“abc”文件,我们当然可以这样做(作为用户 2):

user2@server-01:~/myFolder$ ls -l abc*
-rw-rw-r-- 1 user2 user2 0 Aug 28 13:24 abc_1
-rw-rw-r-- 1 user2 user2 0 Aug 28 13:24 abc_2
-rw-rw-r-- 1 user2 user2 0 Aug 28 13:24 abc_3
-rw-rw-r-- 1 user2 user2 0 Aug 28 13:24 abc_4
-rw-rw-r-- 1 user2 user2 0 Aug 28 13:24 abc_5

现在,user1 的用户配置如下(注意他们是 sudoer):

user1@server-01:~$ id
uid=1004(user1) gid=1004(user1) groups=1004(user1),27(sudo)

当然,我们的 user1 将无法列出 的内容myFolder,除非我们在命令前面加上sudo。像这样:

user1@server-01:~$ ls /home/user2/myFolder
ls: cannot open directory '/home/user2/myFolder': Permission denied

user1@server-01:~$ sudo ls /home/user2/myFolder
abc_1  abc_2  abc_3  abc_4  abc_5  def_1  def_2  def_3  def_4  def_5

最后,我的问题是,user1 如何仅列出“abc”文件,因为 sudo 命令、目录权限或安全性方面的某些内容无法以正常方式解释以下命令中的星号?

user1@server-01:~$ sudo ls /home/user2/myFolder/abc_*
ls: cannot access '/home/user2/myFolder/abc_*': No such file or directory

或者我完全误解了情况?

答案1

这里有很好的解释:https://unix.stackexchange.com/questions/101847/cannot-expand-asterisk-without-proper-permission

我们需要使用 sudo 调用 shell,并使用 -c 标志传递整个命令

[user1@server-01 ~]$ sudo sh -c 'ls -l /home/user2/myFolder/abc*'
-rw-rw-r--. 1 user2 user2 0 Aug 28 14:01 /home/user2/myFolder/abc_1
-rw-rw-r--. 1 user2 user2 0 Aug 28 14:01 /home/user2/myFolder/abc_2
-rw-rw-r--. 1 user2 user2 0 Aug 28 14:01 /home/user2/myFolder/abc_3
-rw-rw-r--. 1 user2 user2 0 Aug 28 14:01 /home/user2/myFolder/abc_4
-rw-rw-r--. 1 user2 user2 0 Aug 28 14:01 /home/user2/myFolder/abc_5

相关内容