Bagaimana ACL diatur pada perangkat-USB?

1

Saya baru mengenal ACL, jadi ini adalah blackmagic bagi saya. Tapi yang saya miliki adalah kamera yang ingin saya ajak bicara.

Jadi saya mendapat mesin debian netbooted:

ulf@term13:~(0)$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 6.0.10 (squeeze)
Release:    6.0.10
Codename:   squeeze

Ke mesin itu saya memasang kamera:

ulf@term13:~(0)$ lsusb | grep Nikon
Bus 001 Device 092: ID 04b0:0428 Nikon Corp. 
ulf@term13:~(0)$ ls -alF /dev/bus/usb/001/092 
crw-rw-r--+ 1 root root 189, 91 25 sep 10.05 /dev/bus/usb/001/092

Perhatikan + di akhir perizinan crw-rw-r--+. Itu menunjukkan bahwa ada ACL sedang bekerja di sini:

ulf@term13:~(1)$ getfacl /dev/bus/usb/001/092 
getfacl: Removing leading '/' from absolute path names
# file: dev/bus/usb/001/092
# owner: root
# group: root
user::rw-
user:knut:rw-
group::rw-
mask::rw-
other::r--

Tampaknya pengguna memiliki tambahan rw izin di sini. Tapi bagaimana dia mendapatkannya?

Saya dapat mengatur izin yang sama untuk pengguna saya setfacl. Tetapi apa pun yang diatur seperti itu tidak akan ada setelah kamera terhubung kembali. Setelah menghidupkan dan mematikan kamera yang sebenarnya didapat dipasang di perangkat lain:

ulf@term13:~(0)$ lsusb | grep Nikon
Bus 001 Device 093: ID 04b0:0428 Nikon Corp. 

Tetapi izin untuk perangkat 093 baru sama dengan yang lama 092 (tanpa izin tambahan yang saya tambahkan ke 092).

Ada sebuah udev -peraturan-file yang seharusnya menjadi penanggung jawab saya pikir, tetapi kosong ???

ulf@term13:~(0)$ ls -alF /etc/udev/rules.d/90-libgphoto2.rules 
-rw-r--r-- 1 root root 0 26 aug  2014 /etc/udev/rules.d/90-libgphoto2.rules

Dan bukan file udev lain yang memiliki hal-hal yang berkaitan dengan ini.

Apakah ada file di mana ini dikonfigurasi? Ini diatur oleh sysadmin yang tidak ada lagi di sini jadi saya harus memperbaikinya sendiri.

UlfR
sumber

Jawaban:

2

Rupanya user knut memiliki izin rw tambahan di sini. Tapi bagaimana dia mendapatkannya?

Apakah pengguna "knut" masuk di konsol? Pada banyak sistem Linux baru-baru ini, udev memberikan akses perangkat berdasarkan siapa yang sedang masuk.

(Di sini "konsol" berarti layar + keyboard utama terpasang langsung ke komputer - apakah itu mode teks atau grafik tidak memiliki relevansi.)

Versi yang lebih lama (termasuk Debian 6) memiliki aturan dengan TAGS+="udev-acl" dan dapatkan status sesi dari ConsoleKit jika ada, pam_console sebaliknya. Memeriksa who, isi dari /var/run/console, dan mungkin ck-list-sessions. Mekanisme ini relatif sederhana - jika pengguna masuk ke "konsol", mereka mendapatkan akses, jika tidak, tidak.

Distribusi menggunakan systemd mengambil informasi yang sama dari systemd-logind dan gunakan "uaccess" sebagai gantinya. Selain konsol, logind juga mendukung sistem "multi-kursi", di mana banyak pengguna dapat bekerja di beberapa layar sekaligus, dengan masing-masing memiliki port USB yang ditetapkan.

Jika Anda ingin memintasinya dan memberikan akses ke pengguna lain, Anda dapat menggunakan izin "grup" tradisional untuk ini - tulis aturan udev yang menetapkan perangkat Anda untuk GROUP="camera-users" dan tambahkan orang ke grup itu.

Setelah mengaktifkan dan mematikan kamera, kamera akan dipasang di perangkat lain:

ulf@term13:~(0)$ lsusb | grep Nikon
Bus 001 Device 093: ID 04b0:0428 Nikon Corp. 

Di Linux (dan umumnya Unix), 'mount' merujuk pada melampirkan sistem file ke beberapa direktori ("/ dev / sda2 dipasang di / boot" - sistem file yang berisi / dev / sda2 dibuat dapat diakses di / boot). Sementara itu nomor perangkat USB hanya angka, yang ditetapkan secara berurutan; ini bukan merupakan 'pemasangan' perangkat.

grawity
sumber
iya nih Knut memang masuk di konsol. Tetapi apakah tidak mungkin untuk mengetahui di mana hal-hal ini dikonfigurasi? Saya ingin menambahkan lebih banyak pengguna untuk dapat mengakses kamera.
UlfR