2

admin/root 権限を持たない staff グループのユーザーが、パスワードの入力を求められることなく次のスクリプトを実行できるようにしてほしい。これはOSXにあります。

/usr/sbin/serveradmin には root/sudo 権限が必要であることに注意してください。

/etc/sudoers に以下を追加しようとしましたが、うまくいきません。スクリプトには 755 の権限があります。

%staff ALL=NOPASSWD: /usr/sbin/serveradmin stop smb,/usr/sbin/serveradmin start smb
%staff ALL=NOPASSWD: /bin/sh /opt/scripts/restart-smb

シェルスクリプトは次のとおりです。

#!/bin/bash
#
# This script simply restarts SMB (Samba)
#
echo "Stopping SMB..."
/usr/sbin/serveradmin stop smb
echo "Pausing for 30 seconds..."
/bin/sleep 30
echo "Starting SMB..."
/usr/sbin/serveradmin start smb
echo "Script complete!"

あなたのアイデア、提案は大歓迎です!

ダン

4

2 に答える 2

6

ユーザーの権限と許可を管理する /etc/sudoers ファイルで遊んでいるときに警告、Ubuntuをクラッシュさせました。

通常のログインができなくなりました。#%sudo ALL=NOPASSWD: /pathtoscripts/script.sh と間違ってコメントした行の # 文字と % 文字の間に単純なスペースがないため、解析エラーが発生しました。install/liveCD をハードドライブ ファイルシステムに再度マウントして復元し、元のファイルを元の場所に戻し、変更を記録するためにボリュームをマウント解除する必要がありました。

上記の理由から、/etc/sudoers 特権の重要なファイルを変更するため、最初にこの方法をお勧めしません。次の場合を除き、利用可能な最初の選択肢を選択してください。

  • PC の外部にデータの適切なバックアップがある

  • システムを修理/再インストールするリスクを恐れない

  • /etc/sudoers ファイルの正しい構文を知っていると、試行錯誤や解析エラーにより、多くの時間や労力/クラッシュが発生する可能性があります...

他の投稿を読んで、グループを介して権限を管理し、システムで機能させることができました:

グループ mygroup を作成しました

sudo groupadd mygroup

スクリプトを実行するユーザー myuser を追加しました

sudo usermod -a -G mygroup myuser

/etc/sudoers のENDにエントリを追加しました。そうしないと、権限が前の行によって上書きされます (構文に注意してください)。

%mygroup ALL=NOPASSWD: /mypath/to/myscripts/myscript.sh

上記のスクリプト myscript.sh には実行権限が必要です

sudo ugo+x /mypath/to/myscripts/myscript.sh

このスクリプトは、パスワードの入力を求めることなく、以下のようにユーザー myuser によって直接起動できます。

sudo /mypath/to/myscripts/myscript.sh

または、同じ方法でスクリプトを別のスクリプト内で起動することもできます


グループを作成せずに /etc/sudoers ファイル (ファイルの末尾) に次の行を追加する別の方法を見つけまし

%sudo ALL=NOPASSWD: /mypath/to/myscripts/myscript.sh

少数の既存ユーザー myuser1、myuser2 のみがスクリプトを起動する必要がある場合は、常に /etc/sudoers (ファイルの末尾) に次の行を追加するだけ済みます。

myuser1 ALL=(ALL) NOPASSWD: /mypath/to/myscripts/myscript.sh

myuser2 ALL=(ALL) NOPASSWD: /mypath/to/myscripts/myscript.sh
于 2014-01-03T20:55:04.443 に答える
0

/etc/sudoers ファイルに以下を追加することで、これを機能させることができました。

%staff ALL=/opt/scripts/restart-smb

それからもちろん、スクリプトを実行可能にします (私はそれを忘れていました)。

まだパスワードが必要ですが (これで問題ありません)、機能しています。

于 2013-07-10T17:36:23.327 に答える