标签: chmod

为什么“chmod -R 777 /”具有破坏性?

这是一个关于文件权限的规范问题,以及为什么777 是“破坏性的”。

我不是在问如何解决这个问题,因为服务器故障(重新安装操作系统)上已经有大量的参考资料。为什么它会做任何破坏性的事情?

如果你曾经运行过这个命令,你几乎会立即破坏你的操作系统。我不清楚为什么取消限制会对现有流程产生任何影响。例如,如果我没有对某些内容的读取访问权限,并且在终端中快速输入错误后,我现在突然可以正常访问...为什么这会导致 Linux 崩溃?

linux permissions chmod

265
推荐指数
2
解决办法
8万
查看次数

如何为 WWW 文件夹设置 linux 权限?

更新摘要

/var/www 目录归root:root其所有,这意味着没有人可以使用它并且完全没有用。既然我们都想要一个实际工作的 Web 服务器(并且没有人应该以“root”身份登录),那么我们需要解决这个问题。

只有两个实体需要访问。

  1. PHP/Perl/Ruby/Python都需要访问文件夹和文件,因为它们创建了许多文件夹和文件(即/uploads/)。这些脚本语言应该在 nginx 或 apache 下运行(或者甚至是像 FastCGI for PHP 这样的其他东西)。

  2. 开发商

他们如何获得访问权限?我知道有人在某个地方以前做过这件事。然而,有数十亿个网站,您会认为会有更多关于此主题的信息。


我知道 777 是所有者/组/其他的完全读/写/执行权限。因此,这似乎不需要正确,因为它为随机用户提供了完全权限。

