-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または、そのスクリプトをルートとして実行するために使用できます。

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 に答える