GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara mengatur umask untuk pengguna sistem?

Ada tiga cara normal untuk menyetel umask pengguna.

  1. Atur UMASK di /etc/login.defs
  2. Tambahkan pam_umask.so ke konfigurasi PAM Anda di /etc/pam.d
  3. Setel di file startup shell, mis. /etc/profile

Tidak ada perbedaan antara pengguna sistem dan pengguna biasa dalam hal ini.

Tapi saya berasumsi Anda mencoba memulai daemon dengan umask khusus?

Masalahnya adalah:semua opsi di atas terjadi saat pengguna masuk. Jika Anda menjalankan daemon, ia tidak pernah masuk. Ini dimulai dengan init, lalu dijalankan sebagai root, atau memanggil setuid untuk dijalankan sebagai pengguna sistem yang Anda tentukan.

Opsi utama Anda adalah:

  1. masukkan umask dalam skrip init Anda (lakukan grep umask /etc/init.d/* sebagai contoh)
  2. konfigurasikan init untuk memulai program dengan umask khusus (umask pemula systemd.exec)
  3. jika menggunakan start-stop-daemon , berikan opsi umask
  4. modifikasi program itu sendiri untuk memanggil fungsi umask atau panggilan sistem

Pengguna sistem berbeda dari yang 'normal' dalam tiga hal:masa berlaku sandi, direktori beranda (pengguna sistem tidak memilikinya), dan UID (pengguna sistem biasanya di bawah ambang arbitrer).

Dalam kasus umum, Anda hampir seluruhnya kurang beruntung. Anda dapat menggunakan PAM untuk menyetel umask, tetapi PAM memilih perilaku berdasarkan hal-hal selain dari ketiga perbedaan ini.

Dengan kata lain, Anda tidak bisa membuat PAM membedakan antara pengguna 'sistem' dan 'non-sistem'. Ini memberi Anda dua opsi:

  • Entah Anda menggunakan PAM untuk menyetel umask untuk semua orang (misalnya, periksa /etc/login.defs ), lalu atur umask secara eksplisit untuk pengguna non-sistem di /etc/bash.bashrc (atau serupa);

  • Atau Anda menulis modul PAM Anda sendiri untuk melakukan ini. Saya pikir ini akan disambut baik oleh banyak orang, karena menyetel umask adalah permintaan umum.

Silakan ambil jawaban ini dengan sedikit garam. Permintaan semacam ini cukup umum, dan saya tidak akan terkejut jika ada cara yang lebih baik/tepat sekarang.


Linux
  1. Cara mengatur ID proses di Linux untuk program tertentu

  2. Cara mengatur JAVA_HOME di Linux untuk semua pengguna

  3. Bagaimana cara mengatur nick default untuk koneksi irssi baru?

  1. Cara Membuat Direktori Bersama untuk Semua Pengguna di Linux

  2. Bagaimana cara mengatur umask default untuk servlet webdav Tomcat?

  3. Bagaimana mengatur PATH untuk semua pengguna di Debian?

  1. Cara mengatur SPF untuk otentikasi email tambahan

  2. Setel Umask Untuk Sistem File yang dipasang di Sshfs?

  3. CentOS / RHEL :Cara mengatur chroot jail untuk vsftp hanya untuk pengguna tertentu