当你们n1默认执行ps | grep aria2
应该默认执行者是root的,而我已经把执行者改成了aira2c
下面是用户权限和目录权限的一些个人见解,未必准确,有错请指出。
首先linux文件系统是有用户和用户组两个层级的,这两个层级就和文件目录的权限有关了。
文件目录的权限分为三组:所有者、用户组、公共。以上面的图片为例,这个文件只有所有者和属于组的用户们可以对这个文件进行读写,除了所有者和不属于组的成员的其他人通通无法对这个文件读写。
我认为如果要区分不同文件目录的权限,应用之间,使用不同的用户,还是有必要的。下面以aria2应用为例,修改aria2的执行者,以及让aria2新下载的文件目录权限为770.
#新建用户aria2c,用户名,uid可以随意设置,不要和/etc/passwd里面的已有的用户重复就好
adduser -g "ARIA2 Daemon" -D -s /bin/false -h /var/lib/aria2 -u 1021 aria2c aria2c
#-g是备注 -D不设置密码 -s是不允许ssh登录 -h是设置家目录 -u是设置uid 最后两个是要新建的用户名和用户组
chown aria2c:aria2c -R /var/lib/aria2 #更改aria2数据目录的所有者和用户组
chown aria2c:aria2c /etc/aria2.conf #更改aria2配置文件的所有者和用户组
vi /etc/init.d/S92aria2 #编辑aria2的开机启动脚本,不会用vi命令就直接用sftp用记事本打开,找到下面的三行进行修改
USER="aria2c"
GROUP="aria2c"
UMASK="007" #这里好像是指定新生成的文件的权限。007,即只有用户和用户组可读写和执行。
修改完后,记得确认aria2设置的下载路径里面,aria2c有没有读写权限,如果下载路径所以者和用户组都不包含aria2c,则可以用文件/etc/group
在下载路径的用户组,添加对aria2的所属,如我指定的下载目录是/media/download/aria2, aria2的所有者和组为root:download,则/etc/group
里面的download组最后就应该加上 download:x:2002:baiduyun,aria2c
最后重启aira2 /etc/init.d/S92aria2 restart
,若成功重启,则打开Aria2NG进行下载测试。一切完美,则说明修改权限成功。
而如果重启不成功,可能是某些文件的权限还没改过来。建议关闭aria2 /etc/init.d/S92aria2 stop
,然后手动开启aira2,根据ssh的命令的反馈进行原因排查。
NAME=aria2c
ARIA2C=/usr/bin/$NAME
PIDFILE=/var/run/$NAME.pid
CONF=/etc/aria2.conf
ARGS="--conf-path=${CONF}"
USER="aria2c"
GROUP="aria2c"
UMASK="007"
start-stop-daemon --start --quiet -m --pidfile $PIDFILE --umask $UMASK --chuid $USER:$GROUP --startas $ARIA2C -- $ARGS