Учтите предупреждение ниже, если Вы имеете дело с производственной системой!
Можно установить node.js через apt-get
.
# echo deb http://ftp.us.debian.org/debian/ sid main \
> /etc/apt/sources.list.d/sid.list
# apt-get update
# apt-get install nodejs
ПРЕДУПРЕЖДЕНИЕ: Однако Вы не должны, вероятно, делать этого, так как Вы устанавливаете программное обеспечение от ответвления разработки Debian (Sid). Это предупреждение должно особенно быть учтено, если Вы имеете дело с производственной машиной также!!!
Изящный путь использовал бы richacls. Но это еще не торжественная часть ядра и таким образом может быть трудно использовать для Вас.
Легкое обходное решение должно было бы использовать параметры самбы directory mask
и force directory security mode
представлять недавно созданные каталоги, бесполезные (недоступный) пользователям так, чтобы они учились не создавать каталоги.
Забавное (и портативный!) путь состоял бы в том, чтобы создать столько (невидимых) подкаталогов, что предел подкаталога файловой системы достигнут. Если бы новый подкаталог необходим, администратор просто переименовал бы одного из них.
То, что можно сделать, использовать файловую систему FUSE как bindfs
в сочетании с a LD_PRELOAD
угонщик, который отключает mkdir
и rmdir
системные вызовы. Как создают a wrapper.c
файл с:
#include <errno.h>
int mkdir() { errno = EPERM; return -1; }
int rmdir() { errno = EPERM; return -1; }
Скомпилируйте его с:
gcc -fPIC -shared -o wrapper.so wrapper.c
И выполненный:
LD_PRELOAD=$PWD/wrapper.so bindfs the-dir the-dir
Который смонтируется the-dir
по себе, но без способности создания или удаления каталогов.
Вы все еще сможете переименовать каталоги все же.
в файловой системе Linux и Ext4, хаки для предотвращения создания каталогов (а не другие типы файлов), чтобы быть созданным, предназначена для того, чтобы полагаться на то, что вновь созданные каталоги наследовать ACL из их Родительский каталог (в дополнение к соответствующим записям ACL Non-по умолчанию) во время того, что файлы получают только соответствующие записи Non-defult acl и на EXT4, по меньшей мере, есть только ограниченное пространство на один inode для хранения этих записей ACL Отказ
Итак, если вы заполните это пространство для каталога с помощью записей ACL по умолчанию до BRIM, вы все равно сможете создавать там файлы, но не каталоги, поскольку система не будет Возможность создавать как данные ACL по умолчанию, так и не по умолчанию:
$ i=50000; while setfacl -m "d:u:${i}:-" .; do i=$((i + 1)); done
setfacl: .: No space left on device
(условие выхода на этот цикл, когда SETFACL не удается (здесь на ENOSPC, потому что не могут быть добавлены больше записей ACL)).
$ getfacl . | grep -c default:
507
507 ACL по умолчанию были добавлены (эффективно отказывая доступ к любому файлу и каталогу, созданному там, чтобы пользователи 50000 до 50506).
$ touch file
$ mkdir dir
mkdir: cannot create directory ‘dir’: No space left on device
$ ls -l
total 4
-rw-r--r--+ 1 chazelas chazelas 0 Nov 27 13:35 file
Даже root
не может создавать там каталоги:
$ sudo mkdir x
mkdir: cannot create directory ‘x’: No space left on device
, которые не мешают пользователям оттуда убрать или переименовывать каталоги (если некоторые были созданы до добавления этих ACL по умолчанию).