问题 Linux默认文件权限


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


3162
2017-10-23 04:23


起源

我不打算关闭这个,但我会说我不确定这是编程相关的.. - SCdF
我会说发布的第一个答案是编程相关的答案。如果您丢弃由bash,zsh和tcsh执行的脚本文件,则必须丢弃由cmd.exe,IIS,PowerShell,VBA等执行的脚本文件。 - Windows programmer
@SCdF:为什么这与编程无关?这似乎在我的范围内。 - Jonathan Leffler
它没用。我在各种(.bash_profile,.tcshrc,.cshrc)启动文件中有umask 077,但它仍默认为664.问题是我不知道pscp服务器正在使用什么启动文件。 - Steve Kuo
你用的是什么外壳?击?当你跑步时你会得到什么:“ssh you @ yourhost umask”(或Putty相当于“ssh”) - Matt Curtis


答案:


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


11
2017-10-23 04:39



我怎么知道pscp服务器将使用什么shell? - Steve Kuo
当你登录(使用putty)时,它启动了什么shell?或者,如果您已登录,请“grep yourname / etc / passwd”并查看该行的最后一个条目(例如“/ bin / bash”)。 - Matt Curtis
这不适合我。我把它放在我的.bash_profile中,仍然有同样的问题 - eviljack
@eviljack:你能告诉我你正在使用什么shell(grep yourname / etc / passwd)吗?你可以告诉.bash_profile在pscp连接时是否运行了什么? (也许在文件中放置一个“echo”,并尝试plink,它可能有助于诊断问题。) - Matt Curtis


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


5
2017-12-29 07:20



有没有办法使文件夹树特定?我希望/ var / www / html / sitename /中的所有文件都具有相同的权限,无论是谁创建,编辑或移动文件。除了有一个cron作业,定期chmod / chown是一个固定的间隔当然递归的目录。 - Tyson of the Northwest
至少在ubuntu上 /etc/login.defs 暂时使用了一段时间。 - DJCrashdummy