Shared file renaming issue on root folder

Steps to reproduce

  1. Create a file
  2. Share a file with user "test" with no edit permissions
  3. Rename the file from "test" user

Expected behaviour

There should be an error while renaming the file saying that it is not permitted

Actual behaviour

The file is renamed but only "test" user can see the new name plus on "test" user hand the file is still linked to the original, but with a different name. "test" user can upload / create a new file with the same name of the original copy of the renamed file.
This causes great incompatibility between shared files.
PS: This only happens inside the user's root folder, using a path like "/testFolder/file.txt" the rename operation will not be permitted.

Server configuration

Operating system: Debian Jessie

Web server: Apache

Database: MySQL

PHP version: 5.6

ownCloud version: 9.0.10

Updated from an older ownCloud or fresh install: Fresh Install

Where did you install ownCloud from: apt-get install owncloud

Signing status (ownCloud 9.0 and above):

Integrity checker has been disabled. Integrity cannot be verified.

The content of config/config.php:

<?php
$CONFIG = array (
  'instanceid' => 'ocqj61oqaehe',
  'passwordsalt' => '0xqgzQQTZYpO4B8OKmZAYDlm8CIzXK',
  'secret' => 'hHWwwfz7bF2e+Uux3pCwxyC2S5A/8jYr/GgT6OZ9Pr3cRrV7',
  'trusted_domains' => 
  array (
    0 => 'example.it',
  ),
  'datadirectory' => '/var/owncloud',
  'version' => '9.0.10.2',
  'version.hide' => true,
  'dbtype' => 'mysql',
  'dbhost' => '--',
  'dbname' => '--',
  'dbuser' => '--',
  'dbpassword' => '--',
  'dbtableprefix' => 'oc_',
  'installed' => true,
  'memcache.local' => '\\OC\\Memcache\\Redis',
  'filelocking.enabled' => 'true',
  'memcache.distributed' => '\\OC\\Memcache\\Redis',
  'memcache.locking' => '\\OC\\Memcache\\Redis',
  'redis' => 
  array (
    'host' => 'localhost',
    'port' => 6379,
    'timeout' => 0,
    'dbindex' => 0,
  ),
  'mail_from_address' => '--',
  'mail_smtpmode' => 'smtp',
  'mail_domain' => 'example.it',
  'mail_smtpauthtype' => 'LOGIN',
  'mail_smtpauth' => 1,
  'mail_smtphost' => '--',
  'mail_smtpport' => '25',
  'mail_smtpname' => '--',
  'mail_smtppassword' => '--',
  'knowledgebaseenabled' => false,
  'ldapIgnoreNamingRules' => false,
  'theme' => 'theme-omaspa',
  'default_language' => 'it',
  'skeletondirectory' => '/var/owncloud/0-default-files',
  'overwritehost' => 'example.it:443',
  'overwritewebroot' => '/',
  'overwriteprotocol' => 'https',
  'htaccess.RewriteBase' => '/',
  'trashbin_retention_obligation' => 'auto',
  'versions_retention_obligation' => 'D7, auto',
  'appcodechecker' => true,
  'updatechecker' => true,
  'updater.server.url' => 'https://updates.owncloud.com/server/',
  'log_type' => 'owncloud',
  'logfile' => '/var/log/owncloud.log',
  'loglevel' => 4,
  'syslog_tag' => 'ownCloud',
  'logtimezone' => 'UTC',
  'log_query' => false,
  'cron_log' => true,
  'log_rotate_size' => 1048576,
  'customclient_desktop' => '#',
  'customclient_android' => '#',
  'customclient_ios' => '#',
  'appstoreenabled' => true,
  'appstoreurl' => 'https://api.owncloud.com/v1',
  'appstore.experimental.enabled' => true,
  'enable_previews' => true,
  'preview_max_x' => NULL,
  'preview_max_y' => NULL,
  'preview_max_scale_factor' => 10,
  'preview_max_filesize_image' => -1,
  'maintenance' => false,
  'singleuser' => false,
  'proxy' => '',
  'proxyuserpwd' => '',
);

