我在 Centos 6 x86 上运行游戏服务器(2004 年虚幻锦标赛)。我使用 sh 脚本在后台进程中启动它。这个进程(游戏服务器)会创建不同的文件(演示、日志),默认情况下它们都带有 0600 权限。我必须用一些应用程序处理它们,所以我想要的是更改它们的默认权限(例如,更改为 0644)。
我是 root,我有 umask 022,我创建的文件默认为 0644。但似乎这个游戏服务器进程没有继承我的 umask。我怎样才能改变它?我对 linux 还很陌生,所以如果能提供详细的答案,我们将不胜感激。
用于运行服务器的脚本:
#!/bin/sh
# Set the following to your UT2004 directory.
UT2004HOME=/home/ut2004
LOG=Server1.log
if [ ! -d "$UT2004HOME/Logs" ]; then
mkdir $UT2004HOME/Logs
fi
cd $UT2004HOME/System
while true; do
./ucc-bin server DM-Rankin-FE?game=XGame.xDeathMatch?Mutator=UTzoneTAv1.MutUTzoneTA,utcompv17a.MutUTComp,XWeapons.MutNoSuperWeapon,XGame.MutNoAdrenaline?MaxPlayers=2?DoubleDamage=False?TimedOverTimeLength=0?GameStats=True?AntiTCCSettings=NoMidGameChecks ini=server1.ini -nohomedir -lanplay &> $UT2004HOME/Logs/$LOG
DATE=20`date +%y%m%d`-`date +%H%M%S`
mv $UT2004HOME/Logs/$LOG $UT2004HOME/Logs/crash-$DATE.log
done;
Run Code Online (Sandbox Code Playgroud)
我把它放在一个 sh 文件中,然后在 putty shell 中作为 root 启动它作为后台进程使用 & 在字符串的末尾。
输出ls -ld $UT2004HOME/Logs
:
drwxr-xr-x 2 …
Run Code Online (Sandbox Code Playgroud)