GNU/Linux >> Linux の 問題 >  >> Linux

ユーザーが選択的なコマンドを実行できるように制限する (Linux)

あなたはこれを間違った方法で行っているかもしれません。ユーザーに「制限付き」の bash シェルを提供する代わりに、root として実行する必要があるコマンドへのアクセスのみを許可する必要があります。たとえば、sudoers ファイルで:

tomc ALL=(root) /usr/bin/vim /etc/myapp.conf
tomc ALL=(root) /usr/bin/less /var/log/myapp/*.log

ユーザーが root として vim を実行できるようにする場合は注意してください。 Vim には、シェルへのエスケープや vim 内からコマンドを実行する機能など、多くの機能が組み込まれています。ディストリビューションによっては、sudoedit がある場合があります。 利用可能。これは、シェル エスケープなどを処理するように設計されていることを除いて、通常の Vim と同じように機能します。


DSM 6 を実行している私の Synology Diskstation では、一貫して管理者ユーザーのみが ssh で接続できます (管理者以外のユーザーは /etc/passwd で /sbin/nologin としてシェルを持っています。これを /bin/sh に設定して一時的に ssh を許可することができますが、再起動時に) /etc/passwd ファイルがリセットされます)。このため、実行するためだけに存在するアカウントには、ある種の sudo 制限が必要です。 /sbin/電源オフ。 /etc/sudoers の次の行でうまくいきました:

# Allow guestx user to remote poweroff
guestx ALL=(ALL) !ALL
guestx ALL=NOPASSWD: /sbin/poweroff

翻訳:すべてのコマンドを許可せず、必要なコマンドのみを許可します (この場合はパスワードを要求しません)。

この構成では、sudo はパスワードを要求し、ホワイトリストに登録されたコマンド以外のコマンドでは失敗します:

[email protected]:~$ sudo su -
Password: 
Sorry, user guestx is not allowed to execute '/bin/su -' as root on ds.
[email protected]:~$ 

Linux
  1. バックグラウンドで UNIX / Linux コマンド (およびシェル スクリプト) を実行する 5 つの方法

  2. Linux でユーザー コマンドを制限する方法

  3. rootユーザーとしてjenkinsでシェルコマンドを実行しますか?

  1. すべてのユーザーに必要な20のLinuxコマンド

  2. すべてのLinuxユーザーが知っておくべき10個のコマンド

  3. Linuxでrootアカウントを無効にする4つの方法

  1. Linuxでのシェルコマンドのさまざまな分類とその使用法を理解する

  2. Linuxでの「su」コマンドと「su-」コマンドの違いを学ぶ

  3. Linuxのシェルからすべてのrootユーザーの電子メールを削除する