Linuxでプログラムを作成する場合は、プログラムの実行権限を設定する2つの方法があります。
- 呼び出し元の権限で実行できます(誰がプログラムを実行しても関係ありません)。
- 私の権限に従って実行するためにsetuidを使用できます。
Linuxで実行するようにプログラムの権限を設定する他のオプションはありますか?
ベストアンサー1
個々のLinux権限を「機能」といいます。機能の完全な説明が多すぎる可能性がありますが、上記の2つのオプションの代わりに、権限のないユーザーに管理権限を提供するファイルベースの機能を設定できます。
[root@localhost]/home# setcap cap_chown+ep /bin/chown
[root@localhost]/home# sudo -iu testUser
[testUser@localhost ~]$ ll /etc/rc.local
-rwxr--r--. 1 root root 0 Jan 27 22:29 /etc/rc.local
[testUser@localhost ~]$ chown testUser /etc/rc.local
[testUser@localhost ~]$ ll /etc/rc.local
-rwxr--r--. 1 testUser root 0 Jan 27 22:29 /etc/rc.local
[testUser@localhost ~]$
上記のように、chown
I runのおかげで、このシステムで実行しているすべての人は、このタスクを実行するために必要な権限(「CAP_CHOWN」)を持っていますsetcap
。 anから+ep
anに変更し、ログイン時に特定のユーザーにのみ権限を付与すると、+ei
より多くの選択性が得られます。pam_cap.so
chown
上記のコードは、rootとして実行されず、権限のないユーザーとして実行されることに注意してください。ユーザーがこのプログラム以外のプログラムを実行するとこの権限が付与されず、実行可能ファイルが変更されるとすべてのファイルベースの機能が消去されます。