devfs rules manuell anwenden

soul_rebel

ist immer auf der flucht
also ich habe eine jail und möchte gerne manuell ein regelset von "draußen" anwenden.
im host system benutze ich kein regelset habe aber die /etc/defaults/devfs.rules für diesen zweck nach /etc kopiert.

laut man-page sollte ein
Code:
devfs -m /myjail/dev rule -s 4 applyset
das ganz machen, wenn ich alles richtig verstanden habe....
habe ich anscheinend leider nicht :( denn es gibt mir ein:
devfs rule: ioctl DEVFSIO_SAPPLY: No such process

was mache ich falsch?

danke!
 
hm ich belebe mal diesen thread wieder weil ich genau dass problem immernoch/wieder habe. wenn ich auf meinem desktop ein devfs nach /test mounte und dann den befehl von oben eingeb klappt das wunderbar, auf meinem server leider nicht.
habe jetzt schon mehrmals /etc/rc.d/devfs restart gemacht, ohne erfolg. den ganzen server würde ich ungern neustarten.
hat denn niemand ne fixe idee?
 
Kannst du die Jail stoppen, den Regelsatz anwenden und die Jail danach wieder starten? Dann wüsste man schon mal ob es an der Jail liegt.
 
Code:
df -h
devfs          1.0K    1.0K      0B   100%    /srv3/78.xx.xx.xx/dev

bluxx# jail /srv3/78.xx.xx.xx/ xx.meinhost.com 78.xx.xx.xx /bin/sh
# /bin/sh /etc/rc
Loading configuration files.
Generating host.conf.
Creating and/or trimming log files:.
ln: /dev/log: Operation not permitted
Starting syslogd.
syslogd: child pid 8330 exited with return code 1
ELF ldconfig path: /lib /usr/lib /usr/lib/compat
32-bit compatibility ldconfig path: /usr/lib32
Clearing /tmp.
Starting local daemons:.
Updating motd.
eval: /usr/sbin/sendmail: not found
/etc/rc: WARNING: /etc/mail/submit.cf is not readable.
Starting cron.
Local package initialization:.

Wed Dec 19 15:20:15 UTC 2007
# exit
bluxx# devfs -m /srv3/78.xx.xx.xx/dev rule -s 4 applyset
devfs rule: ioctl DEVFSIO_SAPPLY: No such process
bluxx#
 
ich habe es so gelöst:
Code:
    /sbin/mount_devfs devfs ${DIR}/fs/dev
    /sbin/devfs -m ${DIR}/fs/dev rule apply hide
    /sbin/devfs -m ${DIR}/fs/dev rule apply path null unhide
    /sbin/devfs -m ${DIR}/fs/dev rule apply path zero unhide
    /sbin/devfs -m ${DIR}/fs/dev rule apply path crypto unhide
    /sbin/devfs -m ${DIR}/fs/dev rule apply path random unhide
    /sbin/devfs -m ${DIR}/fs/dev rule apply path urandom unhide
wobei $(DIR)/fs das root des Jail ist.
Also einfach garkeine vordefinierten Regeln verwenden. Komisch, aber sonst klappt es nicht...
 
welches release nutzt ihr? mir ist nämlich aufgefallen das ihr alle ein /sbin/mount_devfs habt....
ich jedoch nicht.
Code:
bluxx# ls /sbin | grep mount
mount
mount_cd9660
mount_mfs
mount_msdosfs
mount_nfs
mount_nfs4
mount_ntfs
mount_nullfs
mount_udf
mount_unionfs
umount
bluxx# whereis mountd_devfs
mountd_devfs:
bluxx#
Auf 7.0-B4 64bit


Bei mir geht das nur per mount -t devfs /x /y


und ja die einzelnen commands gingen bei mir auch.
 
Zuletzt bearbeitet:
So, habe jetzt

jail_enable="yes"
jail_list="mail"
jail_set_hostname_allow="NO"
jail_socket_unixiproute_only="YES"

jail_mail_rootdir="/srv3/78.xx.xx.xx/"
jail_mail_hostname="mein.host.com"
jail_mail_ip="78.xx.xx.xx"
jail_mail_exec_start="/bin/sh /etc/rc"
jail_mail_devfs_enable="YES"
jail_mail_devfs_ruleset="devfsrules_jail"

genommen.

mein /dev im jail sieht jetzt so aus:

mail# ls /dev
fd null ptyp1 random stdin ttyp0 ttyp2 zero
log ptyp0 ptyp2 stderr stdout ttyp1 urandom

klappt bei mir jetzt 1a - achja habe openssh über die ports nachinstalliert. deswegen die ttyp
 
Zu dem mount_devfs:
Ab FreeBSD 7.0 kommt ein neuer Mountmechanismus zum Einsatz, der mit nur einer Subroutine arbeitet und nicht für jedes Dateisystem gleich mehrere brauch. Außerdem wurde mehr Kram in den Kernel verlagert. Beides soll den Code leichter wartbar, schneller und zuverlässiger machen. Dies ist nmount().
nmount() benötigt keine dedizierten Mountprogramme mehr, wie mount_ext2fs oder mount_unionsfs. Stattdessen reicht ein generisches Programm aus, welches das Dateisystem als Parameter übergeben bekommt. Aus mount_ext2fs wird so mount -t ext2fs. Letztes war bisher auch möglich, nur es machte lediglich einen fork() und exec() auf mount_ext2fs. Dies ist jetzt nicht mehr der Fall. Man kann irgendwie Wrappertools aus /usr/src installieren, sodass man mount_ext2fs und seine Kollegen wiederbekommt.
 
> enn die Jails sind beim Starten des Systems nicht verfügbar.
ich starte die bem Systemstart nicht verfügbaren Jails dennoch über rc.conf
in der generellen Jail_list:

jail_list=" jail rechtes_jail linkes_jail"

sind die, von Anfang an laufen sollen.

Aber auch die, die aus welche Gründen auch immer 'von Hand', also kontrolliert, gestartet werden sollen, sind in der rc.conf eingetragen.
also:

jail_mitte_rootdir="da/und/dort"
jail_mitte_hostname="bla"
...etc,etc....

starten tur das dann über

/etc/rc.d/jail start mitte

geht auch.

Das erteilen von devfs_rules manuell merke ich mir :)

