Не работает/isolate /opt/google/chrome/google-chrome
Could not execute /opt/google/chrome/google-chrome: No such file or directory
suse64:/media/disk/src/Secirity/isolate-read-only # ./isolate /opt/google/chrome/google-chrome
google-chrome google-chrome.desktop
suse64:/media/disk/src/Secirity/isolate-read-only # ./isolate /opt/google/chrome/google-chrome
Could not execute /opt/google/chrome/google-chrome: No such file or directory
suse64:/media/disk/src/Secirity/isolate-read-only # ./isolate /opt/google/chrome/chrome
/usr/bin/xauth: creating new authority file /root/992d59fe-Xauthority
Could not execute /opt/google/chrome/chrome: No such file or directory
suse64:/media/disk/src/Secirity/isolate-read-only # ./isolate firefoxc
terminate called after throwing an instance of 'std::runtime_error'
what(): File not found in $PATH
suse64:/media/disk/src/Secirity/isolate-read-only # ./isolate firefox
Could not execute firefox: No such file or directory
suse64:/media/disk/src/Secirity/isolate-read-only # ^C
suse64:/media/disk/src/Secirity/isolate-read-only # exit
pavel@suse64:/usr/src/Secirity/isolate-read-only> ./isolate /usr/lib64/firefox/firefox
firefox firefox.sh
pavel@suse64:/usr/src/Secirity/isolate-read-only> ./isolate /usr/lib64/firefox/firefox.sh
Could not execute /usr/lib64/firefox/firefox.sh: No such file or directory
/bin/rm: невозможно удалить `/tmp/isolation/9c042f2a/usr': Отказано в доступе
/bin/rm: невозможно удалить каталог `/tmp/isolation/9c042f2a/tmp': Отказано в доступе
/bin/rm: невозможно удалить каталог `/tmp/isolation/9c042f2a/libexec': Отказано в доступе
/bin/rm: невозможно удалить `/tmp/isolation/9c042f2a/lib64/bash': Отказано в доступе
/bin/rm: невозможно удалить `/tmp/isolation/9c042f2a/lib64/libreadline.so.6': Отказано в доступе
/bin/rm: невозможно удалить `/tmp/isolation/9c042f2a/lib64/libncurses.so.5': Отказано в доступе
/bin/rm: невозможно удалить `/tmp/isolation/9c042f2a/lib64/libdl.so.2': Отказано в доступе
/bin/rm: невозможно удалить `/tmp/isolation/9c042f2a/lib64/libc.so.6': Отказано в доступе
/bin/rm: невозможно удалить `/tmp/isolation/9c042f2a/lib64/libresolv.so.2': Отказано в доступе
/bin/rm: невозможно удалить `/tmp/isolation/9c042f2a/lib64/libnss_files.so.2': Отказано в доступе
/bin/rm: невозможно удалить `/tmp/isolation/9c042f2a/lib64/libnss_dns.so.2': Отказано в доступе
/bin/rm: невозможно удалить `/tmp/isolation/9c042f2a/lib64/libnss_compat.so.2': Отказано в доступе
/bin/rm: невозможно удалить `/tmp/isolation/9c042f2a/lib64/ld-2.10.1.so': Отказано в доступе
/bin/rm: невозможно удалить `/tmp/isolation/9c042f2a/etc/nsswitch.conf': Отказано в доступе
/bin/rm: невозможно удалить `/tmp/isolation/9c042f2a/etc/resolv.conf': Отказано в доступе
/bin/rm: невозможно удалить `/tmp/isolation/9c042f2a/bin/sh': Отказано в доступе
WARNING: Could not delete /tmp/isolation/9c042f2a
pavel@suse64:/usr/src/Secirity/isolate-read-only> sudo ./isolate /usr/lib64/firefox/firefox.sh
root's password:
Could not execute /usr/lib64/firefox/firefox.sh: No such file or directory
pavel@suse64:/usr/src/Secirity/isolate-read-only> ./isolate ls
Could not execute ls: Permission denied
/bin/rm: невозможно удалить `/tmp/isolation/e595e9c5/usr': Отказано в доступе
/bin/rm: невозможно удалить каталог `/tmp/isolation/e595e9c5/tmp': Отказано в доступе
/bin/rm: невозможно удалить каталог `/tmp/isolation/e595e9c5/libexec': Отказано в доступе
/bin/rm: невозможно удалить `/tmp/isolation/e595e9c5/lib64/libselinux.so.1': Отказано в доступе
/bin/rm: невозможно удалить `/tmp/isolation/e595e9c5/lib64/librt.so.1': Отказано в доступе
/bin/rm: невозможно удалить `/tmp/isolation/e595e9c5/lib64/libpthread.so.0': Отказано в доступе
/bin/rm: невозможно удалить `/tmp/isolation/e595e9c5/lib64/libdl.so.2': Отказано в доступе
/bin/rm: невозможно удалить `/tmp/isolation/e595e9c5/lib64/libcap.so.2': Отказано в доступе
/bin/rm: невозможно удалить `/tmp/isolation/e595e9c5/lib64/ld-linux-x86-64.so.2': Отказано в доступе
/bin/rm: невозможно удалить `/tmp/isolation/e595e9c5/lib64/libc.so.6': Отказано в доступе
/bin/rm: невозможно удалить `/tmp/isolation/e595e9c5/lib64/libattr.so.1': Отказано в доступе
/bin/rm: невозможно удалить `/tmp/isolation/e595e9c5/lib64/libacl.so.1': Отказано в доступе
/bin/rm: невозможно удалить `/tmp/isolation/e595e9c5/lib64/libresolv.so.2': Отказано в доступе
/bin/rm: невозможно удалить `/tmp/isolation/e595e9c5/lib64/libnss_files.so.2': Отказано в доступе
/bin/rm: невозможно удалить `/tmp/isolation/e595e9c5/lib64/libnss_dns.so.2': Отказано в доступе
/bin/rm: невозможно удалить `/tmp/isolation/e595e9c5/lib64/libnss_compat.so.2': Отказано в доступе
/bin/rm: невозможно удалить `/tmp/isolation/e595e9c5/lib64/ld-2.10.1.so': Отказано в доступе
/bin/rm: невозможно удалить `/tmp/isolation/e595e9c5/etc/nsswitch.conf': Отказано в доступе
/bin/rm: невозможно удалить `/tmp/isolation/e595e9c5/etc/resolv.conf': Отказано в доступе
/bin/rm: невозможно удалить `/tmp/isolation/e595e9c5/bin/ls': Отказано в доступе
WARNING: Could not delete /tmp/isolation/e595e9c5
pavel@suse64:/usr/src/Secirity/isolate-read-only> sudo ./isolate /usr/lib64/firefox/firefox.sh
Could not execute /usr/lib64/firefox/firefox.sh: No such file or directory
pavel@suse64:/usr/src/Secirity/isolate-read-only>
Более того, пути к библиотекам зашиты намертво
===================================================================
--- isolate.cpp (revision 19)
+++ isolate.cpp (working copy)
@@ -547,9 +547,8 @@
size_t n = 0;
string_set *lbrrs = new string_set(), *pths = new string_set();
- pths->insert("/lib");
- pths->insert("/usr/lib");
- pths->insert("/usr/local/lib");
+ pths->insert("/lib64");
+ pths->insert("/usr/lib64");
while (n < shdr.sh_size && (data = elf_getdata(scn, data)) ) {
char *bfr = static_cast<char *>(data->d_buf);
@@ -982,7 +981,7 @@
string_set pths;
pths.insert("/tmp");
pths.insert("/bin");
- pths.insert("/lib");
+ pths.insert("/lib64");
pths.insert("/libexec");
pths.insert("/etc");
for (string_set::iterator i = pths.begin(); i != pths.end(); ++i) {
@@ -1147,7 +1146,7 @@
/* We need to set this so that the loader can find libs in
* /usr/local/lib. */
- char * const nvrnmnt[] = { "LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib",
+ char * const nvrnmnt[] = { "LD_LIBRARY_PATH=/lib64:/lib:/usr/lib64:/usr/lib",
"DISPLAY=:0.0",
"HOME=/",
"LOGNAME=isolator",
По коду, такое ощущение, что полный даун писал, ну или студент 2-ого курса, который на первом асилил Ц++
uname() и getenv(LD_LIBRARY_PATH), да вообще, весь getenv(), точно ниасили.