Bit izin tidak diberlakukan pada saham samba

12

Saya punya masalah di mana bit izin tidak ditegakkan pada berbagi samba menggunakan klien Linux. Saya telah mengkonfigurasi samba pada server untuk memaksa pengguna tertentu, grup dan bit izin dan ini berfungsi seperti yang diharapkan sampai saya menyentuh file atau menjadi target pengalihan IO.

Inilah yang terjadi:

user@linuxbox:~-->ls -l ~/archive/foo.txt
ls: cannot access /home/user/archive/foo.txt: No such file or directory
user@linuxbox:~-->touch ~/archive/foo.txt
user@linuxbox:~-->ls -l ~/archive/foo.txt
-rw-rw-r-- 1 archive archive 0 2010-09-13 20:29 /home/user/archive/foo.txt
user@linuxbox:~-->touch ~/archive/foo.txt
user@linuxbox:~-->ls -l ~/archive/foo.txt
-rwxrwxrwx 1 archive archive 0 2010-09-13 20:30 /home/user/archive/foo.txt

Perhatikan ketika saya menyentuh file yang ada bit izinnya adalah 0777. Mereka seharusnya 0664 seperti ketika pertama kali dibuat. Bagaimana saya bisa memberlakukan 0664 pada file yang ada?

Saya memiliki versi 3.0.24 di server dan versi 3.4.7 di klien. Inilah smb.conf saya:

[global]
interfaces = egiga0
unix charset = UTF8
workgroup = workgroup
netbios name = foo
server string = Foo
security = USER
map to guest = bad user
host msdfs = no
encrypt passwords = yes

[archive]
comment = File Archive
path = /home/archive
force user = archive
force group = archive
read only = yes
write list = @archive
guest ok = yes
create mask = 0
force create mode = 0664
security mask = 0
force security mode = 0664
directory mask = 0
force directory mode = 0775
directory security mask = 0
force directory security mode = 0775
Jonathon Watney
sumber
Apa yang ada di smb.conf Anda?
Grizly
Saya telah memasukkan konten smb.conf saya. Terus terang, saya tidak yakin apakah saya memerlukan semua mode eksplisit dan bit mask.
Jonathon Watney
@ Jonathon, semua yang touchada di sistem * nix ... apakah sistem yang Anda buat file di windows? atau Anda membuat file dari sistem windows? atau ini * nix ke * nix melalui samba (dalam hal ini mengapa samba dan bukan nfs)
xenoterracide
@ xenoterracide, saya menyentuh file di share menggunakan klien Linux; Saya akan * nix ke * nix dalam kasus ini. Ada campuran mesin Windows, Mac dan Linux yang terhubung ke layanan samba ini.
Jonathon Watney
Apakah Anda yakin topeng Anda bagus? buat topeng, topeng keamanan, topeng direktori. Dokumen tidak jelas tentang cuaca dan '0' dengan sendirinya berlaku untuk topeng. Selain itu ... aneh sekali.
gabe.

Jawaban:

2

Izin samba hanya berfungsi pada klien jaringan SMB (yaitu Windows). Jika Anda ingin menerapkan ini di server (dan klien NFS apa pun), Anda perlu mengatur bit sticky pada semua direktori.

Pertama, perbaiki file yang ada di sana:

chown -R archive /home/archive 
chgrp -R archive /home/archive 
find /home/archive -type d -exec chmod 0775 {} \;
find /home/archive -type f -exec chmod 0664 {} \;

kemudian tegakkan ini dengan bit sticky group

find /home/archive -type d -exec chmod g+s {} \;

Ini bukan infalable tetapi memecahkan 99% dari masalah semacam ini.

Salam DaveF

Hasil pada kotak Solaris saya:

davef@dalek[10]$ cd /proj/ftptmp
davef@dalek[11]$ ls -ld .
drwxrwsr-x  60 root     ftpusers     377 Oct  5 09:31 ./
davef@dalek[12]$
davef@dalek[12]$ ls -l foo.txt
foo.txt: No such file or directory
davef@dalek[13]$ touch foo.txt
davef@dalek[14]$ ls -l foo.txt
-rw-rw-r--   1 davef    ftpusers       0 Oct 15 11:49 foo.txt
davef@dalek[15]$ touch foo.txt
davef@dalek[16]$ ls -l foo.txt
-rw-rw-r--   1 davef    ftpusers       0 Oct 15 11:49 foo.txt
davef@dalek[17]$
davef@dalek[17]$ umask
2
davef@dalek[18]$
David Allan Finch
sumber
Terima kasih. Akhirnya memiliki kesempatan untuk mencoba ini tetapi sayangnya masalahnya tetap ada.
Jonathon Watney
Saya ingin tahu apakah itu mungkin umask Anda?
David Allan Finch
Umask saya adalah 0022. Ada ide lain? :)
Jonathon Watney
Saya perlu mencobanya di kotak Linux saya. Belum punya waktu. BTW kita menggunakan NFS Unix ke Linux dll bukan SMB.
David Allan Finch