GNU/Linux >> Belajar Linux >  >> Linux

Apa tujuan dari direktori setgid?

Solusi 1:

Sementara file/biner setgid mungkin tidak terlalu berguna, saya pasti menemukan bit setgid sangat berguna diterapkan pada direktori. Dengan asumsi Anda adalah bagian dari grup kerja yang berbeda, yang masing-masing memiliki grup unix (izin) sendiri. Tentunya Anda kemudian ingin meletakkan bit setgid pada folder proyek, memastikan bahwa kepemilikan grup yang tepat diterapkan saat Anda membuat file baru, dan dengan demikian memungkinkan kolega Anda dalam grup proyek tersebut mengakses file tersebut?

Solusi 2:

Penggunaan utamanya adalah untuk mempertahankan pemilik grup dari kumpulan file:

[example@unixlinux.online tmp]$ mkdir dir1 && touch dir1/file && mkdir dir1/dir
[example@unixlinux.online tmp]$ mkdir dir2 && chgrp staff dir2 && chmod 2755 dir2 && touch dir2/file && mkdir dir2/dir
[example@unixlinux.online tmp]$ ls -al dir1
total 32
drwxrwxr-x   3 lockie  lockie   4096 Dec 13 19:32 .
drwxrwxrwt 125 root root 20480 Dec 13 19:32 ..
drwxrwxr-x   2 lockie  lockie   4096 Dec 13 19:32 dir
-rw-rw-r--   1 lockie  lockie      0 Dec 13 19:32 file
[example@unixlinux.online tmp]$ ls -al dir2
total 32
drwxr-sr-x   3 lockie  staff  4096 Dec 13 19:32 .
drwxrwxrwt 125 root root  20480 Dec 13 19:32 ..
drwxrwsr-x   2 lockie  staff  4096 Dec 13 19:32 dir  < note new dir is g+s, owned by "staff" group, so the setgid behaviour acts recursively
-rw-rw-r--   1 lockie  staff     0 Dec 13 19:32 file < note new file is owned by "staff" group
[example@unixlinux.online tmp]$

Ini cenderung berguna dalam lingkungan di mana pengguna yang berbeda akan membuat/mengedit file/dir di bawah direktori:Ketika semua file/dir berbagi grup yang sama, semua pengguna dapat mengedit/mengubah file/dir (izin mengizinkan):Ini menghindari situasi seperti "xyz memiliki file abc, jadi saya tidak dapat mengeditnya".

Alternatif untuk menggunakan setgid dengan cara ini adalah grpid opsi pemasangan sistem file.

Dari man mount:

grpid atau bsdgroups / nogrpid atau sysvgroups

Opsi ini menentukan id grup apa yang didapatkan oleh file yang baru dibuat. Saat grpid disetel, dibutuhkan id grup dari direktori tempatnya dibuat; jika tidak (default) dibutuhkan fsgid dari proses saat ini, kecuali jika direktori memiliki set bit setgid, dalam hal ini dibutuhkan gid dari direktori induk, dan juga mendapatkan set bit setgid jika itu adalah direktori itu sendiri.

Saat diaktifkan, file/dir yang dibuat pada sistem file yang dipasang grpid juga mewarisi grup direktori induk:

[example@unixlinux.online ~]$ mount | grep /home
/dev/mapper/VolGroup00-home on /home type ext3 (rw,grpid)
[example@unixlinux.online ~]$ mkdir dir3 && touch dir3/file && mkdir dir3/dir
[example@unixlinux.online ~]$ ls -al dir3
total 12
drwxrwxr-x  3 lockie users 4096 Dec 13 19:37 .
drwxrwxr-x 12 lockie users 4096 Dec 13 19:37 ..
drwxrwxr-x  2 lockie users 4096 Dec 13 19:37 dir < inherited "users" group from parent dir
-rw-rw-r--  1 lockie users    0 Dec 13 19:37 file  < inherited "users" group from parent dir
[example@unixlinux.online ~]$

Saya telah menemukan menggunakan grpid opsi dengan tepat mengurangi kemungkinan kesalahan manusia (karena sistem file berfungsi, terlepas dari izin dir).


Linux
  1. Apa tujuan dari file .bash_profile di bawah Direktori Beranda Pengguna Di Linux?

  2. Apa tujuan dari pengguna "mysql.sys@localhost"?

  3. Apa tujuan dari "pengguna sistem" di Replikasi MySQL?

  1. Apa tujuan dari grup "roda" di Linux?

  2. Apa tujuan dari file .bashrc di Linux?

  3. Apa cara teraman untuk mengosongkan direktori di * nix?

  1. Apa artinya memilih (seperti dalam direktori opt)? Apakah itu singkatan?

  2. Apa gunanya mengenkripsi direktori home?

  3. Apa yang setara dengan Active Directory di Linux