Samba является реализацией SMB (Блок серверных сообщений), который, если Википедии нужно доверять, изменил ее имя на CIFS (Общая межсетевая файловая система) назад в 1996, таким образом, непосредственно отвечая на Ваш вопрос, Samba является реализацией, CIFS является протоколом, но я предполагаю, что Вы спрашивали о SMB и CIFS, которые, кажется, тот же протокол, хотя я предполагаю, что можно сказать, что CIFS является более новой версией SMB.
Не на UFS или ZFS (или любая другая стандартная фс). Что Вы используете для "получения доступ" к файлу? Какую файловую систему Вы используете?
$ touch test
$ stat test | grep "^[AM]"
Access: (0644/-rw-r--r--) Uid: ( 101/ matt) Gid: ( 10/ staff)
Access: 2013-02-20 13:04:25.597883067 +0000
Modify: 2013-02-20 13:04:25.597883067 +0000
$ cat test
$ stat test | grep "^[AM]"
Access: (0644/-rw-r--r--) Uid: ( 101/ matt) Gid: ( 10/ staff)
Access: 2013-02-20 13:04:38.117719129 +0000
Modify: 2013-02-20 13:04:25.597883067 +0000
$ echo test > test
$ stat test | grep "^[AM]"
Access: (0644/-rw-r--r--) Uid: ( 101/ matt) Gid: ( 10/ staff)
Access: 2013-02-20 13:04:38.117719129 +0000
Modify: 2013-02-20 13:04:54.739753877 +0000
$ cat test
test
$ stat test | egrep "^[AM]"
Access: (0644/-rw-r--r--) Uid: ( 101/ matt) Gid: ( 10/ staff)
Access: 2013-02-20 13:04:59.629405264 +0000
Modify: 2013-02-20 13:04:54.739753877 +0000
Что Вы видите, что что-то не делается право (Человеческая ошибка). Пример: Я создал файл с vi, Вы будете видеть что в = mt:
truss -v lstat -t lstat ls -l count_files.awk
lstat64("count_files.awk", 0xFFBFF5B8) = 0
d=0x04010003 i=58647 m=0100755 l=1 u=0 g=0 sz=674
at = Feb 20 14:05:56 CET 2013 [ 1361365556.951290423 ]
mt = Feb 20 14:05:58 CET 2013 [ 1361365558.532478282 ]
ct = Feb 20 14:05:58 CET 2013 [ 1361365558.532478282 ]
bsz=1024 blks=3 fs=zfs
-rwxr-xr-x 1 root root 674 Feb 20 14:05 count_files.awk
Теперь я открою файл снова с vi, но выходом, делающим: q!
Заметьте, что в не равно mt.
truss -v lstat -t lstat ls -l count_files.awk
lstat64("count_files.awk", 0xFFBFF648) = 0
d=0x04010003 i=58647 m=0100755 l=1 u=0 g=0 sz=674
at = Feb 20 14:07:58 CET 2013 [ 1361365678.550493967 ]
mt = Feb 20 14:05:58 CET 2013 [ 1361365558.532478282 ]
ct = Feb 20 14:05:58 CET 2013 [ 1361365558.532478282 ]
bsz=1024 blks=3 fs=zfs
-rwxr-xr-x 1 root root 674 Feb 20 14:05 count_files.awk
Теперь давайте сделаем все еще другой тест: Откройте файл с vi и выходом, но вместо: q! позволяет сделайте: wq! (хотя мы не изменились, что-либо, vi все еще сохранит содержание в файл),
truss -v lstat -t lstat ls -l count_files.awk
lstat64("count_files.awk", 0xFFBFF5F8) = 0
d=0x04010003 i=58647 m=0100755 l=1 u=0 g=0 sz=674
at = Feb 20 14:09:26 CET 2013 [ 1361365766.879205630 ]
mt = Feb 20 14:09:28 CET 2013 [ 1361365768.147368630 ]
ct = Feb 20 14:09:28 CET 2013 [ 1361365768.147368630 ]
bsz=1024 blks=3 fs=zfs
-rwxr-xr-x 1 root root 674 Feb 20 14:09 count_files.awk
Насколько я знаю в изменениях времени, когда считанный назван и измененное время, когда запись сделана (запишите вызов).
read
(если ОС не подавляет обновление atime), не на open
. Например, atime пустого файла не изменяется если Вы cat
это.
– Gilles 'SO- stop being evil'
21.02.2013, 02:34