1*9d585fc3SWolfram Schneider#!/bin/sh 2*9d585fc3SWolfram Schneider# Copyright (c) Oct 2024 Wolfram Schneider <wosch@FreeBSD.org> 3*9d585fc3SWolfram Schneider# SPDX-License-Identifier: BSD-2-Clause 4*9d585fc3SWolfram Schneider# 5*9d585fc3SWolfram Schneider# absolute-symlink.sh - check for absolute symlinks on a FreeBSD system 6*9d585fc3SWolfram Schneider# 7*9d585fc3SWolfram Schneider# The purpose of this script is to detect absolute symlinks on 8*9d585fc3SWolfram Schneider# a machine, e.g.: 9*9d585fc3SWolfram Schneider# 10*9d585fc3SWolfram Schneider# /etc/localtime -> /usr/share/zoneinfo/UTC 11*9d585fc3SWolfram Schneider# 12*9d585fc3SWolfram Schneider# Some of these absolute symbolic links can be created intentionally, 13*9d585fc3SWolfram Schneider# but it is usually better to use relative symlinks. 14*9d585fc3SWolfram Schneider# 15*9d585fc3SWolfram Schneider# You can run the script after `make installworld', or any other 16*9d585fc3SWolfram Schneider# make targets thats installs files. 17*9d585fc3SWolfram Schneider# 18*9d585fc3SWolfram Schneider# You can also check your local ports with: 19*9d585fc3SWolfram Schneider# 20*9d585fc3SWolfram Schneider# env ABSOLUTE_SYMLINK_DIRS=/usr/local ./absolute-symlink.sh 21*9d585fc3SWolfram Schneider 22*9d585fc3SWolfram Schneider 23*9d585fc3SWolfram SchneiderPATH="/bin:/usr/bin"; export PATH 24*9d585fc3SWolfram SchneiderLANG="C"; export LANG 25*9d585fc3SWolfram Schneider 26*9d585fc3SWolfram Schneider# check other directories as well 27*9d585fc3SWolfram Schneider: ${ABSOLUTE_SYMLINK_DIRS=""} 28*9d585fc3SWolfram Schneider 29*9d585fc3SWolfram Schneiderfind -s -H \ 30*9d585fc3SWolfram Schneider /bin \ 31*9d585fc3SWolfram Schneider /boot \ 32*9d585fc3SWolfram Schneider /etc \ 33*9d585fc3SWolfram Schneider /lib \ 34*9d585fc3SWolfram Schneider /libexec \ 35*9d585fc3SWolfram Schneider /sbin \ 36*9d585fc3SWolfram Schneider /usr/bin \ 37*9d585fc3SWolfram Schneider /usr/include \ 38*9d585fc3SWolfram Schneider /usr/lib \ 39*9d585fc3SWolfram Schneider /usr/lib32 \ 40*9d585fc3SWolfram Schneider /usr/libdata \ 41*9d585fc3SWolfram Schneider /usr/libexec \ 42*9d585fc3SWolfram Schneider /usr/sbin \ 43*9d585fc3SWolfram Schneider /usr/src \ 44*9d585fc3SWolfram Schneider /usr/share \ 45*9d585fc3SWolfram Schneider $ABSOLUTE_SYMLINK_DIRS \ 46*9d585fc3SWolfram Schneider -type l \ 47*9d585fc3SWolfram Schneider -ls | grep -Ea -- ' -> /' 48*9d585fc3SWolfram Schneider 49*9d585fc3SWolfram Schneider#EOF 50