List of activated apps:

  - activity: 2.2.1
  - calendar: 1.4.1
  - comments: 0.2
  - configreport: 0.1.1
  - contacts: 1.5.1
  - dav: 0.1.6
  - external: 1.2
  - federatedfilesharing: 0.1.0
  - files: 1.4.4
  - files_external: 0.5.2
  - files_pdfviewer: 0.8.1
  - files_sharing: 0.9.1
  - files_texteditor: 2.1
  - files_trashbin: 0.8.0
  - files_versions: 1.2.0
  - files_videoplayer: 0.9.8
  - gallery: 14.5.0
  - notifications: 0.2.3
  - onlyoffice: 1.0.5
  - ownnote: true
  - provisioning_api: 0.4.1
  - systemtags: 0.2
  - templateeditor: 0.1
  - updatenotification: 0.1.0
  - user_external: 0.4
  - user_ldap: 0.8.0

Are you using external storage, if yes which one: no

Are you using encryption: no

Are you using an external user-backend, if yes which one: no

LDAP configuration (delete this part if not used)

LDAP is configured with personal information that i cannot share here

With access to your command line run e.g.:
sudo -u www-data php occ ldap:show-config
from within your ownCloud installation folder

Without access to your command line download the data/owncloud.db to your local
computer or access your SQL server remotely and run the select query:
SELECT * FROM `oc_appconfig` WHERE `appid` = 'user_ldap';


Eventually replace sensitive data as the name/IP-address of your LDAP server or groups.

Client configuration

Browser: Chrome, Firefox, Explorer

Operating system: Windows 10

ownCloud log (data/owncloud.log)

