📄 makefile
字号:
## You must get the source code for cipher first; then edit DESDIR.# ftp.uu.net:/pub/security/des/cipher-3.0.tar.Z## Find the set of lines which corresponds to your configuration, and uncomment# them. If you have a machine not listed here, the most likely configuration# to work is the one for SunOS 4.1.1, or Gnu CC. ## Type "make".## If you get the error "Don't know how to make target `desblock.o'", just type# "make" again; this is a symlink dependency which was resolved by the 1st make.# # You will have to supply a default decryption key if you wish to compile# the server process "deslogind".## If everything compiles, type "make install" to see how to finish # installation and configuration.## Read the man pages for deslogin and deslogind with "nroff -man"## Test your installation. Login via deslogin. Verify the following:# The "who -R" command prints your correct login information and remote host# The "tty" command prints your correct login pty.# The pty returned by the tty command has correct ownership and permissions.# The "groups" command prints your correct supplementary group id's.# The "id" command prints your correct user/group name and id.# The "last -10" command prints correct login name.# Interrupt and job-control signals (usually Ctl-C, Ctl-Z) work correctly# Reading and writing from /dev/tty work correctly.# Login as a user without a .profile/.login file, and verify that# the environment is initialized the same as the login program.# Examine the deslogind log file for warnings or error messages.## If you must create a new configuration, see the comments below.## Dave Barrett (barrett@asgard.cs.Colorodo.EDU## Makefile RCS: $Revision: 1.6 $ $Date: 94/06/14 10:09:30 $# CC=@echo "you really must edit the makefile for your machine"; exit 1## For "make install"#MANDIR=/usr/local/man/man1BINDIR=/usr/local/bin## Get cipher-3.0.tar.Z from ftp.uu.net:/pub/security/des# and untar it into $(DESDIR)#DESDIR = ../cipher-3.0## Configuration options to deslogind. # Others in deslogind.c and deslogin.h should be correct.#USER_FILE=\"/usr/local/etc/deslogind.users\"LOG_FILE=\"/usr/adm/deslogind.log\"GW_LOG_FILE=\"/usr/adm/deslogingw.log\"# LOGIN_PROC is only used for the -w option to deslogind; nowhere else.LOGIN_PROG=\"/bin/login\"## Add -D_USE_SYSLOG to NSTCFLAGS if you want to log messages via to syslogd # instead of the logfile. It only affects code in the file log.c. I prefer to# use a logfile instead of syslogd so that I don't have to worry about a hostile# user hijacking the connection to syslogd, or installing a Trojan horse for# for syslogd, or, even worse, having syslogd be on a remote unsecure machine.# This feature may go away when I add encryption to the logging facility.##DEBUG=-gDEBUG=-O # -D_USE_SYSLOG## HP-UX Ansi C compiler#CC = cc -Aa#CFLAGS = $(DEBUG)#LDFLAGS = $(DEBUG) -Wl,-a,archive -s#NSTCFLAGS=$(DEBUG) -D_HPUX_SOURCE # make non-posix symbols visable ## HP-UX C++ compiler (won't work because typedef pfv in posignal.h)#CC = CC#CFLAGS = $(DEBUG)#LDFLAGS= $(DEBUG) -Wl,-a,archive # -s #NSTCFLAGS=$(DEBUG) -D_HPUX_SOURCE## DEC MIPS Ultrix 4.3 ANSI C compiler #CC = cc -std -non_shared#CFLAGS = $(DEBUG)#LDFLAGS = $(DEBUG) -non_shared # -s #NSTCFLAGS=$(DEBUG) -DONLCR=0x00000004## DEC MIPS Ultrix 4.2 Non-ANSI C compiler #CC = cc -YPOSIX#CFLAGS = $(DEBUG)#LDFLAGS = $(DEBUG) -YSYSTEM_FIVE # -s #NSTCFLAGS=$(DEBUG) -D__MIPS -DONLCR=0x00000004## DEC Alpha OSF/1 C compiler#CC = cc -std -non_shared#CFLAGS = $(DEBUG)#LDFLAGS = $(DEBUG) -non_shared # -s #NSTCFLAGS=$(DEBUG) -D_XOPEN_SOURCE -D_OSF_SOURCE -D__ALPHA## DEC Alpha OSF/1 C++ compiler (OSF1 V2.0 240 alpha)## don't enable -O: generates incorrect code: progName output as junk#CC = cxx -non_shared#CFLAGS = $(DEBUG)#LDFLAGS =$(DEBUG) -non_shared # -s#NSTCFLAGS=$(DEBUG) -non_shared -D_XOPEN_SOURCE -D_OSF_SOURCE -D__ALPHA## ONLCR, non-posix symbols, controlling terminal## SunOS 4.1.1 BSD C compiler (Sun's includes were really poor on my machine)#CC = cc#CFLAGS =$(DEBUG) -Bstatic -Dsparc # need -Dsparc if missing atexit#LDFLAGS =$(DEBUG) -Bstatic # -s#NSTCFLAGS=$(DEBUG) -Bstatic -Dsparc -DONLCR=0x00000004## BSD/386 1.1 0 i386 gcc - Probably any net/2. #LOG_FILE=\"/var/log/deslogind.log\"#GW_LOG_FILE=\"/var/log/deslogingw.log\"#LOGIN_PROG=\"/usr/bin/login\"#CC =gcc -ansi#CFLAGS =$(DEBUG)#LDFLAGS =$(DEBUG)#NSTCFLAGS=$(DEBUG) -D__bsdi__ -D_USE_SYSLOG## Gnu C compiler#CC = gcc -ansi#CFLAGS = $(DEBUG)#LDFLAGS = $(DEBUG)## Gnu C compiler with lots of warnings (not useful except for debugging)#CC = gcc -ansi -pedantic#CFLAGS = $(DEBUG) -Wall#LDFLAGS = $(DEBUG)#NSTCFLAGS=$(DEBUG) -Wall -D_HPUX_SOURCE#NSTCFLAGS=$(DEBUG) -D_XOPEN_SOURCE -D_OSF_SOURCE -D__ALPHA## Linux GNU C compiler## -D_LINUX_SOURCE is necessary for to compile getkey.c for cipher.## If you already have cipher installed, you don't need the one here.#CC = gcc -ansi#CFLAGS = $(DEBUG) -Dlinux -D_LINUX_SOURCE#LDFLAGS = $(DEBUG)#NSTCFLAGS= $(DEBUG)# Gnu C++ compiler cannot handle old-style function argument declaratons # If you figure out how to make it accept them, please send mail to the author.## If you have to read this comment, send mail to barrett@asgard.cs.Colorado.EDU.# The file "Notes" includes some old notes I wrote which may help you.## Non-standard object files require special non-posix features be available in # order to compile and link. NSTCFLAGS are flags to the compiler to make # non-posix symbols and features available. ## Here are the problem areas in porting to new machines:## log.c: vsprintf must return an int. If it doesn't, you have a# non-ANSI machine. It also needs ANSI's stdarg.h.# The default source should work, since it tries to detect these.# tty.c: If you don't have POSIX termios, you're hosed. This code is# completely POSIX except: The flag ONLCR is not part of POSIX. # Some machines require an ioctl to acquire the controlling terminal# for the session leader. See the function mkCtrlTty.# txfr.c: depends heavily upon the BSD select(2) semantics, which are# only vaguely documented. If the code runs incorrectly here, # it's a bitch to diagnose and fix.# socket.c: Networking isn't POSIX yet. This isolates all networking calls.# posignal.h: The arguments to a signal handler are machine-specific.## If any of the above files fail to compile, it's most likely because the# header files on your system require a compilation option to make non-posix# symbols visible. For example, <sys/types.h> declares u_short which is# required to compile socket.c. To get around this problem, I've not defined# _POSIX_SOURCE until *after* <sys/types.h> and <sys/time.h> are included,# which "fixes" the problem on most machines. For the ONLCR problem, # grep for "ONLCR" in /usr/include{/sys}/termio*.h. Once you find that # symbol, look for an #ifdef to enable it and add that flag to NSTCFLAGS# in this Makefile.## Make *SURE* to enable the compile options to not use shared libraries or# run-time procedure binding because it enables a serious trojan horse.# Many vendors enable dynmaic binding by default; so be careful.## Don't change anything below this lineLOGINDFLAGS=-DUSER_FILE=$(USER_FILE) -DLOG_FILE=$(LOG_FILE) -DLOGIN_PROG=$(LOGIN_PROG)GWFLAGS=-DGW_LOG_FILE=$(GW_LOG_FILE)DESSRC = desblock.c deskey.c descfb.c sboxp.cDESBINSRC = cipher.c getkey.cDESBINOBJ = $(DESBINSRC:.c=.o)DESOBJ = $(DESSRC:.c=.o)DESHDR = cipher.h des.h desdefs.hDESMAN = cipher.1DIST = desloginCLIHDR = posignal.h tty.h auth.h txfr.h socket.h log.h deslogin.h utmp.hSERHDR = $(CLIHDR) pty.h group.hHDR = $(SERHDR)CSRC = deslogin.c deslogind.c deslogingw.c log.c pty.c socket.c txfr.c \ group.c tty.c posignal.c utmp.c auth.c gendeskd.cMANSRC = deslogin.1 deslogind.1NSTOBJ = socket.o txfr.o group.oOBJS = $(DESSRC:.c=.o) $(DESBINSRC:.c=.o) $(CSRC:.c=.o)BINS = deslogin deslogind deslogingw gendeskd cipherSRC = README Makefile deslogind.users Notes \ $(HDR) $(CSRC) $(MANSRC)COMOBJ = tty.o posignal.o auth.o log.o $(DESOBJ)all: links $(BINS)deslogin: deslogin.o $(COMOBJ) socket.o txfr.o utmp.o $(CC) $(LDFLAGS) -o $@ $@.o $(COMOBJ) socket.o txfr.o utmp.odeslogind: deslogind.o $(COMOBJ) defkey.o pty.o utmp.o $(NSTOBJ) $(CC) $(LDFLAGS) -o $@ $@.o $(COMOBJ) defkey.o pty.o utmp.o \ $(NSTOBJ) cat deslogind.o >defkey.o rm defkey.odeslogingw: deslogingw.o $(COMOBJ) socket.o txfr.o $(CC) $(LDFLAGS) -o $@ $@.o $(COMOBJ) socket.o txfr.odeslogind.o: deslogind.c $(SERHDR) $(DESHDR) $(CC) $(LOGINDFLAGS) $(CFLAGS) -c deslogind.cdeslogingw.o: deslogingw.c $(SERHDR) $(DESHDR) $(CC) $(GWFLAGS) $(CFLAGS) -c deslogingw.cdeslogin.o: deslogin.c $(CLIHDR) $(DESHDR) $(CC) $(CFLAGS) -c deslogin.ccipher: $(DESBINOBJ) $(DESOBJ) $(CC) $(LDFLAGS) -o $@ $(DESBINOBJ) $(DESOBJ)gendeskd: gendeskd.o getkey.o $(DESOBJ) $(CC) $(LDFLAGS) -o $@ $@.o getkey.o $(DESOBJ)defkey.o: defkey.c $(CC) $(CFLAGS) -c defkey.c cat deslogin.h >defkey.c rm defkey.cdefkey.c: gendeskd @echo @echo You must select a default encryption key for the userFile. @echo This allows you to place \"deslogind -c\" in /etc/inetd.config. @echo Pick a secure passphase, longer than 8 characters, that you can @echo remember. You will need it echo every time you must edit the @echo userFile \(to add users, or to change pass phrases\). The most @echo secure way to run deslogind is with no arguments and type the @echo userFile passphrase in response to its query. You need never use @echo the -c option, and when you do, it never exposes the contents of @echo the userFile. If you use a different key to encrypt the userfile, @echo the -c option will not work, but otherwise the deslogind will @echo work fine. The compiled-in key is not stored as a text @echo string, nor is it a simple 8-byte DES key. @echo @echo "*** Do not run deslogind where its virtual-memory data segment" @echo "*** can be examined by sufficiently determined hostile users." @echo @echo "*** Do not use the -c option if the executable file can be" @echo "*** can be examined by sufficiently determined hostile users." @echo @./gendeskd > $@socket.o: socket.c $(CC) $(NSTCFLAGS) -c socket.ctxfr.o: txfr.c $(CC) $(NSTCFLAGS) -c txfr.cgroup.o: group.c $(CC) $(NSTCFLAGS) -c group.cgetkey.o: getkey.c $(CC) $(NSTCFLAGS) -c getkey.clog.o: log.c $(CC) $(NSTCFLAGS) -c log.ctty.o: tty.c $(CC) $(NSTCFLAGS) -c tty.cman: $(MANSRC) nroff -man <$(MANSRC)# No changes needed below hereinstall: # $(BINS) $(MANSRC) @echo @echo You must install by hand. Running automatic installation @echo scripts \(especially as root\) is extremely dangerous. @echo @echo It's more secure if $(BINS) are @echo stripped, linked statically, and not readable or writeable by @echo users other than owner. They should *NOT* be setuid but @echo they can and should be executable by anyone. @echo @echo The following two commands should work: @echo " strip $(BINS) @echo " chmod 111 $(BINS)" @echo @echo --- For system-wide installations --- @echo Deslogind should be owned by root. @echo Add to /etc/services: @echo " deslogin 2005/tcp" @echo " deslogingw 2006/tcp" @echo Add to /etc/inetd.conf: @echo " deslogin stream tcp nowait root $(BINDIR)/deslogind deslogind -c" @echo " deslogingw stream tcp nowait root $(BINDIR)/deslogingw deslogingw -c" @echo Make sure $(USER_FILE) exists. @echo " If you use deslogind with -c, make sure the file is encrypted" @echo with cipher using the same passphrase you specifed when building @echo deslogind. See the deslogind man page for details. @echo @echo Install the executables with the following commands: @echo " cp $(BINS) $$(BINDIR)" @echo " cp $(MANSRC) $(MANDIR)" @echolinks: $(DESDIR) if [ ! -f "$(DESDIR)/des.h" ]; then \ echo get cipher source code and install in $(DESDIR); \ exit 1; \ else \ for i in $(DESSRC) $(DESBINSRC) $(DESHDR); do \ if [ ! -r $$i ]; then ln -s $(DESDIR)/$$i .; fi \ done \ fi touch linkscleanlinks: $(DESDIR) for i in $(DESSRC) $(DESBINSRC) $(DESHDR); do \ if [ -r $$i ]; then rm -f $$i; fi \ done rm links$(DIST).tar: $(SRC) tar -cvhf - $(SRC) >$(DIST).tar touch tartar: $(DIST).tar tar.Z: $(DIST).tar compress <$(DIST).tar >$(DIST).tar.Ztar.gz: $(DIST).tar gzip <$(DIST).tar >$(DIST).tar.gzshar: $(SRC) shar $(SRC) >$(DIST).sharbtoa: tar btoa <$(DIST).tar.Z >$(DIST).btoaclean: rm -f $(OBJS) defkey.cclobber: clean cleanlinks rm -f $(BINS)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -