[
]Видимо, это проблема/осложнение было введено в версию Samba, включенную (по крайней мере) в первоначальный релиз Ubuntu 12.04. Я не знаю, было ли обновление для 12.04, чтобы исправить это -- обновления кажутся недоступными для Udoobuntu.[
] [
]Я решил это, следуя []Комментарию #17[] из ошибки пусковой площадки [] "доступ запрещен принтерам Samba после точного обновления"[]. [
] [
]Выдержка из сервера smb.conf:[
] [
[global]
map to guest = bad user
########## Printing ##########
load printers = yes
printing = cups
printcap name = cups
use client driver = yes
[printers]
comment = All Printers
browseable = no
path = /var/spool/samba
printable = yes
public = yes
guest ok = yes
read only = yes
create mask = 0700
] [
]Казалось, что ключ был [] использовать клиентский драйвер = да[
].[
].
На самом деле невозможно сделать устройство без помощи ядра (написав свой собственный модуль драйвера ядра); хотя существует FUSE, и менее известная и не очень поддерживаемая CUSE для символьных устройств в пользовательском пространстве, а для блочных устройств можно использовать NBD.
Если достаточно быть похожим, можно использовать именованные каналы, используя mkfifo
, а затем запустить какой-нибудь процесс, который записывает "случайные" данные на это устройство, позволяя другим процессам считывать с него те же самые данные. Вы могли бы заменить /dev/random
и /dev/urandom
на такой именованный канал, и большинство программ с удовольствием читали бы из него свои "случайные" данные, так как немногие программы думают, что они действительно разговаривают с реальным случайным устройством. (до тех пор, пока случайный ioctl не получит более широкое применение)
# mkfifo /dev/foobar
# while true; do dd if=/dev/urandom of=/dev/foobar; done &
# hexdump -C -n 16 /dev/foobar
00000000 ec ec 91 4b 9a 62 95 b0 95 7f 44 16 21 8d cd de |...K.b....D.!...|
(это не совсем то, о чем вы просили, но...) Иногда бэш $RANDOM может сделать работу...
Ex: сгенерировать 20 кубиков
for a in {1..20}; do echo "$(($RANDOM % 6 + 1))"; done
Или, если вы предпочитаете
declare -a A=(⚀ ⚁ ⚂ ⚃ ⚄ ⚅ )
for a in {1..20}; do echo ${A[$(($RANDOM % 6))]}; done