Hello,

On Tue, May 18, 2021 at 06:26:18PM -0400, Steve Dondley wrote:
> I goofed up and accidentally moved my /usr directory while trying to make
> room on a full drive. I was able to recover, but I'm finding that services
> are not working because the sticky bits for many files /usr/bin/* were lost.
> For example, I can't send email with exim because of this error:
> 
> Failed to create spool file /var/spool/exim4//input//1lj87g-0002tS-5J-D:
> Permission denied

I'm guessing you actually mean setuid/setgid bit, not sticky bit.

> Is there an easy way to ensure I set all the permissions back to where they
> were before I move /usr?

I can't think of an easy way if you don't have backups. If you have
another system you could get a list of all its permissions like so:

# find /usr -xdev -printf '%p %m\0' | sort -z > good-perms

Then on your suspect machine:

# find /usr -xdev -printf '%p %m\0' | sort -z > suspect-perms

And then run this perl script:

    https://gist.github.com/grifferz/1c478ea5eb789b2a1d1a3e49d2a9345c

The "find" and the "sort" are using NULL-separated strings so that
your filenames can contain newlines. Although I don't expect you
have any such paths under /usr.

The perl script will print out a chmod for any differences, it will
tell you about paths you have which your "good" host does not, and
it will say nothing about paths that match permissions both sides.
It doesn't actually do anything, it just prints suggested chmod
actions. You maybe want to capture the output to a file.

If you don't have another working system, well, perhaps you can tell
us which Debian release this is and someone can provide a list of
paths and permissions from their machine.

Good luck!

Cheers,
Andy

-- 
https://bitfolk.com/ -- No-nonsense VPS hosting

Reply via email to