我是 Ubuntu 的新用户。以前我用的是 Windows。我在每个步骤中都遇到了权限问题。实际上,我正在寻找像 Windows 一样的文件和文件夹权限。我读了几篇关于此内容的文档,但还是搞不清楚。
例如,我想获得该目录/opt/lampp/htdocs
及其子目录的所有类型的权限。
我尝试了以下命令
sudo chown -R abu:abu /opt/lampp/htdocs
但什么也没发生。
有人能在这方面帮助我吗?
答案1
如果命令有效,则不会输出任何内容,除非您添加 V 选项以使其产生详细的输出。我建议您阅读chmod
可用的手册这里或者通过运行man chmod
,您应该确保您知道每个命令在做什么。
为了使其递归工作,您只需要传递-R
递归标志 - 例如,此命令将使文件夹中的所有内容都/opt/lampp/htdocs
具有权限-rwxr-xr-x
(文件夹所有者可以读取、写入和执行,组和其他所有人都可以读取和执行:
sudo chmod -R 755 /opt/lampp/htdocs
请注意,我认为这适用于文件和目录,如果目录没有可执行权限,它们将无法工作(请参阅这里)。所以如果你不希望文件可执行,你将需要使用如下命令(可能以 root 身份):
find /path/to/base/dir -type d -exec chmod 755 {} +
find /path/to/base/dir -type f -exec chmod 644 {} +
如果你想知道这个命令的作用,你可以阅读 find 手册的相关部分 ( man find
)。基本上,它会找到指定路径中的所有文件/文件夹并更改它们的权限。
如果您想成为文件的所有者(和组)(对于服务器和系统配置文件可能不建议这样做),以便您可以更改(写入)它们,请咨询这个问题。也可以通过加入对文件具有写权限的组,或使所有“其他”用户对文件具有写权限来实现
答案2
您看不到任何内容,因为这些命令都不是用来输出任何内容的,但这并不意味着没有做出更改;
要获得所做更改的可见反馈,您可能只需ls -l
在每个受影响的目录上运行以检查其内容,但是更简洁的方法是安装tree
并使用它列出每个目录/文件以及所需的属性(递归):
tree -u -g -p
-u
:列出目录/文件以及所有者-g
:列出目录/文件以及组-p
:列出目录/文件以及权限
user@user-X550CL ~/tmp % tree -u -g -p
.
└── [drwxrwxr-x user user ] dir
├── [-rw-rw-r-- user user ] file1
├── [-rw-rw-r-- user user ] file2
├── [-rw-rw-r-- user user ] file3
├── [drwxrwxr-x user user ] subdir1
├── [drwxrwxr-x user user ] subdir2
└── [drwxrwxr-x user user ] subdir3
4 directories, 3 files
user@user-X550CL ~/tmp % find . -type d -exec chmod 755 {} \;
user@user-X550CL ~/tmp % find . -type f -exec chmod 644 {} \;
user@user-X550CL ~/tmp % tree -u -g -p
.
└── [drwxr-xr-x user user ] dir
├── [-rw-r--r-- user user ] file1
├── [-rw-r--r-- user user ] file2
├── [-rw-r--r-- user user ] file3
├── [drwxr-xr-x user user ] subdir1
├── [drwxr-xr-x user user ] subdir2
└── [drwxr-xr-x user user ] subdir3
4 directories, 3 files