web-dev-qa-db-ja.com

別のユーザーでapt-getを実行します

新しいユーザーSudoを追加し、パッケージをインストールする必要があるスクリプトがあります。

新しいユーザーとしてapt-getを実行することは可能ですか?

たとえば、私はuser1でログインしています。スクリプトを実行します。そのスクリプトでは、user2(sudoer)を作成します。その後、user2を使用して新しいパッケージをインストールしたい

そのコマンドラインを使用するだけで、動作するはずです。

Sudo -u user2 apt-get -y install [packagename]
1
sincos

別のユーザーとしてではなく、root経由でSudoとしてapt-getを実行する必要があります。

パッケージ情報のためにaptによって維持される実際のディレクトリの多くは、維持するためにrootが必要です。また、パッケージが/binなどにインストールされる場合は、rootが必要です。

Sudoers特権は、ログインしているユーザーがSudoを使用し、Sudoコマンドでできることまたはできないことを定義することのみを許可します。 apt-getを実行するだけで提供される有効なrootパーミッションが必要なため、Sudo apt-getが操作する必要がある特権は付与しません。したがって、user1がSudo apt-getを実行している場合、許可されます。 user2がsudoersにない場合、そのコマンドを実行できません。 (しかし、もし彼らがsudoersにいたなら、そうすることができました).


あなたがやろうとしていることを行うには、2つのSudoコマンドが連鎖している必要があります(途中でテストされていません):

Sudo -u user2 Sudo apt-get -y install PACKAGENAME

ただし、これは通常、物事の実行方法ではなく、これにより未定義の動作や奇妙な動作が発生する可能性があることに注意してください。

user2には、rootとして実行する権限も必要です。これは、sudoers構成の場合とそうでない場合があります。

1
Thomas Ward