{"reqId":"Igb6lL4k0GeRg\/U5JNQi","remoteAddr":"180.80.10.42","app":"PHP","message":"Trying to get property of non-object at \/var\/www\/owncloud\/lib\/private\/log\/owncloud.php#154","level":3,"time":"2017-06-26T08:11:58+00:00","method":"GET","url":"\/index.phpadmin\/log\/entries?offset=0&count=3","user":"951C129D-A6A8-48ED-9979-EAA7EC1BFD16"}
{"reqId":"8\/MnQn6WJGuWoPxlg5Et","remoteAddr":"180.80.10.42","app":"user_ldap","message":"Exception: {\"Exception\":\"Exception\",\"Message\":\"No user available for the given login name.\",\"Code\":0,\"Trace\":\"#0 \\\/var\\\/www\\\/owncloud\\\/apps\\\/user_ldap\\\/user_ldap.php(120): OCA\\\\user_ldap\\\\USER_LDAP->getLDAPUserByLoginName('daniele.vit')\\n#1 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/user\\\/manager.php(189): OCA\\\\user_ldap\\\\USER_LDAP->checkPassword(*** username and password replaced ***)\\n#2 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/user\\\/session.php(219): OC\\\\User\\\\Manager->checkPassword(*** username and password replaced ***)\\n#3 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/user.php(162): OC\\\\User\\\\Session->login(*** username and password replaced ***)\\n#4 \\\/var\\\/www\\\/owncloud\\\/lib\\\/base.php(1113): OC_User::login(*** username and password replaced ***)\\n#5 \\\/var\\\/www\\\/owncloud\\\/lib\\\/base.php(1009): OC::tryFormLogin()\\n#6 \\\/var\\\/www\\\/owncloud\\\/lib\\\/base.php(971): OC::handleLogin()\\n#7 \\\/var\\\/www\\\/owncloud\\\/index.php(47): OC::handleRequest()\\n#8 {main}\",\"File\":\"\\\/var\\\/www\\\/owncloud\\\/apps\\\/user_ldap\\\/user_ldap.php\",\"Line\":105}","level":3,"time":"2017-06-26T08:20:45+00:00","method":"POST","url":"\/index.php","user":"--"}
{"reqId":"Doj+PYHpWu1ANAI8orbz","remoteAddr":"180.80.10.42","app":"onlyoffice","message":"Convertion: 7696 File not found","level":3,"time":"2017-06-26T08:42:28+00:00","method":"GET","url":"\/index.phpoffice\/ajax\/config\/7696","user":"1C4CEE12-DE8B-4FEB-B784-A3A1B207DC3B"}
{"reqId":"fQirGWB6kh99QpsoQ28Z","remoteAddr":"180.80.3.62","app":"PHP","message":"Call to undefined method OC\\Files\\Node\\File::isUpdatable() at \/var\/www\/owncloud\/apps\/onlyoffice\/controller\/callbackcontroller.php#377","level":3,"time":"2017-06-26T09:35:21+00:00","method":"POST","url":"\/index.phpoffice\/track?doc=eEt5a01jbVJWTGU1SS9pUzNKRmgzUzNYQzJ3WVNGSG84aXNCZjZGcWxiOD0\/eyJmaWxlSWQiOjc2OTYsIm93bmVySWQiOiI5NTFDMTI5RC1BNkE4LTQ4RUQtOTk3OS1FQUE3RUMxQkZEMTYiLCJhY3Rpb24iOiJ0cmFjayJ9","user":"--"}
{"reqId":"H0OdooSvdImb+8aiaFXi","remoteAddr":"180.80.1.62","app":"user_ldap","message":"Exception: {\"Exception\":\"Exception\",\"Message\":\"No user available for the given login name.\",\"Code\":0,\"Trace\":\"#0 \\\/var\\\/www\\\/owncloud\\\/apps\\\/user_ldap\\\/user_ldap.php(120): OCA\\\\user_ldap\\\\USER_LDAP->getLDAPUserByLoginName('m.ferrara')\\n#1 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/user\\\/manager.php(189): OCA\\\\user_ldap\\\\USER_LDAP->checkPassword(*** username and password replaced ***)\\n#2 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/user\\\/session.php(219): OC\\\\User\\\\Manager->checkPassword(*** username and password replaced ***)\\n#3 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/user.php(162): OC\\\\User\\\\Session->login(*** username and password replaced ***)\\n#4 \\\/var\\\/www\\\/owncloud\\\/lib\\\/base.php(1113): OC_User::login(*** username and password replaced ***)\\n#5 \\\/var\\\/www\\\/owncloud\\\/lib\\\/base.php(1009): OC::tryFormLogin()\\n#6 \\\/var\\\/www\\\/owncloud\\\/lib\\\/base.php(971): OC::handleLogin()\\n#7 \\\/var\\\/www\\\/owncloud\\\/index.php(47): OC::handleRequest()\\n#8 {main}\",\"File\":\"\\\/var\\\/www\\\/owncloud\\\/apps\\\/user_ldap\\\/user_ldap.php\",\"Line\":105}","level":3,"time":"2017-06-26T10:28:49+00:00","method":"POST","url":"\/index.php","user":"--"}
{"reqId":"r+afUD\/P7am83kh7BRcO","remoteAddr":"180.80.1.62","app":"user_ldap","message":"Exception: {\"Exception\":\"Exception\",\"Message\":\"No user available for the given login name.\",\"Code\":0,\"Trace\":\"#0 \\\/var\\\/www\\\/owncloud\\\/apps\\\/user_ldap\\\/user_ldap.php(120): OCA\\\\user_ldap\\\\USER_LDAP->getLDAPUserByLoginName('m.ferrara')\\n#1 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/user\\\/manager.php(189): OCA\\\\user_ldap\\\\USER_LDAP->checkPassword(*** username and password replaced ***)\\n#2 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/user\\\/session.php(219): OC\\\\User\\\\Manager->checkPassword(*** username and password replaced ***)\\n#3 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/user.php(162): OC\\\\User\\\\Session->login(*** username and password replaced ***)\\n#4 \\\/var\\\/www\\\/owncloud\\\/lib\\\/base.php(1113): OC_User::login(*** username and password replaced ***)\\n#5 \\\/var\\\/www\\\/owncloud\\\/lib\\\/base.php(1009): OC::tryFormLogin()\\n#6 \\\/var\\\/www\\\/owncloud\\\/lib\\\/base.php(971): OC::handleLogin()\\n#7 \\\/var\\\/www\\\/owncloud\\\/index.php(47): OC::handleRequest()\\n#8 {main}\",\"File\":\"\\\/var\\\/www\\\/owncloud\\\/apps\\\/user_ldap\\\/user_ldap.php\",\"Line\":105}","level":3,"time":"2017-06-26T10:29:00+00:00","method":"POST","url":"\/index.php","user":"--"}
{"reqId":"i\/QdHF4pab6Rd46f9SV8","remoteAddr":"180.80.1.62","app":"user_ldap","message":"Exception: {\"Exception\":\"Exception\",\"Message\":\"No user available for the given login name.\",\"Code\":0,\"Trace\":\"#0 \\\/var\\\/www\\\/owncloud\\\/apps\\\/user_ldap\\\/user_ldap.php(120): OCA\\\\user_ldap\\\\USER_LDAP->getLDAPUserByLoginName('m.ferrara')\\n#1 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/user\\\/manager.php(189): OCA\\\\user_ldap\\\\USER_LDAP->checkPassword(*** username and password replaced ***)\\n#2 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/user\\\/session.php(219): OC\\\\User\\\\Manager->checkPassword(*** username and password replaced ***)\\n#3 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/user.php(162): OC\\\\User\\\\Session->login(*** username and password replaced ***)\\n#4 \\\/var\\\/www\\\/owncloud\\\/lib\\\/base.php(1113): OC_User::login(*** username and password replaced ***)\\n#5 \\\/var\\\/www\\\/owncloud\\\/lib\\\/base.php(1009): OC::tryFormLogin()\\n#6 \\\/var\\\/www\\\/owncloud\\\/lib\\\/base.php(971): OC::handleLogin()\\n#7 \\\/var\\\/www\\\/owncloud\\\/index.php(47): OC::handleRequest()\\n#8 {main}\",\"File\":\"\\\/var\\\/www\\\/owncloud\\\/apps\\\/user_ldap\\\/user_ldap.php\",\"Line\":105}","level":3,"time":"2017-06-26T10:29:12+00:00","method":"POST","url":"\/index.php","user":"--"}
{"reqId":"BeiuDY7GY2pllLPbWyKN","remoteAddr":"180.80.1.62","app":"user_ldap","message":"Exception: {\"Exception\":\"Exception\",\"Message\":\"No user available for the given login name.\",\"Code\":0,\"Trace\":\"#0 \\\/var\\\/www\\\/owncloud\\\/apps\\\/user_ldap\\\/user_ldap.php(120): OCA\\\\user_ldap\\\\USER_LDAP->getLDAPUserByLoginName('m.ferrara')\\n#1 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/user\\\/manager.php(189): OCA\\\\user_ldap\\\\USER_LDAP->checkPassword(*** username and password replaced ***)\\n#2 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/user\\\/session.php(219): OC\\\\User\\\\Manager->checkPassword(*** username and password replaced ***)\\n#3 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/user.php(162): OC\\\\User\\\\Session->login(*** username and password replaced ***)\\n#4 \\\/var\\\/www\\\/owncloud\\\/lib\\\/base.php(1113): OC_User::login(*** username and password replaced ***)\\n#5 \\\/var\\\/www\\\/owncloud\\\/lib\\\/base.php(1009): OC::tryFormLogin()\\n#6 \\\/var\\\/www\\\/owncloud\\\/lib\\\/base.php(971): OC::handleLogin()\\n#7 \\\/var\\\/www\\\/owncloud\\\/index.php(47): OC::handleRequest()\\n#8 {main}\",\"File\":\"\\\/var\\\/www\\\/owncloud\\\/apps\\\/user_ldap\\\/user_ldap.php\",\"Line\":105}","level":3,"time":"2017-06-26T10:29:16+00:00","method":"POST","url":"\/index.php","user":"--"}
{"reqId":"8guENPWW6ApjQc3aw\/cF","remoteAddr":"180.80.1.62","app":"user_ldap","message":"Exception: {\"Exception\":\"Exception\",\"Message\":\"No user available for the given login name.\",\"Code\":0,\"Trace\":\"#0 \\\/var\\\/www\\\/owncloud\\\/apps\\\/user_ldap\\\/user_ldap.php(120): OCA\\\\user_ldap\\\\USER_LDAP->getLDAPUserByLoginName('m.ferrara')\\n#1 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/user\\\/manager.php(189): OCA\\\\user_ldap\\\\USER_LDAP->checkPassword(*** username and password replaced ***)\\n#2 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/user\\\/session.php(219): OC\\\\User\\\\Manager->checkPassword(*** username and password replaced ***)\\n#3 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/user.php(162): OC\\\\User\\\\Session->login(*** username and password replaced ***)\\n#4 \\\/var\\\/www\\\/owncloud\\\/lib\\\/base.php(1113): OC_User::login(*** username and password replaced ***)\\n#5 \\\/var\\\/www\\\/owncloud\\\/lib\\\/base.php(1009): OC::tryFormLogin()\\n#6 \\\/var\\\/www\\\/owncloud\\\/lib\\\/base.php(971): OC::handleLogin()\\n#7 \\\/var\\\/www\\\/owncloud\\\/index.php(47): OC::handleRequest()\\n#8 {main}\",\"File\":\"\\\/var\\\/www\\\/owncloud\\\/apps\\\/user_ldap\\\/user_ldap.php\",\"Line\":105}","level":3,"time":"2017-06-26T10:29:26+00:00","method":"POST","url":"\/index.php","user":"--"}
{"reqId":"QArJmRzlpiNof2OO7ibj","remoteAddr":"180.80.1.62","app":"user_ldap","message":"Exception: {\"Exception\":\"Exception\",\"Message\":\"No user available for the given login name.\",\"Code\":0,\"Trace\":\"#0 \\\/var\\\/www\\\/owncloud\\\/apps\\\/user_ldap\\\/user_ldap.php(120): OCA\\\\user_ldap\\\\USER_LDAP->getLDAPUserByLoginName('m.ferrara')\\n#1 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/user\\\/manager.php(189): OCA\\\\user_ldap\\\\USER_LDAP->checkPassword(*** username and password replaced ***)\\n#2 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/user\\\/session.php(219): OC\\\\User\\\\Manager->checkPassword(*** username and password replaced ***)\\n#3 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/user.php(162): OC\\\\User\\\\Session->login(*** username and password replaced ***)\\n#4 \\\/var\\\/www\\\/owncloud\\\/lib\\\/base.php(1113): OC_User::login(*** username and password replaced ***)\\n#5 \\\/var\\\/www\\\/owncloud\\\/lib\\\/base.php(1009): OC::tryFormLogin()\\n#6 \\\/var\\\/www\\\/owncloud\\\/lib\\\/base.php(971): OC::handleLogin()\\n#7 \\\/var\\\/www\\\/owncloud\\\/index.php(47): OC::handleRequest()\\n#8 {main}\",\"File\":\"\\\/var\\\/www\\\/owncloud\\\/apps\\\/user_ldap\\\/user_ldap.php\",\"Line\":105}","level":3,"time":"2017-06-26T10:29:31+00:00","method":"POST","url":"\/index.php","user":"--"}
{"reqId":"uN\/uClnh1lBTnfrVwWOK","remoteAddr":"180.80.1.62","app":"user_ldap","message":"Exception: {\"Exception\":\"Exception\",\"Message\":\"No user available for the given login name.\",\"Code\":0,\"Trace\":\"#0 \\\/var\\\/www\\\/owncloud\\\/apps\\\/user_ldap\\\/user_ldap.php(120): OCA\\\\user_ldap\\\\USER_LDAP->getLDAPUserByLoginName('m.ferrara')\\n#1 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/user\\\/manager.php(189): OCA\\\\user_ldap\\\\USER_LDAP->checkPassword(*** username and password replaced ***)\\n#2 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/user\\\/session.php(219): OC\\\\User\\\\Manager->checkPassword(*** username and password replaced ***)\\n#3 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/user.php(162): OC\\\\User\\\\Session->login(*** username and password replaced ***)\\n#4 \\\/var\\\/www\\\/owncloud\\\/lib\\\/base.php(1113): OC_User::login(*** username and password replaced ***)\\n#5 \\\/var\\\/www\\\/owncloud\\\/lib\\\/base.php(1009): OC::tryFormLogin()\\n#6 \\\/var\\\/www\\\/owncloud\\\/lib\\\/base.php(971): OC::handleLogin()\\n#7 \\\/var\\\/www\\\/owncloud\\\/index.php(47): OC::handleRequest()\\n#8 {main}\",\"File\":\"\\\/var\\\/www\\\/owncloud\\\/apps\\\/user_ldap\\\/user_ldap.php\",\"Line\":105}","level":3,"time":"2017-06-26T10:29:39+00:00","method":"POST","url":"\/index.php","user":"--"}
{"reqId":"jsX73GKAEceY2Bda3WGl","remoteAddr":"180.80.1.62","app":"user_ldap","message":"Exception: {\"Exception\":\"Exception\",\"Message\":\"No user available for the given login name.\",\"Code\":0,\"Trace\":\"#0 \\\/var\\\/www\\\/owncloud\\\/apps\\\/user_ldap\\\/user_ldap.php(120): OCA\\\\user_ldap\\\\USER_LDAP->getLDAPUserByLoginName('m.ferrara')\\n#1 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/user\\\/manager.php(189): OCA\\\\user_ldap\\\\USER_LDAP->checkPassword(*** username and password replaced ***)\\n#2 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/user\\\/session.php(219): OC\\\\User\\\\Manager->checkPassword(*** username and password replaced ***)\\n#3 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/user.php(162): OC\\\\User\\\\Session->login(*** username and password replaced ***)\\n#4 \\\/var\\\/www\\\/owncloud\\\/lib\\\/base.php(1113): OC_User::login(*** username and password replaced ***)\\n#5 \\\/var\\\/www\\\/owncloud\\\/lib\\\/base.php(1009): OC::tryFormLogin()\\n#6 \\\/var\\\/www\\\/owncloud\\\/lib\\\/base.php(971): OC::handleLogin()\\n#7 \\\/var\\\/www\\\/owncloud\\\/index.php(47): OC::handleRequest()\\n#8 {main}\",\"File\":\"\\\/var\\\/www\\\/owncloud\\\/apps\\\/user_ldap\\\/user_ldap.php\",\"Line\":105}","level":3,"time":"2017-06-26T10:29:46+00:00","method":"POST","url":"\/index.php","user":"--"}
{"reqId":"EUiLgcTtvb+YFL3i8onM","remoteAddr":"180.80.10.42","app":"core","message":"Could not get categories: cURL error 28: Connection timed out after 5000 milliseconds","level":3,"time":"2017-06-26T12:51:40+00:00","method":"GET","url":"\/index.phpigreport\/report","user":"951C129D-A6A8-48ED-9979-EAA7EC1BFD16"}

