天天看点

linux权限介绍之-粘滞键权限t-让文件可读写不可删

一个系统一般都是有多个账号使用的,而有些目录和文件需要赋予其他用户可读写的权限,比如/tmp/a.tmp

这就有一个问题了,比如a在/tmp目录下放的文件a.tmp,而b也需要有/tmp的权限,他就可以删除这个a.tmp文件;

如果只想让b有读写这个文件的权限,但是没有删除这个文件的权限该怎么办呢?这时候就可以利用t键位,粘着位权限

测试如下:

<code>01</code>

<code>#切换到a用户下</code>

<code>02</code>

<code>[root@</code><code>test</code> <code>tmp]</code><code># su a</code>

<code>03</code>

<code>[a@</code><code>test</code> <code>tmp]$ ll -d /tmp</code>

<code>04</code>

<code>drwxrwxrwx 2 root root 4096 oct 28 23:55 /tmp</code>

<code>05</code>

<code>#创建a.tm文件并配置任何人都有最大的777权限</code>

<code>06</code>

<code>[a@</code><code>test</code> <code>tmp]$ </code><code>touch</code> <code>a.tm</code>

<code>07</code>

<code>[a@</code><code>test</code> <code>tmp]$ </code><code>chmod</code> <code>777 a.tm</code>

<code>08</code>

<code>[a@</code><code>test</code> <code>tmp]$ </code><code>ls</code> <code>-l a.tm</code>

<code>09</code>

<code>-rwxrwxrwx 1 a a 0 oct 28 23:55 a.tm</code>

<code>10</code>

<code>#查看,这时候任何人都可以对a.tm做任何操作</code>

<code>#现在我们对/tmp目录赋予粘着位t权限</code>

<code>[root@</code><code>test</code> <code>tmp]</code><code># chmod +t /tmp</code>

<code>[root@</code><code>test</code> <code>tmp]</code><code># ls -dl /tmp </code>

<code>#查看权限已经多了一个t</code>

<code>drwxrwxrwt 2 root root 4096 oct 28 23:59 /tmp</code>

<code>#切换到账号b下,删除a.tm,报错了无法删除</code>

<code>[root@</code><code>test</code> <code>tmp]</code><code># su b</code>

<code>[b@</code><code>test</code> <code>tmp]$ </code><code>rm</code> <code>-r a.tm</code>

<code>rm</code><code>: cannot remove `a.tm': operation not permitted</code>

<code>#查看b对a.tm拥有完全权限的,但是也无法删除</code>

<code>11</code>

<code>[b@</code><code>test</code> <code>tmp]$ </code><code>ls</code> <code>-l a.tm</code>

<code>12</code>

<code>13</code>

<code>#测试b对a.tm文件的写入和读取,完全没有问题</code>

<code>14</code>

<code>[b@</code><code>test</code> <code>tmp]$ </code><code>echo</code> <code>b-</code><code>test</code> <code>&gt;a.tm</code>

<code>15</code>

<code>[b@</code><code>test</code> <code>tmp]$ </code><code>cat</code> <code>a.tm</code>

<code>16</code>

<code>b-</code><code>test</code>

<code>17</code>

<code>18</code>

<code>19</code>

<code>增加粘滞位:</code><code>chmod</code> <code>+t /tmp</code>

<code>20</code>

<code>删除粘滞位:</code><code>chmod</code> <code>-t /tmp</code>

至此,目的已经达到了,让一个账号对一个文件有读写的权限却无法删除~

备注:拥有t粘着位权限的目录下的文件,除了属主用户外,root用户也可以删除。

继续阅读