termux / proot

An chroot-like implementation using ptrace.
https://wiki.termux.com/wiki/PRoot
Other
761 stars 160 forks source link

mkfifo -m error #126

Closed SDRausty closed 3 years ago

SDRausty commented 3 years ago

The command mkfifo -m o+w /tmp/tmp_random fails in PRoot with the this error: mkfifo: cannot set permissions of '/tmp/tmp_random': Invalid argument. The command mkfifo -m o+w $TMPDIR/tmp_random works correctly without PRoot.

SDRausty commented 3 years ago

@michalbednarski thank you for resolving this matter:

mkfifo -m o+w /tmp/tmp_random
ls -al /tmp/tmp_random
prw-rw-rw- 1 root root 0 Oct 28 22:13 /tmp/tmp_random

When logged in as a user named user:

ls -al /tmp/tmp_random
prw-rw-rw- 1 user user 0 Oct 28 22:13 /tmp/tmp_random

This behavior change in ownership behavior causes all sorts of havoc for the user login; do you have any advice regarding this change in ownership derived from PRoot login? The PRoot init statement for root is: exec proot --kernel-release=4.14.117-perf+-generic --kill-on-exit --link2symlink -0 -r /data/data/com.termux/files/home/arch -b /data/data/com.termux/files/home/arch/var/binds/fbindprocpcidevices:/proc/bus/pci/devices -b /data/data/com.termux/files/home/arch/var/binds/fbindprocshmem:/proc/shmem -b /data/data/com.termux/files/home/arch/var/binds/fbindprocversion:/proc/version -b /apex:/apex -b /dev/ashmem:/dev/ashmem -b /storage/:/storage/ -b /data/data/com.termux/files/home:/data/data/com.termux/files/home -b /dev/urandom:/dev/random -b /data/data/com.termux/files/usr:/data/data/com.termux/files/usr -b /proc/:/proc/ -b /vendor/:/vendor/ -b /proc/self/fd:/dev/fd -b /system/:/system/ -b /data/data/com.termux/files/home/arch/var/binds/fbindprocuptime:/proc/uptime -b /data/data/com.termux/files/home/arch/tmp:/dev/shm -b /data/data/com.termux/files/home/arch/var/binds/fbindprocstat:/proc/stat -b /sys/:/sys/ -b /dev/:/dev/ -w /root /usr/bin/env -i HOME=/root TERM="xterm-256color" TMPDIR=/tmp ANDROID_DATA=/data /bin/bash -l

Is there anything in the PRoot init statement that can be done to help resolving the change in ownership that appears to be based on login type?

SDRausty commented 3 years ago

It appears that a number of commands that had difficulty functioning now work! The commands byobu and tmux now work as expected; Thank you!

Edit: More extensive testing showed that these two commands still have some difficulty.

michalbednarski commented 3 years ago

File ownership is in normal proot version not associated with files, UserLAnd version does that, however that feature is behind compile time switch (-D USERLAND, although I'm usually not testing that version)

SDRausty commented 3 years ago

[root02:07~]$ mkfifo -m o+w /tmp/tmp_random mkfifo: cannot create fifo '/tmp/tmp_random': Function not implemented`

SDRausty commented 3 years ago

https://github.com/termux/proot/issues/140

SDRausty commented 3 years ago

The following result is with the proot USERLAND compile time option built and installed from source code in device:

[root11:07~]$ mkfifo -m o+w /tmp/tmp_random mkfifo: cannot create fifo '/tmp/tmp_random': Function not implemented

SDRausty commented 3 years ago

This error is resolved; Thank you for fixing it 🎵 🎶