As this is a share this works as designed. All shares can be renamed at will by the sharee.
This rename will only be visible to that person, not to the sharer.

To avoid this, share a folder. Then the folder name can be changed but not the file names.

To point to the same file use the private link.

Not sure which use case you are trying to achieve, most likely there are many workaround options.
The idea of that is that the share can always be renamed and also moved around at will by the sharee!

If i do not give edit permissions to that file to the target user he should not be able to rename that file.
On the other hand if i do give edit permissions to that file he sould be able to rename the file and propagate the changes.

Yes if i share a folder it works but here we are talking about files, not folders.

The idea that the user who receives the file is able to edit it is wrong because do not respect my will of giving non-edit restrictions.

Long story short: if a file is read-only it must remain read-only no matter what.

As it is now is very much not user friendly and it brings errors as well as complicating the file management and sharing.

Technically this is not a rename of the file, but a change of the display name of the share ... this is a design choice which was made a long while ago, I think with 8.0, so migration to somebody else is not likely and it has advantages.
It is part of the philosophy how ownCloud is designed in this view, we are considering other types of file views which will be more project room or secure data room style.
Still not sure how this complicates anything, the only unique identifier is the private link which can be exchanged to make sure everybody means the same file or folder - did you find that one?

1 Like

So, we must get used to it. Thanks for the explanation.