需要使用哪些权限,/var/www以便:

  1. 像 git 或 svn 这样的源代码控制
  2. 像“网站”这样的组中的用户(甚至添加到“www-data”
  3. 像 apache 或 lighthttpd 这样的服务器
  4. 和 PHP/Perl/Ruby

所有人都可以在那里读取、创建和运行文件(和目录)吗?

如果我是对的,Ruby 和 PHP 脚本不会直接“执行”-而是传递给解释器。所以不需要对/var/www...中的文件执行权限?因此,似乎正确的许可chmod -R 1660将使

  1. 这四个实体可共享的所有文件
  2. 所有文件都不能被错误地执行
  3. 完全阻止目录中的其他人
  4. 将所有未来文件的权限模式设置为“粘性”

这样对吗?

更新 1:我刚刚意识到文件和目录可能需要不同的权限 - 我在上面谈论文件,所以我不确定目录权限需要是什么。

更新 2:文件夹结构/var/www发生了巨大变化,因为上述四个实体之一总是添加(有时删除)多个级别的文件夹和子文件夹。他们还创建和删除其他 3 个实体可能需要读/写访问权限的文件。因此,权限需要对文件和目录都做上述四件事。由于它们都不需要执行权限(请参阅上面有关 ruby​​/php 的问题),我认为rw-rw-r-- …

linux permissions chmod

72
推荐指数
4
解决办法
14万
查看次数

@ 符号在文件的权限设置中是什么意思?

我在 MacOSX 上,我做ln -s了一个目录,结果如下:

-rwxrwxr-x@ 1 shiki  admin   970332 Mar  6 16:38 apc.so
-rwxrwxr-x@ 1 shiki  admin   653884 Mar  6 16:38 eaccelerator.so
-rw-rw-r--@ 1 shiki  admin    60064 Mar  6 16:38 gettext.a
-rwxrwxr-x@ 1 shiki  admin    80320 Mar  6 16:38 gettext.so
-rw-rw-r--@ 1 shiki  admin   514784 Mar  6 16:38 imap.a
-rwxrwxr-x@ 1 shiki  admin  3886132 Mar  6 16:38 imap.so
Run Code Online (Sandbox Code Playgroud)

这些@符号是什么意思?

permissions console mac-osx chmod

45
推荐指数
1
解决办法
3万
查看次数

我应该为 dhparam.pem 设置哪些权限?

我正在为 nginx 的 SSL 配置中的ssl_dhparam指令生成 Diffie-Hellman 参数。

该文件dhparam.pem是使用命令创建的openssl dhparam 2048 -check -out dhparam.pem

我应该为这个文件设置哪些权限?在 git 存储库中共享是否安全还是应该将其保密?

ssl nginx openssl chmod

25
推荐指数
1
解决办法
4379
查看次数

chmod 在 Docker 中无法正常工作

我正在为我的Symfony应用程序构建 Docker 映像,我需要授予 apache 服务器写入缓存和日志文件夹的权限

#Dockerfile
FROM php:7-apache

RUN apt-get update \
&& apt-get install -y libicu-dev  freetds-common freetds-bin unixodbc \
&& docker-php-ext-install intl mbstring \
&& a2enmod rewrite

COPY app/php.ini /usr/local/etc/php/
COPY app/apache2.conf /etc/apache2/apache2.conf
COPY ./ /var/www/html

RUN find /var/www/html/ -type d -exec chmod 755 {} \; 
RUN find /var/www/html/ -type f -exec chmod 644 {} \;
RUN chmod -R 777 /var/www/html/app/cache /var/www/html/app/logs
Run Code Online (Sandbox Code Playgroud)

当我docker build -t myname/symfony_apps:latest .使用docker run -p 8080:80 myname/symfony_apps:latest. Apache …

permissions chmod docker

25
推荐指数
4
解决办法
11万
查看次数

chmod -R 由于某种原因使子文件夹中的文件不可读

我在设置一些 WordPress 主题时正在调整权限,并运行chmod 664 -R theme-dir/*它在目录根目录中的文件上运行良好,但是当我执行以下操作时,子目录中的所有文件现在都这样读取ls -l

?---------  ? ? ? ?            ? core_functions.php
?---------  ? ? ? ?            ? css
?---------  ? ? ? ?            ? custom_functions.php
?---------  ? ? ? ?            ? images
?---------  ? ? ? ?            ? import_settings.php
?---------  ? ? ? ?            ? js
?---------  ? ? ? ?            ? options_trim.php
?---------  ? ? ? ?            ? page_templates
?---------  ? ? ? ?            ? post_thumbnails_trim.php
?---------+ ? ? ? ?            ? …
Run Code Online (Sandbox Code Playgroud)

linux permissions chmod

22
推荐指数
2
解决办法
1376
查看次数

如何使用 Rsync 从 Windows 到 Linux 设置文件/文件夹权限

我想使用 Rsync 将大量文件/文件夹从 Windows 传输到 Linux。在 linux 服务器(目标)上,我希望文件权限设置为 644,文件夹权限设置为 755。如果可能,我希望所有文件/文件夹的所有权设置为 root.root。我试过 -p 选项,但它不起作用。感谢您的任何帮助。

windows permissions rsync chmod

16
推荐指数
2
解决办法
3万
查看次数

vsFTPd 在 Ubuntu 上的默认上传文件权限不起作用

我有一台运行Ubuntu 12.10 x64的服务器,以及最新版本的 vsFTPd。

我的用户example.com有其主文件夹设置上/var/www/example.com

我在里面创建了一个 public_html 文件夹并赋予777它权限,并删除了家庭用户文件夹的写入权限。一切正常,但是:

我通过 FTP(使用 SmartFTP)上传的每个文件的 chmod 都为 0。

vsftpd.conf只有一行相关:

local_umask=022.
Run Code Online (Sandbox Code Playgroud)

我尝试更改为:

file_open_mode=777
local_umask=002
Run Code Online (Sandbox Code Playgroud)

所以我的文件会775在上传后立即得到。

但只有我上传的文件夹才能获得775权限。

我上传的文件得到 1411 permissions

有人可以帮我解决这个问题吗?

ubuntu ftp chmod vsftpd

16
推荐指数
2
解决办法
6万
查看次数

CHMOD - 对文件和目录应用不同的权限

我一直在尝试清理几个盒子的权限,并且一直在搜索 chmod 人以及我处理的所有互联网文档,但没有任何运气 - 所以我们开始了。

基本上,我有一个包含许多子目录和文件的目录——我想设置以下权限:

对于目录:770(u+rwx、g+rwx、o-rwx)

对于文件:660(U+rw、g+rw、ax、o-rw)

如果可能,我想尝试使用单个递归 chmod 来执行此操作 - 以避免递归遍历每个目录并设置逐个文件的权限。

我想必须有一种方法可以在不编写自己的 shell 脚本的情况下做到这一点——但我找不到任何东西。

我感谢您的帮助!

permissions chmod

14
推荐指数
4
解决办法
1万
查看次数

如何在 Mac OS X 上复制 ACL?

大多数 unix 派生类可以通过以下方式将 ACL 从一个文件复制到另一个文件:

getfacl filename1 | setfacl -f - filename2
Run Code Online (Sandbox Code Playgroud)

不幸的是,Mac OS X 没有 getfacl 和 setfacl 命令,因为它们已将 ACL 处理卷入 chmod。chmod -E 接受标准输入上的 ACL 列表,但我还没有找到可以在标准输出上以合适格式吐出 ACL 的命令。我想出的最好的是:

ls -led filename1 | tail +2 | sed 's/^ *[0-9][0-9]*: *//' | chmod -E filename2
Run Code Online (Sandbox Code Playgroud)

有没有更强大的解决方案?

额外的问题:有没有一种很好的方法可以在 Python 中做到这一点,而不使用任何未随 10.6 一起提供的模块?

mac-osx access-control-list chmod

13
推荐指数
2
解决办法
1万
查看次数