How to conduct PSI-BLAST for a given protein sequence against bacterial protein database only?
Your approach is correct but it is worth considering which database will work best for you. Questions to consider are;

Does the database provide a large search space for the organism(s) you're interested in?
Do its IDs work well for searching other databases?
How does the host database handle identifiers over time?

For protein sequences I would use;

Database; UniProtKB/Swiss-Prot(swissprot)
Organism bacteria (taxid:2) (or a subset)

The reasons for this are that I am comfortable with how Uniprot handles their ID's, they provide a large search space with includes clear delineation between reliable (reviewed) and other (unreviewed) sequences, and finally UniprotKB IDs map well to genes. The latter can be problematic. I also know that I won't have trouble searching PDB with UniprotKB IDs.
Despite using and liking the Protein data bank (PDB) I wouldn't use them for this kind of search as they are a structural database which reduces your search space. PDB has 8292 structures for E.coli compared to 23 017 reviewed and 1,335,860 unreviewed sequences in Uniprot. If you are only interested in structures then the PDB is an ideal fit.
I haven't used landmark.