【问题标题】:Linux default file permissionLinux 默认文件权限
【发布时间】:2010-09-18 17:12:11
【问题描述】:

有没有办法在 Linux 中设置默认文件权限?也就是说,新创建的文件的文件权限(无论创建它的上下文如何 )。我知道将 umask 放在 shell 启动中,但这仅适用于 shell 会话。当我使用 pscp 将文件传输到 Linux 机器时,始终使用 664 (rw-rw-r--) 权限创建文件。我使用过的各种 Linux 版本都发生过这种情况。当我将文件 pscp 到共享 Linux 机器(如我的 ISP)时,这尤其令人讨厌。在我可以 shell 和 chmod 权限之前,该文件基本上就在那里,每个人都可以读取,这并不完全安全。

【问题讨论】:

  • 我不会关闭它,但我会说我不确定这与编程有关..
  • 我会说发布的第一个答案是与编程相关的答案。如果你扔掉bash、zsh、tcsh执行的脚本文件,那你就得扔掉cmd.exe、IIS、PowerShell、VBA等执行的脚本文件。
  • @SCdF:为什么这与编程无关?它似乎在我的范围内。
  • 它没有用。我在各种(.bash_profile、.tcshrc、.cshrc)启动文件中有 umask 077,但它仍然默认为 664。问题是我不知道 pscp 服务器正在使用什么启动文件。
  • 你用的是什么外壳?重击?运行时会得到什么:“ssh you@yourhost umask”(或 Putty 的“ssh”等效项)

标签: linux permissions


【解决方案1】:

将 umask 放入非交互式 shell 启动中(.bash_profile.zshenv.tcshrc 取决于您的 shell)。然后它将针对非登录会话运行。

【讨论】:

  • 我如何知道 pscp 服务器将使用什么 shell?
  • 当你登录(使用putty)时,它会启动什么shell?或者,如果您已登录,“grep yourname /etc/passwd”并查看该行的最后一个条目是什么(例如“/bin/bash”。)
  • 这对我不起作用。我把它放在我的 .bash_profile 中,仍然有同样的问题
  • @eviljack:你能告诉我你正在使用什么外壳(grep yourname /etc/passwd)吗?你能判断 .bash_profile 中的任何内容在 pscp 连接时是否运行? (也许在文件中放一个“echo”,然后尝试 plink,它可能有助于诊断问题。)
【解决方案2】:

如果要影响整个系统,也可以放在/etc/profile中

【讨论】:

  • 有没有办法让它特定于文件夹树?我希望 /var/www/html/sitename/ 中的所有文件都具有相同的权限,无论谁在其中创建、编辑或移动文件。当然,除了有一个 cron 作业定期 chmod/chown 的目录以定期的时间间隔递归。
  • 至少在 ubuntu /etc/login.defs 上使用了一段时间。
猜你喜欢
  • 2019-10-25
  • 2021-09-18
  • 2013-12-01
  • 2018-03-05
  • 2013-09-09
  • 1970-01-01
  • 2014-10-05
  • 2015-10-15
  • 2012-09-10
相关资源
最近更新 更多