{"id":9771,"date":"2017-02-09T15:19:53","date_gmt":"2017-02-09T14:19:53","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/linux-securing-your-important-files-with-xfs-extendend-attributes\/"},"modified":"2017-02-09T15:19:53","modified_gmt":"2017-02-09T14:19:53","slug":"linux-securing-your-important-files-with-xfs-extendend-attributes","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/linux-securing-your-important-files-with-xfs-extendend-attributes\/","title":{"rendered":"Linux &#8211; Securing your important files with XFS extendend attributes"},"content":{"rendered":"<h2>By William Sescu<\/h2>\n<p>Let&#8217;s say, the tnsnames.ora is a quite important file on your system, and you want to make sure that you notice when someone changes the file. Taking a look at the modification time of that file would be good idea, or not?<\/p>\n<p>Per default, the ls -l command show only the (mtime) modification time. In my case, I know that the tnsnames.ora was changed on &#8220;Feb 9 11:24&#8221;.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">oracle@dbidg03:\/u01\/app\/oracle\/network\/admin\/ [rdbms112] ls -l tnsnames.ora\n-rw-r--r-- 1 oracle oinstall 1791 Feb  9 11:24 tnsnames.ora<\/pre>\n<p>But in reality, more time stamps are stored. The atime, the ctime and the mtime.<\/p>\n<ul>\n<li>atime is the access time (only stored in filesystem is not mounted with the noatime option)<\/li>\n<li>ctime is the change time, meaning the inode was change, e.g. with the chmod command<\/li>\n<li>mtime is the modification time, meaning the content changed<\/li>\n<\/ul>\n<p>The ctime is often misinterpreted as &#8220;creation time&#8221;, but this is not the case. The creation time of a file is not recorded with XFS. There are other file systems that can do it, like ZFS, but XFS does not support &#8220;creation time&#8221;. You can use the stat command to see all time stamps in one shot.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">oracle@dbidg03:\/u01\/app\/oracle\/network\/admin\/ [rdbms112] stat tnsnames.ora\n  File: \u2018tnsnames.ora\u2019\n  Size: 2137            Blocks: 8          IO Block: 4096   regular file\nDevice: fb02h\/64258d    Inode: 163094097   Links: 1\nAccess: (0644\/-rw-r--r--)  Uid: (54321\/  oracle)   Gid: (54321\/oinstall)\nAccess: 2017-02-09 11:24:00.243281419 +0100\nModify: 2017-02-09 11:24:00.243281419 +0100\nChange: 2017-02-09 11:24:00.254281404 +0100\n Birth: -<\/pre>\n<p>Ok. Now someone comes along and changes the tnsnames.ora<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">oracle@dbidg03:\/u01\/app\/oracle\/network\/admin\/ [rdbms112] vi tnsnames.ora<\/pre>\n<p>A change was done, and the modification time of that file changed immediately.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">oracle@dbidg03:\/u01\/app\/oracle\/network\/admin\/ [rdbms112] ls -l tnsnames.ora\n-rw-r--r-- 1 oracle oinstall 2136 Feb  9 11:31 tnsnames.ora<\/pre>\n<p>And also other timestamps might have changed like the atime and ctime.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">oracle@dbidg03:\/u01\/app\/oracle\/network\/admin\/ [rdbms112] stat tnsnames.ora\n  File: \u2018tnsnames.ora\u2019\n  Size: 2136            Blocks: 8          IO Block: 4096   regular file\nDevice: fb02h\/64258d    Inode: 161521017   Links: 1\nAccess: (0644\/-rw-r--r--)  Uid: (54321\/  oracle)   Gid: (54321\/oinstall)\nAccess: 2017-02-09 11:31:06.733673663 +0100\nModify: 2017-02-09 11:31:06.733673663 +0100\nChange: 2017-02-09 11:31:06.738673656 +0100\n Birth: -<\/pre>\n<p>Cool, now I know that the file was changed at &#8220;Feb 9 11:31&#8221;. But how reliable is that information? With the touch command, I can easily change the modification time to any value I like. e.g. I can set it to the same date as beforehand.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">oracle@dbidg03:\/u01\/app\/oracle\/network\/admin\/ [rdbms112] touch -m --date=\"Feb  9 11:24\" tnsnames.ora\n\noracle@dbidg03:\/u01\/app\/oracle\/network\/admin\/ [rdbms112] ls -l tnsnames.ora\n-rw-r--r-- 1 oracle oinstall 2136 Feb  9 11:24 tnsnames.ora<\/pre>\n<p>Now I have set the modification time to almost the same value, as it was beforehand. (Almost, because the microseconds are different) Besides that, the access and the change time are different.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">oracle@dbidg03:\/u01\/app\/oracle\/network\/admin\/ [rdbms112] stat tnsnames.ora\n  File: \u2018tnsnames.ora\u2019\n  Size: 2136            Blocks: 8          IO Block: 4096   regular file\nDevice: fb02h\/64258d    Inode: 161521017   Links: 1\nAccess: (0644\/-rw-r--r--)  Uid: (54321\/  oracle)   Gid: (54321\/oinstall)\nAccess: 2017-02-09 11:31:06.733673663 +0100\nModify: 2017-02-09 11:24:00.000000000 +0100\nChange: 2017-02-09 11:36:51.631671612 +0100\n Birth: -<\/pre>\n<p>No problem, I can make it even more precise by specifying \u00a0the whole date format including microseconds and time zone.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">oracle@dbidg03:\/u01\/app\/oracle\/network\/admin\/ [rdbms112] touch -m --date=\"2017-02-09 11:24:00.243281419 +0100\" tnsnames.ora\n\noracle@dbidg03:\/u01\/app\/oracle\/network\/admin\/ [rdbms112] stat tnsnames.ora\n  File: \u2018tnsnames.ora\u2019\n  Size: 2136            Blocks: 8          IO Block: 4096   regular file\nDevice: fb02h\/64258d    Inode: 161521017   Links: 1\nAccess: (0644\/-rw-r--r--)  Uid: (54321\/  oracle)   Gid: (54321\/oinstall)\nAccess: 2017-02-09 11:31:06.733673663 +0100\nModify: 2017-02-09 11:24:00.243281419 +0100\nChange: 2017-02-09 11:39:41.775993054 +0100\n Birth: -<\/pre>\n<p>And if I want to, I can even change the access time.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">oracle@dbidg03:\/u01\/app\/oracle\/network\/admin\/ [rdbms112] touch -a --date=\"2017-02-09 11:24:00.243281419 +0100\" tnsnames.ora\n\noracle@dbidg03:\/u01\/app\/oracle\/network\/admin\/ [rdbms112] stat tnsnames.ora\n  File: \u2018tnsnames.ora\u2019\n  Size: 2136            Blocks: 8          IO Block: 4096   regular file\nDevice: fb02h\/64258d    Inode: 161521017   Links: 1\nAccess: (0644\/-rw-r--r--)  Uid: (54321\/  oracle)   Gid: (54321\/oinstall)\nAccess: 2017-02-09 11:24:00.243281419 +0100\nModify: 2017-02-09 11:24:00.243281419 +0100\nChange: 2017-02-09 11:42:22.935350329 +0100\n Birth: -<\/pre>\n<p>Only the ctime (change time) is not so easy to change. At least not with the touch command. For changing the ctime you need to invoke the file system debugger or stuff like that. In the end, monitoring my tnsnames.ora file changes by time is not so precise. So why not using the XFS extend attribute feature to help me. e.g. I could create md5 check sums and when the check sum differs, I know that the content was changed. Let&#8217;s do it with the root user.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">As root:\n\n[root@dbidg03 admin]# getfattr -d tnsnames.ora\n[root@dbidg03 admin]#\n\n[root@dbidg03 admin]# md5sum tnsnames.ora\nd135c0ebf51f68feda895dac8631a999  tnsnames.ora\n\n[root@dbidg03 admin]# setfattr -n user.md5sum -v d135c0ebf51f68feda895dac8631a999 tnsnames.ora\n[root@dbidg03 admin]#\n[root@dbidg03 admin]# getfattr -d tnsnames.ora\n# file: tnsnames.ora\nuser.md5sum=\"d135c0ebf51f68feda895dac8631a999\"<\/pre>\n<p>But this is also not so secure. Even if done with root, it can easily\u00a0be removed by the oracle user.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">oracle@dbidg03:\/u01\/app\/oracle\/network\/admin\/ [rdbms112] getfattr -d tnsnames.ora\n# file: tnsnames.ora\nuser.md5sum=\"d135c0ebf51f68feda895dac8631a999\"\n\noracle@dbidg03:\/u01\/app\/oracle\/network\/admin\/ [rdbms112] setfattr -x user.md5sum tnsnames.ora\noracle@dbidg03:\/u01\/app\/oracle\/network\/admin\/ [rdbms112] getfattr -d tnsnames.ora<\/pre>\n<p>To overcome this issue, XFS uses 2 disjoint attribute name spaces associated with every filesystem object. They are the root (or trusted) and user address spaces. The root address space is accessible only to the superuser, and then only by specifying a flag argument to the function call. Other users (like the oracle user in my case) will not see or be able to modify attributes in the root address space. The user address space is protected by the normal file permissions mechanism, so the owner of the file can decide who is able to see and\/or modify the value of attributes on any particular file.<\/p>\n<p>Ok. So let&#8217;s do it again by using the root (trusted) address space.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">[root@dbidg03 admin]# setfattr -n trusted.md5sum -v \"d135c0ebf51f68feda895dac8631a999\" tnsnames.ora\n[root@dbidg03 admin]# getfattr -n trusted.md5sum tnsnames.ora\n# file: tnsnames.ora\ntrusted.md5sum=\"d135c0ebf51f68feda895dac8631a999\"<\/pre>\n<p>However, from the oracle user point of view, no attributes exist, even if you know the attribute you are looking for.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">oracle@dbidg03:\/u01\/app\/oracle\/network\/admin\/ [rdbms112] getfattr -d tnsnames.ora\noracle@dbidg03:\/u01\/app\/oracle\/network\/admin\/ [rdbms112] getfattr -n trusted.md5sum tnsnames.ora\ntnsnames.ora: trusted.md5sum: No such attribute<\/pre>\n<p>You can take it even further, but adding another root attribute, e.g. the time when you created the md5 checksum.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">[root@dbidg03 admin]# setfattr -n trusted.md5sumtime -v \"09.02.2018 13:00:00\" tnsnames.ora\n[root@dbidg03 admin]# getfattr -n trusted.md5sumtime tnsnames.ora\n# file: tnsnames.ora\ntrusted.md5sumtime=\"09.02.2018 13:00:00\"\n\n[root@dbidg03 admin]# getfattr -n trusted.md5sum tnsnames.ora\n# file: tnsnames.ora\ntrusted.md5sum=\"d135c0ebf51f68feda895dac8631a999\"<\/pre>\n<p>Now you have a good chance to find out if the file content was changed or not, by simply checking if the file has a different check sum.<\/p>\n<h3>Conclusion<\/h3>\n<p>XFS extended attributes are quite powerful features and you can use them in a lot of scenarios. Take care that you have a backup solution that support extended attributes, else you will lose all the information once you restore your data.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>By William Sescu Let&#8217;s say, the tnsnames.ora is a quite important file on your system, and you want to make sure that you notice when someone changes the file. Taking a look at the modification time of that file would be good idea, or not? Per default, the ls -l command show only the (mtime) [&hellip;]<\/p>\n","protected":false},"author":27,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[42],"tags":[73,1031],"type_dbi":[],"class_list":["post-9771","post","type-post","status-publish","format-standard","hentry","category-operating-systems","tag-linux","tag-xfs"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Linux - Securing your important files with XFS extendend attributes - dbi Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/linux-securing-your-important-files-with-xfs-extendend-attributes\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Linux - Securing your important files with XFS extendend attributes\" \/>\n<meta property=\"og:description\" content=\"By William Sescu Let&#8217;s say, the tnsnames.ora is a quite important file on your system, and you want to make sure that you notice when someone changes the file. Taking a look at the modification time of that file would be good idea, or not? Per default, the ls -l command show only the (mtime) [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/linux-securing-your-important-files-with-xfs-extendend-attributes\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-02-09T14:19:53+00:00\" \/>\n<meta name=\"author\" content=\"Oracle Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Oracle Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/linux-securing-your-important-files-with-xfs-extendend-attributes\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/linux-securing-your-important-files-with-xfs-extendend-attributes\/\"},\"author\":{\"name\":\"Oracle Team\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"headline\":\"Linux &#8211; Securing your important files with XFS extendend attributes\",\"datePublished\":\"2017-02-09T14:19:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/linux-securing-your-important-files-with-xfs-extendend-attributes\/\"},\"wordCount\":682,\"commentCount\":0,\"keywords\":[\"Linux\",\"XFS\"],\"articleSection\":[\"Operating systems\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/linux-securing-your-important-files-with-xfs-extendend-attributes\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/linux-securing-your-important-files-with-xfs-extendend-attributes\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/linux-securing-your-important-files-with-xfs-extendend-attributes\/\",\"name\":\"Linux - Securing your important files with XFS extendend attributes - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"datePublished\":\"2017-02-09T14:19:53+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/linux-securing-your-important-files-with-xfs-extendend-attributes\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/linux-securing-your-important-files-with-xfs-extendend-attributes\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/linux-securing-your-important-files-with-xfs-extendend-attributes\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Linux &#8211; Securing your important files with XFS extendend attributes\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\",\"name\":\"Oracle Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"caption\":\"Oracle Team\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Linux - Securing your important files with XFS extendend attributes - dbi Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/linux-securing-your-important-files-with-xfs-extendend-attributes\/","og_locale":"en_US","og_type":"article","og_title":"Linux - Securing your important files with XFS extendend attributes","og_description":"By William Sescu Let&#8217;s say, the tnsnames.ora is a quite important file on your system, and you want to make sure that you notice when someone changes the file. Taking a look at the modification time of that file would be good idea, or not? Per default, the ls -l command show only the (mtime) [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/linux-securing-your-important-files-with-xfs-extendend-attributes\/","og_site_name":"dbi Blog","article_published_time":"2017-02-09T14:19:53+00:00","author":"Oracle Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Oracle Team","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/linux-securing-your-important-files-with-xfs-extendend-attributes\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/linux-securing-your-important-files-with-xfs-extendend-attributes\/"},"author":{"name":"Oracle Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"headline":"Linux &#8211; Securing your important files with XFS extendend attributes","datePublished":"2017-02-09T14:19:53+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/linux-securing-your-important-files-with-xfs-extendend-attributes\/"},"wordCount":682,"commentCount":0,"keywords":["Linux","XFS"],"articleSection":["Operating systems"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/linux-securing-your-important-files-with-xfs-extendend-attributes\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/linux-securing-your-important-files-with-xfs-extendend-attributes\/","url":"https:\/\/www.dbi-services.com\/blog\/linux-securing-your-important-files-with-xfs-extendend-attributes\/","name":"Linux - Securing your important files with XFS extendend attributes - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2017-02-09T14:19:53+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/linux-securing-your-important-files-with-xfs-extendend-attributes\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/linux-securing-your-important-files-with-xfs-extendend-attributes\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/linux-securing-your-important-files-with-xfs-extendend-attributes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Linux &#8211; Securing your important files with XFS extendend attributes"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee","name":"Oracle Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","caption":"Oracle Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/9771","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/27"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=9771"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/9771\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=9771"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=9771"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=9771"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=9771"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}