#! /bin/sh
# This file is part of the "Bad Penguin" GNU/Linux distribution
# Copyright (C) 1997-98-99 by Antonio GALLO http://www.badpenguin.org/
# This program is distributed under the GNU General Public License
# You are not allowed to remove the copyright notice

# ############################################################
# echoc CYAN "Adjusting filesystem permissions"
# ############################################################

if [ "$1" = "" ]; then
  echoc RED "! target directory not specified"
  exit 1
fi
if [ ! -d "$1" ]; then
  echoc RED "! target directory does not exists"
  exit 1
fi


echo "> adjusting permissions for $1"
echo -n ": "
cd $1
umask 022

# -----------------------------------------------------

echo -n "/, "
chmod 0755 .		; chown root.root	.

echo -n "root, "
chmod 0755 bin		; chown root.bin 	bin
chmod 2755 boot		; chown root.disk 	boot
chmod 2755 cdrom	; chown root.cdrom 	cdrom
chmod 0755 dev		; chown root.root 	dev
chmod 0755 etc		; chown root.root 	etc
chmod 2755 floppy	; chown root.floppy 	floppy
chmod 2755 home		; chown root.users	home
chmod 0755 lib		; chown root.root 	lib
chmod 0755 mnt		; chown root.root 	mnt
#proc=755 but SUSE use 555
chmod 0555 proc		; chown root.root 	proc
#root=755 but SUSE use 711
chmod 0711 root		; chown -R root.root 	root
chmod 0755 sbin		; chown root.bin 	root
chmod 1777 tmp		; chown root.root 	root
chmod 0755 usr		; chown root.root 	usr
chmod 0755 var		; chown root.root 	var

# Bad Penguin Packages
if [ -d install ]; then
  chmod 0755 install	; chown root.root 	install
fi
if [ -d incoming ]; then
  chmod 0755 incoming	; chown root.root 	incoming
fi

# -----------------------------------------------------

echo -n "etc, "
chmod 0755 etc/skel		; chown root.root etc/skel
chmod 0755 etc/default		; chown root.root etc/default
#init.d=755 but SUSE use 750
chmod 0750 etc/init.d		; chown root.root etc/init.d
chmod -R 0644 etc/sysconfig 	; chown -R root.root etc/sysconfig
chown -R root.root etc

# -----------------------------------------------------

echo -n "lib, "
chmod 0755 lib/modules		; chown root.root lib/modules

# -----------------------------------------------------

echo -n "opt, "
chmod 0755 opt			; chown root.root opt

# -----------------------------------------------------

echo -n "usr, "
chmod 0755 usr/bin 	; chown root.root 	usr/bin
chmod 0755 usr/dict 	; chown root.root 	usr/dict
chmod 0755 usr/doc 	; chown root.root 	usr/doc
chmod 0755 usr/games 	; chown root.root 	usr/games
chmod 0755 usr/include 	; chown root.root 	usr/include
chmod 0755 usr/info 	; chown root.root 	usr/info
chmod 0755 usr/lib 	; chown root.root 	usr/lib
# usr/man is a symlink
chmod 0755 usr/sbin 	; chown root.root 	usr/sbin
chmod 0755 usr/share 	; chown root.root 	usr/share
chmod 2755 usr/src 	; chown root.staff	usr/src

# -----------------------------------------------------

echo -n "usr/X11R6, "
chmod 0755 usr/X11R6 			; chown root.root usr/X11R6
chmod 0755 usr/X11R6/bin 		; chown root.root usr/X11R6/bin
chmod 0755 usr/X11R6/doc 		; chown root.root usr/X11R6/doc
chmod 0755 usr/X11R6/include 		; chown root.root usr/X11R6/include
chmod 0755 usr/X11R6/include/X11 	; chown root.root usr/X11R6/include/X11
chmod 0755 usr/X11R6/lib 		; chown root.root usr/X11R6/lib
chmod 0755 usr/X11R6/lib/X11 		; chown root.root usr/X11R6/lib/X11
chmod 0755 usr/X11R6/man 		; chown root.root usr/X11R6/man

# -----------------------------------------------------

echo -n "usr/lib, "
chmod 0755 usr/lib/games 		; chown root.root usr/lib/games

# -----------------------------------------------------

echo   -n "usr/local, "
chmod 2755 usr/local 		; chown root.staff usr/local
chmod 2755 usr/local/bin	; chown root.staff usr/local/bin
chmod 2755 usr/local/doc	; chown root.staff usr/local/doc
chmod 2755 usr/local/include	; chown root.staff usr/local/include
chmod 2755 usr/local/lib	; chown root.staff usr/local/lib
chmod 2755 usr/local/info	; chown root.staff usr/local/info
chmod 2755 usr/local/man	; chown root.staff usr/local/man
chmod 2755 usr/local/sbin	; chown root.staff usr/local/sbin
chmod 2755 usr/local/share	; chown root.staff usr/local/share
chmod 2755 usr/local/src	; chown root.staff usr/local/src

# -----------------------------------------------------

echo -n "usr/share, "
chmod 2755 usr/share 		; chown root.root usr/share
chmod 2755 usr/share/doc	; chown root.root usr/share/doc
chmod 2755 usr/share/info	; chown root.root usr/share/info
chmod 2755 usr/share/locale	; chown root.root usr/share/locale
chmod 2755 usr/share/man	; chown root.root usr/share/man
chmod 2755 usr/share/nls	; chown root.root usr/share/nls
chmod 2755 usr/share/misc	; chown root.root usr/share/misc
chmod 2755 usr/share/terminfo	; chown root.root usr/share/terminfo
chmod 2755 usr/share/zoneinfo	; chown root.root usr/share/zoneinfo

# -----------------------------------------------------

echo -n "var, "
chmod 0755 var/account 		; chown root.root var/account
chmod 0755 var/backups 		; chown root.root var/backups
chmod 0755 var/lib 		; chown root.root var/lib
chmod 0755 var/local 		; chown root.root var/local
chmod 2755 var/log 		; chown root.adm  var/log
chmod 0755 var/run 		; chown root.root var/run

# -----------------------------------------------------

echo -n "var/spool, "
chmod 1777 var/spool/lock	; chown root.adm  var/spool/lock
chmod 2755 var/spool/mail	; chown root.mail var/spool/mail
chmod 0755 var/spool 		; chown root.root var/spool

# -----------------------------------------------------
echo "done."
exit 0









# ----- var -----

# === VAR/LOG ===
chown root.adm var/log/auth.log
chmod o-rwx var/log/auth.log
chmod 644 var/log/lastlog
chmod 744 var/log/messages
chown root.root  	  var/log/btmp  var/log/wtmp  var/log/utmp
chmod 644	  	  var/log/btmp  var/log/wtmp  var/log/utmp
chmod 2755 var/log/news
chown news.news var/log/news


echo
echo
echo "Your system's permissions are now O.K."
echo

[ $DEBUG -eq 1 ] && echoc GREEN "Pres ENTER to continue ..." ; read x
exit
