特定のユーザーがシステムから削除されたら、そのユーザーのすべてのファイルが削除されていることを確認する必要があります。このシステムではユーザーの作成/削除が頻繁に発生するため、UIDを再利用して新しいユーザーが古いユーザーのファイルにアクセスできないようにしたいと思います。
私の質問は2つあります。
- 特定のユーザーが所有するすべてのファイルを見つける一般的で簡単な方法はありますか?それともシステム全体が
search -uid n
唯一のオプションですか? - システム全体の検索が唯一のオプションである場合、一般ユーザーが一般的に書き込むことができるディレクトリは何ですか(配布は次のとおりです)。FHS)?
- 彼のホームディレクトリ
- /tmp
- ??
ユーザーにはsudo
権限がないため、標準のUnixファイルシステムの誰でも書き込める場所にのみ書き込むことができます。
答え1
アカウントを削除したい場合は使用してくださいuserdel -r
。これにより、ユーザーのhome
ディレクトリとその内容が削除されます。また、このユーザーに属するメールスプールファイルも削除されます。
私は、どのディレクトリでも問題のユーザーに属するオブジェクトを保持できないと思います。ユーザーにSUDO権限がある場合は特にそうです。
find
削除または削除したいアカウントのUIDを見つけるために使用します。
find / -user <UID> -exec ls -ld {} +
ここで、UIDは関連する実際のUID値に置き換えられ、アカウントを削除していない場合はユーザー名に置き換えられます。
または通常、もはやどの名前にもマップされないUIDの場合:
find / -nouser -exec ls -ld {} +
さまざまなUnixバージョン(HP-UX、AIXなど)およびLinuxディストリビューションに移植可能です。 GNUfind
では-exec ls -ld {} +
。-ls
答え2
自分でいくつかの調査をしてみました。主なソース:http://www.tldp.org/LDP/Linux-Filesystem-Hierarchy/html/c23.html
簡単に言うと:ユーザーがファイルを生成するのを妨げることはありません。。ただし、標準のLinux FHSでは、誰もが特定のディレクトリにのみ書き込むことができます。この規則に準拠したディストリビューションを使用する場合は、ディレクトリのみを確認する必要があります(私のシステムでテストした結果が表示されます)。
- /dev/shm (一部のディストリビューションにはデフォルトでインストールされます)
- ユーザーホームディレクトリ
- /var/tmp
- /var/run/screen/S-ルーベンフ
- /tmp
- /mnt/usb-disk (gid=users を使用してマウントされます)
源泉:
find -type d |
while read DIR; do
if touch $DIR/test_can_be_removed123 2>/dev/null; then
rm $DIR/test_can_be_removed123
echo $DIR >> writable_directories
fi
done