Root tidak dapat mengubah izin atau kepemilikan file

8

Direcotrory saya adalah root:

pwd 
/

Saya memiliki dir berikut:

drwxrwxrwx   4 root   root     81920 Jun  4 09:25 imr_report_repo

CATATAN: imr_report_repo adalah bagian NFS.

Ini fstabdaftar untuk imr_report_repo:

netapp1:/imr_report_repos_stage  /imr_report_repo  nfs   rw,bg,actimeo=0,nointr,vers=3,timeo=600,rsize=32768,wsize=32768,tcp 1    1
d imr_report_repo

File dalam mount:

$ ls -al
-rw-r--r--  1 502     502      1273 Mar 21  2013 imr1_test.txt

UID 502 tidak ada. Jika kami menambahkan UID / GID secara lokal:

$ groupadd -g 502 jimmy
$ useradd -g 502 -u 502 jimmy

Sekarang muncul:

$ ls -al
-rw-r--r--  1 jimmy     jimmy      1273 Mar 21  2013 imr1_test.txt

Sekarang ubah ke root:

$ su -
$ chown oracle:oinstall imr1_test.txt
chown: changing ownership of `imr1_test.txt': Operation not permitted
Stringer
sumber
Apakah server NFS adalah NetApp? Apakah Anda memiliki akses administratif untuk itu?
Mark Plotnick
Ya, itu adalah NetApp. Saya punya admin privs
Stringer

Jawaban:

10

Biasanya roottidak memiliki izin khusus pada saham NFS. Sebaliknya: rootdipetakan ke pengguna biasa (yaitu bahkan tidak memiliki "normal" akses baca dan tulis ke rootfile).

Anda harus berjalan chowndi server NFS.

Hauke ​​Laging
sumber
4

Biasanya, pengguna root lokal pada klien NFS dilarang melakukan jenis aktivitas ini pada share yang dipasang NFS. NetApp tampaknya menambahkan sedikit twist pada ini sebagai berikut:

  • Secara default, opsi anon menentukan UID 65534. Artinya, jika Anda tidak menggunakan opsi root dan anon untuk sumber daya, pengguna root di semua host mengakses sumber daya menggunakan UID 65534.
  • Jika opsi anon menentukan UID 65535, akses root dinonaktifkan.
  • Jika opsi anon menentukan UID 0, akses root diberikan ke semua host.
  • Jika sebuah nama diberikan dan bukan UID, nama itu dicari sesuai dengan urutan yang ditentukan dalam /etc/nsswitch.conffile untuk menentukan UID yang sesuai untuk ditugaskan oleh opsi anon.

Jadi dari penampilannya, berbagi NetApp NFS memiliki opsi default, # 1. Anda dapat mengonfirmasi ini dengan menyentuh file pada share NFS sebagai root dan melihat ID apa yang dihasilkan dari melakukan ini.

Anda harus dapat melihat opsi yang diekspor pangsa NFS menggunakan mount -vpada klien NFS Anda.

$ mount -v
...
mulder:/export/raid1/home/sam on /home/sam type nfs (rw,intr,tcp,nfsvers=3,rsize=16384,wsize=16384,addr=192.168.1.1)

Referensi

slm
sumber
2

Server NetApp NFS, secara default, akan mengubah kredensial pengguna root pada klien menjadi 65534 uid di server, sehingga operasi seperti chownakan gagal. Untuk mengubah ini, edit daftar ekspor pada filer sehingga baris untuk sistem file memiliki parameter root=clientid, di mana clientid adalah alamat IP atau nama host dari klien yang ingin Anda akses root ke sistem file itu. Kemudian jalankan exportfs -ajika Anda menggunakan antarmuka baris perintah pada filer.

Tandai Plotnick
sumber
0

Seperti komentar slm di atas berkata,

Biasanya, pengguna root lokal pada klien NFS dilarang melakukan jenis aktivitas ini pada share yang dipasang NFS

Fitur yang digunakan disebut rot squash . Informasi lebih lanjut di sini . Dalam kasus saya, satu-satunya cara adalah login untuk menonaktifkan ke root squash untuk server khusus ini dan mengaktifkannya kembali nanti.

Situasi serupa yang akan Anda temui jika Anda menggunakan dockerwadah dengan volume dan wadah berjalan dengan pengguna yang tidak memiliki hak (misalnya USER apache). Jadi ide NFS mountpoints menjadi r/ whanya oleh owner, dan bukan oleh rootadalah praktik keamanan umum.

azbarcea
sumber