Linuxのすべてのユーザーアカウントがchmodコマンドを呼び出すことはできますか?

Linuxのすべてのユーザーアカウントがchmodコマンドを呼び出すことはできますか?

権限は敏感なので、特定のユーザーがコマンドを実行できるかどうかを知ることは重要ですかchmod

答え1

いいえ、すべてのユーザーがこのコマンドを実行できるようにする必要があります。このコマンドは、ユーザーがディレクトリまたはファイルの許可ビットを操作する方法です。これは、シェルスクリプトを実行可能にしたり、ユーザーが所属できるグループにアクセスできるディレクトリを作成するために重要です。

はい

  1. 実行可能スクリプト

    $ ls -l reset*
    -rwxrwxr-x 1 saml saml   378 Sep  2 02:46 reset_raw_sorted.bash
    
  2. カタログ訪問

    $ ls -ld adir
    drwxrwxr-x 2 saml saml 4096 Oct 19 21:28 adir
    

    これで、このディレクトリの実行ビットを無効にします。

    $ chmod -x adir
    $ ls -ld adir
    drw-rw-r-- 2 saml saml 4096 Oct 19 21:28 adir
    

    cdこれでこのディレクトリに入ることはできません。

    $ cd adir/
    bash: cd: adir/: Permission denied
    
  3. ファイルとディレクトリのグループアクセス制御

    このグループにユーザーがいるとしましょう。

    $ groups
    saml vboxusers jupiter newgrp blah
    

    blahグループの他のユーザーにアクセス権を与えたいと思います。adir

    $ ls -ld adir
    drwx---r-x 2 saml blah 4096 Oct 19 21:28 adir
    

    以下のように、chmod他のユーザー権限を削除し、samlユーザーとグループへのアクセスを制限するために使用できます。blah

    $ chmod o-rwx,g+rwx adir
    $ ls -ld adir
    drwxrwx--- 2 saml blah 4096 Oct 19 21:28 adir
    

答え2

すべてのユーザーはchmod自分が所有するすべてのファイルに対する権限を呼び出して変更できます(通常、ルートだけでなくすべてのファイルの権限を変更できます)。ユーザーは自分に属していないファイルの権限を変更できません。これにより、ファイルセキュリティが完全に破損します!ファイルへの書き込み権限はファイルの内容にのみ適用され、メタデータ(権限など)には適用されません。

Unixの実装ランダムアクセス制御:ファイルの所有者は、他のユーザーがファイルにアクセスすることを自由に許可できます。

Linuxのセキュリティフレームワーク(SELinux、AppArmorなど)など、rootがroot以外のユーザーがオーバーライドできない方法で特定のリソースへのアクセスを制限できるようにする、さまざまな種類の必須アクセス制御があります。ただし、これは専用ユーザーとして実行されているアプリケーションを隔離し、破損した場合に発生する可能性がある損傷を制限するように設計されています。これは、システムユーザー間で必要なアクセス制御を強制するのに役立ちません。 MACが必要な場合、複数のユーザーを持つUnixシステムは正しい環境ではなく、ネットワークがない、または非常に厳密に制御されたネットワーク、リムーバブルドライブなどのないクローズドシステムが必要です。各ユーザーは自分のコンピュータを持っています。

関連情報