Saya akan melakukan sejumlah besar pekerjaan PHP sebentar lagi, dan saya tertarik untuk belajar RoR, jadi saya menginstal Linux Mint 12 di VirtualBox saya.
Aspek yang paling membuat frustrasi dari switch, sejauh ini, telah berurusan dengan izin Linux. Sepertinya saya tidak dapat melakukan sesuatu yang berguna (seperti, katakanlah, salin tarball Symfony2 dari direktori Downloads saya ke root dokumen saya dan ekstrak) tanpa berpose sebagai root via sudo.
Apakah ada cara mudah untuk memberitahu linux untuk memberi saya akses tanpa batas ke direktori tertentu tanpa hanya membuka semua izin mereka?
linux
permissions
sudo
Produksi Utama
sumber
sumber
Jawaban:
Dua pilihan muncul di benak saya:
Miliki direktori yang Anda inginkan dengan menggunakan
chown
:(ganti nama_Anda dengan nama pengguna dan direktori dengan direktori yang Anda inginkan.)
Hal lain yang dapat Anda lakukan adalah bekerja sebagai root selama Anda TAHU APA YANG ANDA LAKUKAN . Untuk menggunakan root lakukan:
dan kemudian Anda bisa melakukan apa saja tanpa harus mengetik
sudo
sebelum setiap perintah.sumber
Secara umum, selalu bekerja sebagai pengguna Anda sendiri kecuali jika Anda melakukan sesuatu dengan dampak seluruh sistem.
Jika ada file yang ingin Anda pasang di server web Anda, bekerja sebagai pengguna Anda sendiri dan kemudian gunakan
sudo
untuk meletakkan file di tempat di area penyajian web dari sistem file Anda. Biasanya, itu akan dilakukan oleh skrip instalasi, dan Anda akan menjalankan sesuatu sepertisudo -u webmaster install-webserver-files
, atau lebih baiksudo -u webmaster git update
(atau sistem kontrol versi pilihan Anda).Jika Anda bekerja pada server pengembangan dan ingin file Anda dapat diakses secara instan, buat direktori di area server web dan buatlah itu dimiliki atau setidaknya dapat ditulisi oleh Anda. Setelah operasi satu kali (
sudo chown …
atausudo -u webmaster setfacl …
), Anda tidak akan memerlukan hak tinggi untuk operasi sehari-hari.Kadang-kadang nyaman untuk memungkinkan banyak pengguna menulis dalam direktori, atau memiliki izin berbeda untuk beberapa pengguna selain pemilik atau untuk beberapa grup. Daftar kontrol akses memberi Anda kemampuan ini. Lihat Masalah izin untuk direktori bersama di server atau Masalah izin skrip cadangan .
sumber
Ya, login sebagai root yang memberi Anda kontrol akses pengguna super.
Konsep yang sama di windows, Anda dapat masuk ke terminal Anda menggunakan administrator.
sumber
Itu selalu menjadi ideologi saya bahwa, sebagai pengguna Anda dapat melakukan apa pun yang Anda inginkan di Linux dan untuk yang lainnya, selalu ada
sudo
.sudo
memungkinkan untuk mengeksekusi beberapa hal seperti beberapa pengguna lain, paling sering kasus sepertiroot
untuk administrasi sistem.sudo
telah menjadi sumber daya keuntungan yang lebih besar untuk mendelegasikan beberapa tugas rutin dan hak istimewa saya sebagai pengguna (root) ke beberapa orang lain dan membantu mengatur waktu saya dan waktu orang lain dengan lebih baik tanpa meningkatkan hak istimewa lebih dari apa yang diperlukan. Pada saat yang sama, kepercayaan saya pada mereka yang membuat entri mereka tetap ada disudoers
file konfigurasi. Saya tidak yakin apakah itu dapat dikaitkan tetapi yang dapat saya katakan adalah bahwa, sudo memang memberi Anda perspektif keamanan yang lebih baik tentang siapa semua dan apa yang dapat mereka lakukan dengan hak istimewa tepercaya mereka. Bahkan jika terjadi kesalahan, mereka tetap bertanggung jawab. (Saya selalu dapat melakukan beberapa licik dengan informasi log sudoers untuk menemukan penyebabnya juga). Teman-teman saya selalu menyatakan keprihatinan mereka kepada saya bahwa mereka harus mengetikkan sudo untuk semua yang ingin mereka lakukan dengan hak istimewa yang tinggi di lingkungan Linux. Di sini saya menemukan pertanyaan yang sama juga.Untuk melihat solusi dan pencarian saya untuk menemukan alternatif, saya menemukan Kontrol Akses Berbasis Sumberdaya
RBAC
tetapi di tanah petualangan lainSolaris
dengan alat-alat sepertipfexec
dll. Pendekatan ini lebih baik karena ini akan menjaga hak-hak pengguna yang sudah meningkat dan akan percaya pada hati nurani dan kewaspadaan dari apa yang sysadmin ingin lakukan dengan hak istimewa mereka.Mempertimbangkan solusi yang tersedia dari RBAC dan implementasinya di dunia Linux, saya tersandung
SELinux http://www.ibm.com/developerworks/linux/library/l-rbac-selinux/
grsecurity http://en.wikipedia.org/wiki/Grsecurity
dan sementara ada beberapa implementasi lain, saya akan mempertimbangkan mereka di urutan teratas daftar. Menerapkan RBAC adalah banyak pekerjaan dalam suatu organisasi, terutama ketika ada banyak pengguna. RBAC akan terdengar solusi yang lebih besar di lingkungan yang homogen. Namun, ketika ada instalasi Unix heterogen di jaringan dan database pengguna adalah umum, maka ini mungkin akan gagal. Karena SELinux tidak scalable / diimplementasikan pada Solaris dan alat RBAC / pfexec tidak diimplementasikan di Linux. Ada berbagai pendekatan untuk melakukan satu hal. Misalnya: http://blogs.oracle.com/darren/entry/opensolaris_rbac_vs_sudo_howto
Instalasi jaringan yang berbeda mungkin tidak mendukung pendekatan ini (namun openrbac dapat dianggap sebagai pendekatan implementasi umum) seperti sudoers adalah pendekatan host tunggal atau tidak mampu melakukan konfigurasi terpusat dalam jaringan / domain.
/etc/sudoers
perlu disinkronkan setiap kali ada perubahan. Selain itu, ada persyaratan basis pengetahuan saat mengoperasikan file sudoers, diperlukan untuk memahami bahasa kebijakan dari konfigurasi sudoers untuk tidak membuat kesalahan dan mengizinkan hibah. RBAC dapat menawarkan pendekatan terpusat sampai batas tertentu, sementara profil keamanan dapat umum, menambah / menghapus pengguna dari peran yang diberikan dapat dilakukan dari satu tempat (yaitu tempat penyimpanan informasi pengguna / sandi / grup untuk domain seperti LDAP, NIS atau AD). Ini juga secara implisit perlu memahami perintah yang diperlukan untuk beroperasi pada basis data RBAC seperti smexec, smmultiuser, menjadi sedikit.Sudo mungkin menawarkan lebih banyak pendekatan lintas-platform di sini yang masih berfungsi pada semua platform Unix / like yang menawarkan fitur setuid. Baik
sudo
danRBAC
berhasil memberi pengguna non-root beberapa hak istimewa yang dapat dilakukan tanpa memberikanroot
kata sandi itu sendiri. Sudo dapat memberikan pendekatan yang lebih halus / granular pada argumen baris perintah yang dapat digunakan saat menjalankan perintah dan membatasi murni pada perintah apa dengan argumen yang dapat dijalankan dengan hak istimewa yang ditingkatkan. Sementara RBAC dapat membatasi untuk menggunakan hingga perintah atau binari yang diinstal tetapi tidak memiliki kontrol atas argumen baris perintah. Audit jauh lebih baik dan terintegrasi di lingkungan RBACsudo
, itu tergantung pada konfigurasi dan juga kendala keamanan yang diambil (seperti tidak memberikan shell dan terutama host diizinkan untuk masuk ke host lain tanpa masalah). Ini hanya beberapa perbedaan yang bisa saya kutip dan saya pribadi memiliki kecenderungan untuk menggunakan sudo daripada RBAC, walaupun dengan keterbatasan tersebut saya bisa datang mengimplementasikan beberapa pekerjaan di sekitar. Sampai semua masalah ditangani oleh RBAC untuk keuntungan sudo yang lebih baik, saya tidak berpikir sudo akan hilang karena itu sederhana.sumber
Saya akan menemukan root dokumen tempat Anda bekerja, sehingga Anda memiliki akses penuh ke sana.
Untuk menghindari keharusan mengetikkan sudo setiap kali Anda memasang Permata, ikuti artikel ini di sini: http://forums.site5.com/showthread.php?t=11954
Saya juga sangat merekomendasikan menginstal RVM untuk mengelola versi Ruby dan Rails. http://beginrescueend.com/
Ini akan membuat hidup Anda jauh lebih mudah ketika Anda menemukan host yang ingin Anda gunakan untuk menggunakan aplikasi yang berbeda dari versi yang Anda kembangkan.
sumber
Jalankan perintah.
Anda sekarang dapat menjalankan perintah sebagai pengguna root. Hati-hati! Perintah apa pun yang dijalankan adalah sebagai pengguna root. Anda dapat mengacaukan segalanya dengan serius jika Anda tidak berhati-hati.
Atau Anda mengubah izin direktori untuk memungkinkan pengguna Anda menyimpan dan mengedit file.
sumber
sudo -s
?sudo -i
karena ini disimulasikan sebagai shell login. Ini mungkin sedikit lebih dekat dengan login root lokal asli daripada menjalankan bash atau shell lain melalui sudo.su
? Apa obsesi dengan sudo ini? Anda tidak perlu sudo. Pernah.su
jika kata sandi root tidak diketahui. menambahkan pengguna ke sudoers dan menjalankansudo su
memungkinkan pengguna untuk menggunakan kata sandi pengguna yang ada dan dikenal untuk meningkatEdit / etc / passwd file dan beri izin root ke pengguna "yourUserName" dengan mengubah ID Pengguna dan Grup menjadi UID 0 dan GID 0:
yourUserName: 0: 0 :: / home / yourUserName: / bin / sh
sumber
Seperti yang ditunjukkan oleh jawaban lain, solusi terbersih adalah mengubah kepemilikan file dan direktori yang perlu Anda akses. Anda juga bisa membuat grup khusus baru, mengubah kepemilikan grup atas file dan direktori ke grup ini, dan mengatur grup menulis izin untuk file dan direktori ini. Terakhir, atur bit SGID pada direktori sehingga jika Anda membuat file baru, itu akan mewarisi kepemilikan grup dari direktori yang berisi (yaitu grup khusus).
sumber
user @ server: ~ $ sudo passwd root
[sudo] kata sandi untuk pengguna:
Masukkan kata sandi UNIX baru:
Ketik ulang kata sandi UNIX baru:
passwd: kata sandi berhasil diperbarui
pengguna @ server: ~ $ su
Kata sandi:
root @ server: / home / pengguna #
Apakah "#" bisikan itu bukan sesuatu yang indah?
Saya menggunakan "sudo" hanya sekali untuk mencapai kemampuan
user @ server: ~ $ su
Kata sandi:
root @ server: / home / user #
untuk kehidupan server.
Untuk membuatnya aman lagi,
root @ server: / home / user # keluar
keluar
user @ server: ~ $
Sysadmin telah melakukan ini selama bertahun-tahun ketika "sudo" bukan bagian dari tren mollycoddling.
Ketika Anda melakukan ini, itu adalah tanggung jawab Anda untuk berhati-hati, bukan milik saya.
Ian
sumber
sudo -s
. Pekerjaan selesai