我在/root/prepare_server.sh
中为我的开发人员制作了一个脚本#!/bin/bash
FILES="/var/www/html/crm/cicrm/cache/
/var/www/html/crm/cicrm/data/
/var/www/html/crm/cicrm/logs/
/var/www/html/crmtest/cicrm/cache/
/var/www/html/crmtest/cicrm/data/
/var/www/html/crmtest/cicrm/logs/"
for f in $FILES
do
echo "processing $f" 1>&2
if [[ ! -e $f ]]; then
mkdir $dir
elif [[ ! -d $f ]]; then
echo "$f already exists but is not a directory" 1>&2
fi
done
chown -R manager:phpdev /var/www/html/crm/
chown -R manager:phpdev /var/www/html/crmtest/
chown -R manager:phpdev /var/redmine/crmGit/
chown -R manager:phpdev /var/redmine/owncloudGit/
chmod -R 770 /var/redmine/crmGit/
chmod -R 770 /var/redmine/owncloudGit/
chmod -R 770 /var/www/html/crm/
chmod -R 777 /var/www/html/crm/cicrm/cache/
chmod -R 777 /var/www/html/crm/cicrm/data/
chmod -R 777 /var/www/html/crm/cicrm/logs/
chmod -R 770 /var/www/html/crmtest/
chmod -R 777 /var/www/html/crmtest/cicrm/cache/
chmod -R 777 /var/www/html/crmtest/cicrm/data/
chmod -R 777 /var/www/html/crmtest/cicrm/logs/
整个dirs只归我所有: 经理:phpdev
通常当我的开发人员使用git更新所有文件时,权限将更改为developer:developer,
我的用户(开发人员:开发人员)如何运行我的脚本?
答案 0 :(得分:0)
在计算机上安装软件包sudo
,允许您授予非root用户以root身份运行特定命令的权限。
然后,授予开发人员运行该特定脚本的权限。
答案 1 :(得分:0)
根据自己的喜好设置你的sudoers文件。您可以对其进行设置,使其只能运行某些命令,并且可以在没有密码的情况下执行此操作。
答案 2 :(得分:0)
使用sudo
,您可以在/etc/sudoers
文件中编写规则,例如:
# format: user host = (run as) NOPASSWD: path
developer ALL=(root) NOPASSWD: /root/prepare_server.sh
man sudoers
了解更多细节。
或者您可以使用SUID
以root身份运行该脚本:
chown root /root/prepare_server.sh
chmod u+s /root/prepare_server.sh