-3

我在 /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/

整个目录只归我所有:manager:phpdev

通常当我的开发人员使用 git 更新所有文件时,权限会更改为 developer:developer,

我的用户(开发人员:开发人员)如何运行我的脚本?

4

3 回答 3

0

在机器上安装软件包sudo,它允许您授予非 root 用户以 root 身份运行特定命令的权限。

然后,授予您的开发人员运行该特定脚本的权限。

于 2013-07-17T02:12:54.260 回答
0

sudo

根据自己的喜好设置 sudoers 文件。您可以对其进行设置,以便他们只能运行某些命令,并且无需密码即可执行此操作。

于 2013-07-17T02:13:03.743 回答
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

https://en.wikipedia.org/wiki/Setuid

于 2013-07-17T02:31:41.650 回答