Saya memiliki pembaca kartu terpasang /dev/sdb
.
Apa yang saya lakukan adalah memberikan semua izin kepada pemilik, grup, dan seluruh dunia, menggunakan:
sudo chmod 777 /dev/sdb
Bisakah saya menggunakan kombinasi lain, hanya memungkinkan pemilik (saya) menggunakan pembaca kartu?
Hanya ada satu akun pengguna.
linux
permissions
block-device
Mohamed Ahmed
sumber
sumber
ls -l /dev/sdb
. Saya menduga ini dimiliki oleh root, tetapi akan lebih baik untuk memastikan.Jawaban:
Ada banyak cara untuk mencapai ini.
1. Tambahkan pengguna Anda ke grup yang memiliki perangkat
Umumnya di sebagian besar distro, perangkat blok dimiliki oleh kelompok tertentu. Yang perlu Anda lakukan adalah menambahkan pengguna Anda ke grup itu.
Misalnya, di sistem saya:
Jadi saya perlu menambahkan pengguna saya ke
disk
grup.2. Ubah izin perangkat
Idenya adalah untuk membuat aturan udev untuk menjalankan perintah ketika perangkat terdeteksi.
Pertama, Anda perlu menemukan cara untuk mengidentifikasi perangkat. Anda gunakan
udevadm
untuk ini. Sebagai contoh:Kemudian buat file baru di
/etc/udev/rules.d
, seperti99-cardreader.rules
:Di sini saya menggunakan output dari
udevadm info
perintah untuk menemukan beberapa informasi pengidentifikasi untuk perangkat. Saya menggunakanSUBSYSTEM="block"
entri untuk entri pertama, dan kemudianATTRS
nilai dari entri ke-6. Ini pada dasarnya akan menemukan perangkat USB dengan produk & nomor seri itu, dan kemudian menemukan perangkat blok yang dihasilkan dari perangkat USB itu.The
RUN
perintah akan mengubah hak akses pada perangkat untuk777
. Namun saya tidak menganggap ini solusi yang sangat baik karena ini membuka perangkat hingga dunia. Sebaliknya solusi yang lebih baik mungkin:Ini akan memberikan pengguna
patrick
akses baca / tulis ke perangkat.Catatan: Penting untuk diingat bahwa saat menulis aturan udev, Anda hanya dapat menggunakan parameter dari perangkat teratas, dan satu perangkat lain di rantai. Jadi saya bisa menggunakan
SUBSYSTEM="block"
parameter, danATTRS
parameternya. Tapi saya tidak bisa menggunakan parameter apa pun dari perangkat lain di rantai, atau aturannya akan gagal untuk mencocokkan.Catatan lain: (karena sistem membutuhkan lebih dari 6 karakter untuk diedit dan saya tidak memiliki reputasi untuk menambahkan komentar) pencocokan udev harus menggunakan operator kesetaraan (
==
), bukan penugasan (=
)! Jawaban ini sebelumnya memilikiSUBSYSTEM="block"
yang tidak berfungsi (invalid SUBSYSTEM operation
).sumber
$name
dalam aturan tertulis? haruskah saya menggantinyasdb
?