Das rc jailscript benutzt übrigens automatisch das default jail_devfs_ruleset, und das ist schon weitestgehend auf eine Jailumgebung zugeschnitten
Funktioniert auch prima.
 
jo mit rc.conf ginge das bei mir auch. Aber ich wills halt ohne hinkriegen, denn die Jails sind beim Starten des Systems nicht verfügbar.
Hä, wieso nachinstalliert?

Da ich in den Jails nix brauche hab ich in der make.conf
Code:
NO_ACPI=       true    # do not build acpiconf(8) and related programs
NO_BOOT=       true    # do not build boot blocks and loader
NO_BLUETOOTH=  true    # do not build Bluetooth related stuff
NO_FORTRAN=    true    # do not build g77 and related libraries
NO_GDB=        true    # do not build GDB
NO_GPIB=       true    # do not build GPIB support
NO_I4B=        true    # do not build isdn4bsd package
NO_IPFILTER=   true    # do not build IP Filter package
NO_PF=         true    # do not build PF firewall package
NO_AUTHPF=     true    # do not build and install authpf (setuid/gid)
NO_KERBEROS=   true    # do not build and install Kerberos 5 (KTH Heimdal)
NO_LPR=        true    # do not build lpr and related programs
NO_MAILWRAPPER=true    # do not build the mailwrapper(8) MTA selector
NO_MODULES=    true    # do not build modules with the kernel
NO_NETCAT=     true    # do not build netcat
NO_NIS=        true    # do not build NIS support and related programs
NO_SENDMAIL=   true    # do not build sendmail and related programs
NO_SHAREDOCS=  true    # do not build the 4.4BSD legacy docs
NO_USB=        true    # do not build usbd(8) and related programs
NO_VINUM=      true    # do not build Vinum utilities
NO_ATM=        true    # do not build ATM related programs and libraries
NO_CRYPT=      true    # do not build any crypto code
NO_GAMES=      true    # do not build games (games/ subdir)
NO_INFO=       true    # do not make or install info files
NO_MAN=        true    # do not build manual pages
NO_PROFILE=    true    # Avoid compiling profiled libraries

# BIND OPTIONS
NO_BIND=               true    # Do not build any part of BIND
NO_BIND_DNSSEC=        true    # Do not build dnssec-keygen, dnssec-signzone
NO_BIND_ETC=           true    # Do not install files to /etc/namedb
NO_BIND_LIBS_LWRES=    true    # Do not install the lwres library
NO_BIND_MTREE=         true    # Do not run mtree to create chroot directories
NO_BIND_NAMED=         true    # Do not build named, rndc, lwresd, etc.
NO_SSL= true
NO_SSH= true
drin.


Mhh mir fiel gerade auf das der port veraltet ist.
/usr/ports/security/openssh/ -> SSH-1.99-OpenSSH_3.6.1
/usr/src/ -> SSH-2.0-OpenSSH_4.5p1 FreeBSD-20061110

Während lt. Website OpenSSH 4.7/4.7p1 released Sep 4, 2007
aktuell ist.

auch wenns OT ist, jemand ne Ahnung wieso?
 
Zuletzt bearbeitet:
Ich verwende das default ruleset 4 für meine jails.
Hatte das gleiche Problem und hab's dann wie folgt gelöst:

/etc/devfs.rules wie folgt anlegen:
Code:
[emptylist=99]
#

Und in der /etc/rc.conf, "aktivieren":
Code:
devfs_system_ruleset="emptylist"  # force /etc/defaults/devfs.rules to be read

Mit "devfs rule showsets" kann man nochmal kontrollieren,
ob die rules geladen wurden:
Code:
# devfs rule showsets
1
2
3
4
99

Grüße
 
Zurück
Oben