sudo、ユーザーファイルにアクセスできません

sudo、ユーザーファイルにアクセスできません

最新バージョンのDebianをインストールしましたが、次のコマンドを使用するとファイルにアクセスできませんsudo

  • ls->私のホームディレクトリにあるファイルを見る
  • sudo ls->権限が拒否されました

私のユーザーはsudoersグループの一部であり、ファイルには次のエントリがあります/etc/sudoers

user1 ALL=(ALL:ALL) ALL

Ubuntuを使用する前に、この問題は発生しませんでした。

私のホームディレクトリはNFSv4ファイルシステムにあります。

答え1

このディレクトリは NFS マウントファイルシステムにあります。おそらく、NFSサーバーはroot_squashこのオプション(ほとんどのシステムではデフォルト)を使用してファイルをエクスポートしました。これは、ファイルシステムにアクセスするためにユーザーがそのrootユーザーにマップされるため、そのユーザーnobodyに対する「その他」権限が適用されることを意味します。礼拝の規則。

考えられるアクション:

  1. このディレクトリへのアクセスには使用しないでくださいroot。たとえば、sudoルートから始めて、各ユーザーのホームディレクトリを順番に確認しながら、ユーザーのホームディレクトリを検索するスクリプトを作成する場合:

    for user in `getent passwd | grep ':/home' | cut -d : -f1`
    do
         sudo -u "$user" \
             "$process_directory" "`getent passwd $user | cut -d : -f6`"
    done
    

    (オプションとコマンドを区別するために行を分割しましたsudo

  2. ユーザーが読み取りおよび検索できるように、ディレクトリの権限を変更しますnobody(例chmod go+rx:)。これを受け入れることもそうでない場合もあります。機密ファイル(~/.ssh/キャッシュディレクトリなど)を読み取れないようにすることもできます。
  3. このオプションを削除するには、サーバーからエクスポートを変更してくださいroot_squash。 Debian では、これはオプションのリストに/etc/exports追加するために編集することを意味します:no_root_squash

    srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check,no_root_squash)
    

    これにより、rootファイルシステムがローカルであるかのように、権限に関係なく、そのファイルシステム内のすべてのファイルへのアクセスが許可されます。

関連情報